protected Expr ParseExpr(string s) { Expr e = ParseTerm(s); while (pos < s.Length && (s[pos] == '+' || s[pos] == '-')) { char op = s[pos]; Consume(s, op); Expr e2 = ParseTerm(s); if (op == '+') { e = nf.Add(e, e2); } else if (op == '-') { e = nf.Subtract(e, e2); } } return(e); }