字句解析:SwitchTo()
PARSER_BEGIN(Test) public class Test { public static void main(String args[]) throws ParseException { Test parser = new Test(System.in); parser.Input(); } } PARSER_END(Test) <*>SKIP : { <SPACE: " " | "\t" | "\n" | "\r"> } TOKEN : { <A: "a"> : STATE1 } <STATE1>TOKEN : { <S1A: "a"> { SwitchTo(0); } } void Input() : {} { ( <A> { System.out.println("*A*"); } | <S1A> { System.out.println("*S1A*"); })+ <EOF> }
で、
a *A* a *S1A* a *S1A* a *S1A*
これで変わると思ったのに…