public exprAST parseExpr() { listAddopTermAST temp = null; listAddopTermAST result = null; termAST term = null; addopAST addop = null; termAST term2 = null; //Expr = [ "-" ] Term { Addop Term } Boolean ind = false; Boolean ind2 = false; if (currentToken.sym == sym.RES) { acceptIt(); ind = true; } term = parseTerm(); while (currentToken.sym == sym.SUM || currentToken.sym == sym.RES) { if (ind2 == false) { addop = parseAddop(); term2 = parseTerm(); result = new unAddopTermAST(addop, term2); ind2 = true; } else { addop = parseAddop(); term2 = parseTerm(); temp = new unAddopTermAST(addop, term2); result = new varAddopTermAST(result, temp); } } if (ind == false && result == null) { return(new expreSoloTermAST(term)); } else if (ind == true && result == null) { return(new exprNegativaTermAST(term)); } else if (ind == false && result != null) { return(new exprAddopTermAST(term, result)); } else if (ind == true && result != null) { return(new exprNegativaAddopTermAST(result, term)); } return(null); }
Object VisitUnAddopTermAST(unAddopTermAST 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 exprAST parseExpr() { listAddopTermAST temp=null; listAddopTermAST result=null; termAST term = null; addopAST addop = null; termAST term2 = null; //Expr = [ "-" ] Term { Addop Term } Boolean ind = false; Boolean ind2 = false; if (currentToken.sym == sym.RES) { acceptIt(); ind = true; } term = parseTerm(); while (currentToken.sym == sym.SUM || currentToken.sym == sym.RES) { if (ind2 == false) { addop = parseAddop(); term2 = parseTerm(); result = new unAddopTermAST(addop, term2); ind2 = true; } else { addop = parseAddop(); term2 = parseTerm(); temp = new unAddopTermAST(addop, term2); result = new varAddopTermAST(result, temp); } } if (ind == false && result == null) { return new expreSoloTermAST(term); } else if (ind == true && result == null) { return new exprNegativaTermAST(term); } else if (ind == false && result !=null) { return new exprAddopTermAST(term,result); } else if (ind == true && result != null) { return new exprNegativaAddopTermAST(result,term); } return null; }