//<expr-rel>// public Node ExprRel() { var addOne = ExprAdd(); var xprRel = addOne; while (firstOfExprRel.Contains(CurrentToken)) { switch (CurrentToken) { case TokenCategory.LESS_THAN: xprRel = new LessThan() { AnchorToken = Expect(TokenCategory.LESS_THAN) }; break; case TokenCategory.LESS_THAN_OR_EQUAL_TO: xprRel = new LessThanOrEqual() { AnchorToken = Expect(TokenCategory.LESS_THAN_OR_EQUAL_TO) }; break; case TokenCategory.GREATER_THAN: xprRel = new GreaterThan() { AnchorToken = Expect(TokenCategory.GREATER_THAN) }; break; case TokenCategory.GREATER_THAN_OR_EQUAL_TO: xprRel = new GreaterThanOrEqual() { AnchorToken = Expect(TokenCategory.GREATER_THAN_OR_EQUAL_TO) }; break; default: throw new SyntaxError(firstOfExprRel, tokenStream.Current); } xprRel.Add(addOne); xprRel.Add(ExprAdd()); addOne = xprRel; } return(xprRel); }