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; }
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); }