[antlr-interest] Can't find template tokenRefRuleRoot.st

Doucette, Charles cdoucette at vaultus.com
Thu Apr 17 11:51:12 PDT 2008


I googled it and found an earlier response on this list.
Thus, I have solved my own problem.
I was using other AST rewrite operators, i.e. "^".
Once I removed them, my parser was generated without errors.

So, as I requested below, could errors like:

java.lang.IllegalArgumentException: Can't find template tokenRefRuleRoot.st

be rewritten to something like:

Can't use AST operator "^" without using option output=AST

Thanks,
Chuck

________________________________
From: antlr-interest-bounces at antlr.org [mailto:antlr-interest-bounces at antlr.org] On Behalf Of Doucette, Charles
Sent: Thursday, April 17, 2008 2:44 PM
To: antlr-interest at antlr.org
Subject: [antlr-interest] Can't find template tokenRefRuleRoot.st

I originally intended to use ANTLR AST support.
Thus, my options had:
    output=AST;
I have decided to build my own AST trees manually in actions instead.
So, I removed "output=AST" from my options.
Now I get this error:

[14:36:00] error(10):  internal error: C:\software\trunk\vsw\source\com\vaultus\studio\vscript\parser\antlr\vscript.g : java.lang.IllegalArgumentException: Can't find template tokenRefRuleRoot.st
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:485)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:384)
org.antlr.codegen.CodeGenTreeWalker.getTokenElementST(CodeGenTreeWalker.java:160)
org.antlr.codegen.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:1965)
org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1641)
org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1478)
org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1252)
org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:1037)
org.antlr.codegen.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:753)
org.antlr.codegen.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:544)
org.antlr.codegen.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:486)
org.antlr.codegen.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:333)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:406)
org.antlr.Tool.processGrammar(Tool.java:347)
org.antlr.Tool.process(Tool.java:268)
org.antlr.works.generate.CodeGenerate.generate(Unknown Source)
org.antlr.works.generate.CodeGenerate.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Can someone please tell me what this error means and how to resolve it?

Earlier, I got this error:
[14:37:11] error(10):  internal error: C:\software\trunk\vsw\source\com\vaultus\studio\vscript\parser\antlr\vscript.g : java.lang.IllegalArgumentException: Can't find template tokenRefBang.st
and I was able to determine that it was because my top-level rule ended with "EOF!" instead of "EOF".
When I removed the trailing "!", that error was resolved.

Might I humbly suggest that:
a)    All ANTLR errors should include a line number in the grammar if at all possible.
b)    Could errors like ": java.lang.IllegalArgumentException: Can't find template tokenRefBang.st"
        be refactored to generate an error like "Can't use AST operator ! without options output=AST".

Thanks,
Chuck

________________________________

Charles E. Doucette *  617-399-1122 *  Vaultus Mobile Technologies, 263 Summer St., Boston, MA 02210 *  http://www.vaultus.com<http://www.vaultus.com/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20080417/1511050c/attachment-0001.html 


More information about the antlr-interest mailing list