Gavin Lambert wrote:
> At 10:12 14/08/2009, [email protected] 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.

You're right, and that seems like a bug. In CommonTokenStream:

00315     public int size() {
00316         return tokens.size();
00317     }

should be
          public int size() {
              if ( p == -1 ) {
                  fillBuffer();
              }
              return tokens.size();
          }

Probably consume() also needs the same fix. (There are other methods
that don't check for p == -1, but they're declared as protected.)

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

Same here. The interpreter can't work properly on grammars that have any
significant reliance on target-language code.

-- 
David-Sarah Hopwood  ⚥  http://davidsarah.livejournal.com


List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe: 
http://www.antlr.org/mailman/options/antlr-interest/your-email-address

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"il-antlr-interest" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/il-antlr-interest?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to