[antlr-interest] Island grammar for reading shell commands

Terence Parr parrt at cs.usfca.edu
Tue Nov 30 13:07:57 PST 2010


Wow. input.LT(1) or LT(-1) is returning null.

I'd turn on -trace option of antlr then recompile and retry. that may say more
T
On Nov 30, 2010, at 12:59 PM, Bill Lear wrote:

> On Tuesday, November 30, 2010 at 11:25:18 (-0800) Terence Parr writes:
>> 
>> On Nov 29, 2010, at 7:00 PM, Bill Lear wrote:
>> 
>>> I've followed the sensible advice to create an island grammar to deal
>>> with parsing an unstructured shell command along with more structured
>>> input.  Unfortunately, when I follow the examples as given in the
>>> Antlr examples zip file, I get very close, but then either a NULL
>>> pointer exception bites, or I can only parse one line of "island"
>>> input --- I can't figure out how to return control back to the "sea"
>>> parser and have it read more input.
>> 
>> Can you tell us where it gets null ptr?
> 
> Surely.  Here you go:
> 
> % cat input | java Command
> Got shell.  Going native.
> Exception in thread "main" java.lang.NullPointerException
>        at org.antlr.runtime.Parser.getMissingSymbol(Parser.java:70)
>        at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:604)
>        at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
>        at ShellParser.shell(ShellParser.java:48)
>        at CommandLexer.mSHELL(CommandLexer.java:57)
>        at CommandLexer.mTokens(CommandLexer.java:688)
>        at org.antlr.runtime.Lexer.nextToken(Lexer.java:84)
>        at org.antlr.runtime.CommonTokenStream.fillBuffer(CommonTokenStream.java:95)
>        at org.antlr.runtime.CommonTokenStream.LT(CommonTokenStream.java:238)
>        at org.antlr.runtime.CommonTokenStream.LA(CommonTokenStream.java:300)
>        at CommandParser.commands(CommandParser.java:56)
>        at Command.main(Command.java:8)
> 
> Let me know if I can do anything further to narrow it down for you.
> 
> 
> Bill



More information about the antlr-interest mailing list