getNextToken() による読み飛ばし
PARSER_BEGIN(Test) import java.io.*; public class Test { public static void main(String args[]) { Test parser = new Test(System.in); while (true) { try { parser.Input(); } catch (ParseException e) { System.out.println(e.getMessage()); } } } } PARSER_END(Test) SKIP : { <SPACE: " " | "\t" | "\n" | "\r"> } TOKEN : { <A: "a"> | <B: "b"> | <C: "c"> | <SM: ";"> } void Input() : {} { try { (<A> <B> <C> <SM> { System.out.println("*ABC*"); })+ } catch (ParseException e) { Token t; System.out.println(e.getMessage()); do { t = getNextToken(); } while (t.kind != SM && t.kind != EOF); } }
で、
abc;abccc;abc; *ABC* Encountered "c" at line 1, column 8. Was expecting: ";" ... *ABC*