public Node ForStatement() { var result = new ForStatement() { AnchorToken = Expect(TokenCategory.FOR) }; result.Add(new Identifier() { AnchorToken = Expect(TokenCategory.IDENTIFIER) }); Expect(TokenCategory.IN); result.Add(Expression()); Expect(TokenCategory.DO); while (firstOfStatement.Contains(CurrentToken)) { result.Add(Statement()); } Expect(TokenCategory.END); Expect(TokenCategory.SEMICOLON); return(result); }