public override ASTN VisitAddsub([NotNull] AddsubContext context) { ExprNode Leftexpr = (VisitExpr(context.left) as ExprNode); ExprNode Rigthexpr = (VisitExpr(context.right) as ExprNode); AritmethicNode node; if (context.op.Type == ADD) { node = new PlusNode(context); } else { node = new ResNode(context); } node.Leftexpr = Leftexpr; node.Rigthexpr = Rigthexpr; return(node); }
int Visit(AddsubContext context) { try { int l = (int)Visit(context.left); int r = (int)Visit(context.right); if (context.op.Type == ADD) { return(l + r); } else { return(l - r); } } catch { Console.WriteLine("Las variables no son enteras"); return(0); } }