Пример #1
0
 Object VisitFormParsAST(formParsAST var, object arg)
 {
     int numaux = ((Integer)arg).intValue(); printtab(numaux); System.out.println(c.getClass().getName());  if(c.- !=null)  c.-.visit(this,new Integer(numaux+1)); else{printtab(numaux+1);  Console.WriteLine(“NULL”);} return null;
 }
 public methodTipoConFormDeclsAST(Symbol sym,  declsAST dec, formParsAST form)
 {
     this.ident = sym;
     this.decl = dec;
     this.formpars = form;
 }
 public methodVoidSinVarDeclAST(formParsAST form, Symbol sym)
 {
     this.formpars = form;
     this.ident = sym;
 }
 public methodTipoSinVarDeclAST(Symbol sym, formParsAST form)
 {
     this.ident = sym;
     this.formpars = form;
 }
Пример #5
0
        public declAST parseMethodDecl()
        {
            declAST  varD  = null;
            declsAST varD2 = null;
            declsAST varD3 = null;
            Symbol   temp  = currentToken;
            typeAST  type  = null;

            if (currentToken.sym == sym.ID || currentToken.sym == sym.VOID)
            {
                if (currentToken.sym == sym.ID)
                {
                    type = parseType();
                }

                if (currentToken.sym == sym.VOID)
                {
                    accept(sym.VOID, "void");
                }
                temp = currentToken;
                accept(sym.ID, "ident");
                accept(sym.P_ABI, "(");
                formParsAST formP = null;
                if (currentToken.sym == sym.ID)
                {
                    formP = parseFormPars();
                }
                else
                {
                    accept(sym.P_CER, ")");
                }

                Boolean ind = false;
                while (currentToken.sym == sym.ID)
                {
                    if (ind == false)
                    {
                        varD  = parseVarDecl();
                        varD2 = new undeclAST(varD);
                        varD3 = varD2;
                        ind   = true;
                    }
                    else
                    {
                        varD  = parseVarDecl();
                        varD2 = new undeclAST(varD);
                        varD3 = varD2;
                        varD2 = new varsdeclAST(varD2, varD3);
                    }
                }
                blockAST parseB = parseBlock();
                if (type == null && formP == null)
                {
                    if (ind == true)
                    {
                        return(new methodVoidSinFormDeclsAST(temp));
                    }
                    else
                    {
                        return(new  methodTipoSinFormParsAST(temp, varD2));
                        // return voidSinFormParsAST(temp, varD, parseB);
                    }
                }
                if (type == null && varD == null)
                {
                    return(new methodTipoSinVarDeclAST(temp, formP));
                    // return voidSinVarDeclAST(temp,formP,parseB);
                }
                if (type == null && varD != null && formP != null)
                {
                    if (ind == true)
                    {
                        return(new methodVoidConFormDeclsAST(varD2, formP, temp));
                    }
                    // return voidConForm_DeclsAST(temp, varD2, formP, parseB);

                    else //return voidConForm_DeclsAST(temp, varD, formP, parseB);
                    {
                        return(new methodVoidSinVarDeclAST(formP, temp));
                    }
                }

                if (type == null && varD == null && formP == null)
                {
                    return(new methodVoidSinFormDeclsAST(temp));
                }
            }
            return(null);
        }