[antlr-interest] rewrites to capture tree structure and original text

Jim Idle jimi at temporal-wave.com
Fri Oct 7 13:12:20 PDT 2011


You don't need to do this. If you want the text that makes up that part of
the tree, you can use the start and end tokens in the tree parser and
write a few lines of java that will give you the text. Placing it in the
tree is just duplicating it.

Jim

> -----Original Message-----
> From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-
> bounces at antlr.org] On Behalf Of David Wood
> Sent: Friday, October 07, 2011 12:56 PM
> To: Antlr List
> Subject: [antlr-interest] rewrites to capture tree structure and
> original text
>
> I am writing a translator and would like to capture the original text
> that I'm translating.  I've tried something like this in AW
>
> declarationStatement
>         :        tableType id tupleDeclList ';' (LINE_COMMENT)? ->
>                         ^(TABLEDECL tableType id tupleDeclList ^(TEXT
> $declarationStatement.text))
>         ;
>
> In addition, this causes a NPE (see below).   I'm sure I'm making this
> harder and/or have missed something somewhere.  Can someone point in
> the right direction?  Thanks.
>
> [15:54:27] java.lang.NullPointerException
>         at
> org.antlr.grammar.v3.DefineGrammarItemsWalker.countAltsForRule(DefineGr
> ammarItemsWalker.java:153)
>         at
> org.antlr.grammar.v3.DefineGrammarItemsWalker.rule(DefineGrammarItemsWa
> lker.java:1546)
>         at
> org.antlr.grammar.v3.DefineGrammarItemsWalker.rules(DefineGrammarItemsW
> alker.java:1190)
>         at
> org.antlr.grammar.v3.DefineGrammarItemsWalker.grammarSpec(DefineGrammar
> ItemsWalker.java:623)
>         at
> org.antlr.grammar.v3.DefineGrammarItemsWalker.grammar_(DefineGrammarIte
> msWalker.java:315)
>         at
> org.antlr.tool.Grammar.defineGrammarSymbols(Grammar.java:748)
>         at
> org.antlr.tool.CompositeGrammar.defineGrammarSymbols(CompositeGrammar.j
> ava:369)
>         at org.antlr.tool.Grammar.setGrammarContent(Grammar.java:606)
>         at
> org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createNewGrammar(A
> NTLRGrammarEngineImpl.java:192)
>         at
> org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createParserGramma
> r(ANTLRGrammarEngineImpl.java:225)
>         at
> org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createCombinedGram
> mar(ANTLRGrammarEngineImpl.java:203)
>         at
> org.antlr.works.grammar.antlr.ANTLRGrammarEngineImpl.createGrammars(ANT
> LRGrammarEngineImpl.java:165)
>         at
> org.antlr.works.grammar.engine.GrammarEngineImpl.getGrammarLanguage(Gra
> mmarEngineImpl.java:115)
>         at
> org.antlr.works.components.GrammarWindowMenu.getEditTestRigTitle(Gramma
> rWindowMenu.java:244)
>         ...
>
> David Wood
> Computing Systems for Wireless Networks
> IBM TJ Watson Research Center
> dawood at us.ibm.com
> 914-784-5123 (office), 914-396-6515 (mobile)
>
> List: http://www.antlr.org/mailman/listinfo/antlr-interest
> Unsubscribe: http://www.antlr.org/mailman/options/antlr-interest/your-
> email-address


More information about the antlr-interest mailing list