public actParsAST parseActPars() { listExprAST temp=null; listExprAST temp2 = null; listExprAST result = null; exprAST expr=null; if (currentToken.sym == sym.RES || currentToken.sym == sym.ID || currentToken.sym == sym.NUM || currentToken.sym == sym.CHARCONS || currentToken.sym == sym.TRUE || currentToken.sym == sym.FALSE || currentToken.sym == sym.NEW || currentToken.sym == sym.P_ABI) { expr = parseExpr(); temp= new unExprAST(expr); Boolean ind=false; while (currentToken.sym == sym.COMA) { if(ind==false){ acceptIt(); expr=parseExpr(); temp2 = new unExprAST(expr); result = new varExprAST(temp2, temp); ind=true; } else{ acceptIt(); expr=parseExpr(); temp2 = new unExprAST(expr); result = new varExprAST(result, temp2); } } if (temp2 == null && result == null) { return new actParsAST(temp); } return new actParsAST(result); } else { error(currentToken, " '-' o 'ID'"); return null; } }
Object VisitUnExprAST(unExprAST 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; }