[antlr-interest] Antlr3b6 [bug?] Can't find template matchSetTrack.st
Ilia Kantor
ilia at obnovlenie.ru
Thu Jan 4 22:38:20 PST 2007
The tested build is Antlr3b6 at Jan 5 06:34:41 UTC 2007
The problem appeared after I introduced tree construction syntax from
http://www.antlr.org/wiki/display/ANTLR3/Tree+construction:
========== Error ================
ilia at home ~/taskpower/antlr $ ./antlr.sh GrammarReader.g
no such locale file org/antlr/tool/templates/messages/languages/ru.stg
retrying with English locale
ANTLR Parser Generator Version 3.0b6 (??) 1989-2007
error(10): internal error: GrammarReader.g :
java.lang.IllegalArgumentException: Can't find template matchSetTrack.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.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:464)
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.set(CodeGenTreeWalker.java:2557)
org.antlr.codegen.CodeGenTreeWalker.atom(CodeGenTreeWalker.java:2243)
org.antlr.codegen.CodeGenTreeWalker.element(CodeGenTreeWalker.java:1813)
org.antlr.codegen.CodeGenTreeWalker.alternative(CodeGenTreeWalker.java:1115)
org.antlr.codegen.CodeGenTreeWalker.block(CodeGenTreeWalker.java:999)
org.antlr.codegen.CodeGenTreeWalker.rule(CodeGenTreeWalker.java:725)
org.antlr.codegen.CodeGenTreeWalker.rules(CodeGenTreeWalker.java:516)
org.antlr.codegen.CodeGenTreeWalker.grammarSpec(CodeGenTreeWalker.java:458)
org.antlr.codegen.CodeGenTreeWalker.grammar(CodeGenTreeWalker.java:305)
org.antlr.codegen.CodeGenerator.genRecognizer(CodeGenerator.java:415)
org.antlr.Tool.processGrammar(Tool.java:329)
org.antlr.Tool.process(Tool.java:266)
org.antlr.Tool.main(Tool.java:69)
============= Grammar ===============
grammar GrammarReader;
options {
output=AST;
}
OUTPUT : 'output';
FORMULA : 'formula';
GRAMMAR : 'grammar';
IMPORT: 'import';
FROM: 'from';
NAME : {false}? .;
fragment BLOCK : '{' (BLOCK | ~('{'|'}'))* '}' ;
ID : NAMECHAR+;
SEMI: ';';
DOT : '.';
BODY
: BLOCK;
COMMAND
: '~' NAMECHAR*;
GET_SCOPE_VALUE
: '#' NAMECHAR+;
fragment NAMECHAR
: ALPHA_NUM | '_'
;
fragment ALPHA_NUM
: DIGIT | LETTER_ENG;
fragment DIGIT
: '0'..'9'
;
fragment LETTER_ENG
: 'a'..'z'
| 'A'..'Z'
;
WS :
(' '|'\r'|'\t'|'\u000C'|'\n' )+ {$channel=HIDDEN;}
;
SL_COMMENT : '//' (options {greedy=false;}:.)* '\n' {$channel=HIDDEN;};
ML_COMMENT
: '/*'
( options {greedy=false;} : . )*
'*/'
{$channel=HIDDEN;}
;
document : grammarDefinition grammarBody;
grammarDefinition:
GRAMMAR ID SEMI -> ^(GRAMMAR ID)
;
grammarBody: (imp|common_rule)*;
imp
:
IMPORT dst=ID FROM src+=ID (DOT src+=ID)* SEMI ->
^(IMPORT ^(NAME $src+) ^(NAME $dst));
common_rule
:
type=(FORMULA|OUTPUT) name+=ID (DOT name+=ID)* COMMAND? BODY ->
^($type ^(NAME $name+) COMMAND? BODY)
;
More information about the antlr-interest
mailing list