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*