[antlr-interest] [Fwd: Can't find template]

Joseph joseph at iist.unu.edu
Sun Oct 29 20:58:07 PST 2006



---------------------------- Original Message ----------------------------
Subject: [antlr-interest] Can't find template
From:    "Joseph" <joseph at iist.unu.edu>
Date:    Sat, October 28, 2006 1:36 pm
To:      antlr-interest at antlr.org
--------------------------------------------------------------------------

Dear All,

I am a new user of ANTLR and String Template. I am developing a translator
and
using the example cminus as a starting point. I get the following error which
i cannot figure out why its there even when the "type_int" is specified in
the .stg file.

Could any one help me out.

Here is the error message:

joe at joe:~/utpcompiler/utp2pvs$ java -cp .:antlr-2.7.7.jar:stringtemplate.jar
UTP < test1.utp
Exception in thread "main" java.lang.IllegalArgumentException: Can't find
template type_int.st
        at
org.antlr.stringtemplate.StringTemplateGroup.lookupTemplate(StringTemplateGroup.java:485)
        at
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:372)
        at
org.antlr.stringtemplate.StringTemplateGroup.getInstanceOf(StringTemplateGroup.java:384)
        at UTPParser.template(UTPParser.java:26)
        at UTPParser.typename(UTPParser.java:232)
        at UTPParser.vardecl(UTPParser.java:131)
        at UTPParser.declarationBlock(UTPParser.java:99)
        at UTPParser.utpspec(UTPParser.java:71)
        at UTP.main(UTP.java:20)

Here is the definition in the grammar.
*************************************************
typename returns [StringTemplate code=null]
    :   "int"  {code=template("type_int");}
    |   "nat"  {code=template("type_nat");}
    |   id:IDENT
        {
        code=template("type_user_def");
        code.setAttribute("name", id.getText());
        }
    ;
************************************************

Here is the definition the .stg

*************************************************
group Pvs;

utpspec(vars, commands) ::= <<
 <name> : THEORY
    BEGIN
	<vars>
	<commands>
>>

vardecl(name, typename) ::= "<name>, <name>' : VAR <type><\n>"
State: TYPE = "[<typename>,]"
IMPORTING UTPProg[State]
s : VAR State

globalVariable ::= vardecl

commandseq(typename,name,inits,cmds) ::= <<
 pre : pred[State] =
    ( LAMBDA s : s(<name>) =
    <inits>
    <cmds; separator="\n">
 END <name>
>>

type_int() ::= "int"

type_nat() ::= "nat"

type_user_def(name) ::= "<name>"

inits(typename, val) ::= "<typename> = <val>"
***********************************************

Thanks and best regards.

Joe.


************************************************
The United Nations University
International Institute for Software Technology,
P.O.Box 3058,
Casa Silva Mendes Est. do Engenheiro Trigo No. 4
Macau.
Tel: +853 5040415
Email: joseph at iist.unu.edu
URL: www.iist.unu.edu/~


More information about the antlr-interest mailing list