예제 #1
0
        public object VisitClassDeclAST([NotNull] ClassDeclASTContext context)
        {
            IdentASTContext ident = (IdentASTContext)Visit(context.ident());

            if (ident != null)
            {
                if (!ExistIdent(ident.GetText(), true))
                {
                    List <VarDeclASTContext> varDecls = new List <VarDeclASTContext>(context.varDecl().ToList().Cast <VarDeclASTContext>());
                    varDecls.ForEach(varDecl => Visit(varDecl));
                    ClassIdentifier classIdentifier = new ClassIdentifier(ident.IDENT().GetText(), ident.IDENT().Symbol, identificationTable.getLevel(), types[0], context, varDecls);

                    identificationTable.Insert(classIdentifier);
                    types.Add(ident.GetText());
                }
                else
                {
                    InsertError(ident.IDENT().Symbol, "El identificador " + ident.IDENT().Symbol.Text + " ya fue declarado en este scope");
                }
            }
            return(null);
        }
예제 #2
0
 public object VisitClassDeclAST([NotNull] ClassDeclASTContext context)
 {
     return(null);
 }