[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