Rule For() { return FirstOf( Sequence( FOR, DOT, Invoke.builder(), AccessExpression(), ForIterationAccessExpression.of(), Invoke.access(), Invoke.build()), Sequence(FOR, For.builder(), ForDeclaration(), For.build())); }
Rule ForDeclaration() { return Sequence( GeneratorDeclaration(), For.addDeclaration(), ZeroOrMore(Sequence(COMMA, GeneratorDeclaration(), For.addDeclaration()))); }