字句解析: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*

これで変わると思ったのに…