[antlr-interest] Simple Grammar breaks ANTLRWorks Interpreter & Debugger?

Gavin Lambert antlr at mirality.co.nz
Fri Aug 14 00:40:27 PDT 2009


At 10:12 14/08/2009, consiliens at gmail.com wrote:
 >QuizLexer lexer = new QuizLexer(new ANTLRFileStream(input));
 >CommonTokenStream tokens = new CommonTokenStream(lexer);
 >// prints 0
 >System.out.println(tokens.size());
 >
 >So according to this there are no tokens, which would explain 
the
 >blank debugger Input window. If the ANTLRWorks Interpreter runs
 >the code correctly, why not the Debugger or unit tests?

Actually that's a bit deceptive :)

The stream starts out empty, and thus .size() returns 0.  It 
doesn't get populated until the first time a token is 
requested.  So after calling .nextToken() once then .size() should 
give you the true value.


Silly question, perhaps, but are you sure you're filling in the 
input window properly when starting the debugger?  And actually 
stepping through to the end?

Generally, I find the debugger significantly more reliable than 
the interpreter ever is...



More information about the antlr-interest mailing list