getNextToken()

字句解析内での呼び出し

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"> { getNextToken(); } |
    <B: "b">
}

void Input() :
{ Token t; }
{
    (t = <A> { System.out.println("*" + t.image + "*"); } )+ <EOF>
}

で、

a
a
a
ab
*a*
abab
*a*
*a*
b
Exception in thread "main" ParseException: Encountered "b" at line 6, column 1.
Was expecting one of:
    <EOF>
    "a" ...

        at Test.generateParseException(Test.java:186)
        at Test.jj_consume_token(Test.java:125)
        at Test.Input(Test.java:23)
        at Test.main(Test.java:5)


構文解析内での呼び出し

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">
}

void Input() :
{ Token t; }
{
    (t = <A> { System.out.println("*" + t.image + "*"); getNextToken(); } )+ <EOF>
}

で、

a
*a*
a
a
*a*