Skip to content
Snippets Groups Projects
Select Git revision
  • multipleinheritance
  • master default
2 results

owl.jjt

Blame
  • owl.jjt 16.83 KiB
    /* -*-Java-*- */
    
    /* 
     * Copyright (C) 2006  Anders Nilsson <anders.nilsson@cs.lth.se>
     *
     * This file is part of OntologyCompiler.
     */
    
    options {
        MULTI                       = true;
        VISITOR                     = true;
        NODE_DEFAULT_VOID           = true;
        NODE_SCOPE_HOOK             = false;
        NODE_PREFIX                 = "";
        JAVA_UNICODE_ESCAPE         = true;
        STATIC                      = false;
    //  	DEBUG_PARSER                = true;
    // 	DEBUG_LOOKAHEAD             = true;
    //  	DEBUG_TOKEN_MANAGER         = true;
    } // options
    
    
    PARSER_BEGIN(OwlParser)
    package AST;
    public class OwlParser {
    }
    PARSER_END(OwlParser)
    
    
    //--------------------------------------------------------------------//
    //                           LEXICAL TOKENS                           //
    //--------------------------------------------------------------------//
    
    <DEFAULT, BOUNDS> SKIP : /* WHITE SPACE */
    {
        " "
        |
        "\t"
        |
        "\n"
        |
        "\r"
        |
        "\f"
    }// WHITE SPACE
    
    
    // <DEFAULT,BOUNDS> SPECIAL_TOKEN : /* COMMENTS */
    // {
    //     <SLASH_SLASH_COMMENT :  "//" (~["\n","\r"])* >
    // }
    
    SPECIAL_TOKEN : /* COMMENTS */
    {
    //     <SLASH_STAR_COMMENT  :  "/*" (~["*"])* "*" ("*" | (~["*","/"] (~["*"])* "*"))* "/"  >
    < "<!--" ( ~["-"] | ( "-" ~["-"] ) )* "-->">
    	| < "<rdfs:comment" ( ~["<"] | ( "<" ~["/"] ) )* "</rdfs:comment>" >
    //     <XML_COMMENT  :  "<!--" (~["-","-",">"])* "-->"  >
    }// COMMENTS
    
    
    // <BOUNDS> TOKEN: {
    //     < BEGINCOMMENT : "<!--"     >
    //   | < ENDCOMMENT   : "-->"     >
    // }
    
    <DEFAULT, BOUNDS> TOKEN : /* RESERVED WORDS AND LITERALS */
    {
        < OWL_ALLVALUESFROM     : "owl:allValuesFrom" >
      | < OWL_ALLDIFFERENT      : "owl:AllDifferent" >
      | < OWL_CARDINALITY        : "owl:cardinality" >
      | < OWL_CLASS             : "owl:Class" >
      | < OWL_DATARANGE         : "owl:DataRange" >
      | < OWL_DATATYPEPROPERTY  : "owl:DatatypeProperty" >
      | < OWL_DISJOINTWITH      : "owl:disjointWith" >
      | < OWL_DISTINCTMEMBERS      : "owl:distinctMembers" >
      | < OWL_EQUIVALENTCLASS   : "owl:equivalentClass" >
      | < OWL_FUNCTIONALPROPERTY : "owl:FunctionalProperty" >
      | < OWL_IMPORTS            : "owl:imports" >
      | < OWL_INTERSECTIONOF     : "owl:intersectionOf" >
      | < OWL_INVERSEOF         : "owl:inverseOf" >
      | < OWL_MAXCARDINALITY     : "owl:maxCardinality" >
      | < OWL_MINCARDINALITY     : "owl:minCardinality" >
      | < OWL_OBJECTPROPERTY    : "owl:ObjectProperty" >
      | < OWL_ONPROPERTY        : "owl:onProperty" >
      | < OWL_ONEOF             : "owl:oneOf" >
      | < OWL_ONTOLOGY          : "owl:Ontology" >
      | < OWL_RESTRICTION       : "owl:Restriction" >
      | < OWL_SOMEVALUESFROM    : "owl:someValuesFrom" >
      | < OWL_UNIONOF           : "owl:unionOf" >
      | < RDF_RDF            : "rdf:RDF"      >
      | < RDF_ABOUT          : "rdf:about" >
      | < RDF_DATATYPE          : "rdf:datatype" >
      | < RDF_DESCRIPTION        : "rdf:Description" >
      | < RDF_ID                : "rdf:ID" >
      | < RDF_FIRST             : "rdf:first" >
      | < RDF_REST              : "rdf:rest" >
      | < RDF_PARSETYPE         : "rdf:parseType" >
      | < RDF_RESOURCE          : "rdf:resource" >
      | < RDF_TYPE              : "rdf:type" >
      | < RDFS_COMMENT          : "rdfs:comment" >
      | < RDFS_DOMAIN           : "rdfs:domain" >
      | < RDFS_RANGE            : "rdfs:range" >
      | < RDFS_SUBCLASSOF       : "rdfs:subClassOf" >
      | < RDFS_SUBPROPERTYOF     : "rdfs:subPropertyOf" >
      | < VERSION               : "version" >
      | < XML                   : "xml"          >
      | < XML_BASE              : "xml:base" >
      | < XMLNS                 : "xmlns" >	 
      | < XMLNS_DAML            : "xmlns:daml" >	 
      | < XMLNS_DC              : "xmlns:dc" >	 
      | < XMLNS_P1              : "xmlns:p1" >	 
      | < XMLNS_PROTEGE         : "xmlns:protege" >	 
      | < XMLNS_RDF             : "xmlns:rdf" >	 
      | < XMLNS_XSD             : "xmlns:xsd" >	 
      | < XMLNS_RDFS            : "xmlns:rdfs" >	 
      | < XMLNS_OWL             : "xmlns:owl" >	 
    
    }// RESERVED WORDS AND LITERALS
    <DEFAULT, BOUNDS> TOKEN : /* LITERALS */
    {
        < INTEGER_LITERAL:
            <DECIMAL_LITERAL> (["l","L"])?
            |
            <HEX_LITERAL> (["l","L"])?
            |
            <OCTAL_LITERAL> (["l","L"])?
        >
        |
        < #DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])* >
        |
        < #HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ >
        |
        < #OCTAL_LITERAL: "0" (["0"-"7"])* >
        |
        < FLOAT_LITERAL:
            (["0"-"9"])+ "." (["0"-"9"])* (<EXPONENT>)? (["f","F","d","D"])?
            |
            "." (["0"-"9"])+ (<EXPONENT>)? (["f","F","d","D"])?
            |
            (["0"-"9"])+ <EXPONENT> (["f","F","d","D"])?
            |
            (["0"-"9"])+ (<EXPONENT>)? ["f","F","d","D"]
        >
        |
        < #EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+ >
        |
        < CHARACTER_LITERAL:
            "'"
            (   (~["'","\\","\n","\r"])
                |
                ("\\"
                    (   ["n","t","b","r","f","\\","'","\""]
                        |
                        ["0"-"7"] ( ["0"-"7"] )?
                        |
                        ["0"-"3"] ["0"-"7"] ["0"-"7"]
                    )
                )
            )
            "'"
        >
        |
        < STRING_LITERAL:
            "\""
            (   (~["\"","\\","\n","\r"])
                |
                ("\\"
                    (    ["n","t","b","r","f","\\","'","\""]
                         |
                         ["0"-"7"] ( ["0"-"7"] )?
                         |
                         ["0"-"3"] ["0"-"7"] ["0"-"7"]
                    )
                )
            )*
            "\""
        >
    }// LITERALS
    
    <DEFAULT, BOUNDS> TOKEN : /* IDENTIFIERS */
    {
        < IDENTIFIER: <LETTER> (<LETTER>|<DIGIT>|"-")* >
        |
        < #LETTER:
            [
            "\u0024",
            "\u0041"-"\u005a",
            "\u005f",
            "\u0061"-"\u007a",
            "\u00c0"-"\u00d6",
            "\u00d8"-"\u00f6",
            "\u00f8"-"\u00ff",
            "\u0100"-"\u1fff",
            "\u3040"-"\u318f",
            "\u3300"-"\u337f",
            "\u3400"-"\u3d2d",
            "\u4e00"-"\u9fff",
            "\uf900"-"\ufaff"
            ]
        >
        |
        < #DIGIT:
            [
            "\u0030"-"\u0039",
            "\u0660"-"\u0669",
            "\u06f0"-"\u06f9",
            "\u0966"-"\u096f",
            "\u09e6"-"\u09ef",
            "\u0a66"-"\u0a6f",
            "\u0ae6"-"\u0aef",
            "\u0b66"-"\u0b6f",
            "\u0be7"-"\u0bef",
            "\u0c66"-"\u0c6f",
            "\u0ce6"-"\u0cef",
            "\u0d66"-"\u0d6f",
            "\u0e50"-"\u0e59",
            "\u0ed0"-"\u0ed9",
            "\u1040"-"\u1049"
            ]
        >
    }// IDENTIFIERS
    
    <DEFAULT,BOUNDS> TOKEN : /* SEPARATORS */
    {
    //       < LPAREN               : "("    >
    //     | < RPAREN               : ")"    >
         < LBRACE               : "{"    >
        | < RBRACE               : "}"    >
        | < LBRACKET             : "["    >
        | < RBRACKET             : "]"    >
        | < SEMICOLON            : ";"    >
        | < COMMA                : ","    >
        | < DOT                  : "."    >
    }// SEPARATORS
    
    
    <DEFAULT,BOUNDS> TOKEN : /* OPERATORS */
    {
          < ASSIGN               : "="    >
    //     | < GT                   : ">"    >
    //     | < LT                   : "<"    >
    //     | < BANG                 : "!"    >
    //     | < TILDE                : "~"    >
    //     | < HOOK                 : "?"    >
         | < COLON                : ":"    >
    //     | < EQ                   : "=="   >
    //     | < LE                   : "<="   >
    //     | < GE                   : ">="   >
    //     | < NE                   : "!="   >
    //     | < SC_OR                : "||"   >
    //     | < SC_AND               : "&&"   >
    //     | < INCR                 : "++"   >
    //     | < DECR                 : "--"   >
         | < PLUS                 : "+"    >
         | < MINUS                : "-"    >
    //     | < STAR                 : "*"    >
         | < SLASH                : "/"    >
    //     | < BIT_AND              : "&"    >
    //     | < BIT_OR               : "|"    >
    //     | < XOR                  : "^"    >
    //     | < REM                  : "%"    >
    //     | < LSHIFT               : "<<"   >
    //     | < RSIGNEDSHIFT         : ">>"   >
    //     | < RUNSIGNEDSHIFT       : ">>>"  >
    //     | < PLUSASSIGN           : "+="   >
    //     | < MINUSASSIGN          : "-="   >
    //     | < STARASSIGN           : "*="   >
    //     | < SLASHASSIGN          : "/="   >
    //     | < ANDASSIGN            : "&="   >
    //     | < ORASSIGN             : "|="   >
    //     | < XORASSIGN            : "^="   >
    //     | < REMASSIGN            : "%="   >
    //     | < LSHIFTASSIGN         : "<<="  >
    //     | < RSIGNEDSHIFTASSIGN   : ">>="  >
    //     | < RUNSIGNEDSHIFTASSIGN : ">>>=" >
    }// OPERATORS
    
    
    // <DEFAULT,BOUNDS> TOKEN : /* TEXT */
    // {
    //     < TEXT : <LETTER> (~["<",">"])*    >
    // }// TEXT
    
    
    //--------------------------------------------------------------------//
    //                      THE OWL LANGUAGE GRAMMAR                     //
    //--------------------------------------------------------------------//
    
    Start Start() #Start : {}
    {
        Specification()
      { return jjtThis; }
    }
    
    void Specification() #Specification : {}
    {
        XmlHeader()
    	RdfDeclaration()
    }
    
    void XmlHeader() #XmlHeader : {}
    {
        "<?" <XML> AttributeList() "?>"
    }
    
    void RdfDeclaration() #RdfDeclaration : {}
    {
        "<"  <RDF_RDF> AttributeList() ">"
    	ElementList()
        "</" <RDF_RDF> ">"
    }
    
    void ElementList() #List : {}
    {
        (Element())*    
    }
    
    void Element() : {}
    {
        ( "<" ( OwlElement()
    	    | RdfElement()
    		| DiscardedElement()
    	    ))
    	| SimpleElement()
    }
    
    void DiscardedElement() #DiscardedElement : {}
    {
    	Identifier() AttributeList() 
    	(">" ElementList() "</" <IDENTIFIER> ">" | ElementList() "/>")
    }
    
    void Identifier() #Identifier : {Token t;}
    {
    	t = <IDENTIFIER>
    	{jjtThis.setIDENTIFIER(t.image);}
    }
    
    void SimpleElement() : {}
    {
        IntElement()
    	| FloatElement()
    	| StringElement()
    }
    
    void IntElement() #IntElement : { Token t; }
    {
        t = <INTEGER_LITERAL>
    	{jjtThis.setINTEGER_LITERAL(t.image);}
    }
    
    void FloatElement() #FloatElement : { Token t; }
    {
        t = <FLOAT_LITERAL>
    	{jjtThis.setFLOAT_LITERAL(t.image);}
    }
    
    void StringElement() #StringElement : { Token t; }
    {
        t = <IDENTIFIER> | t = <COMMA> | t = <MINUS> | t = <DOT> | t = <PLUS> | t = <SLASH>
    		| t = <COLON>
    	{jjtThis.setIDENTIFIER(t.image);}
    }
    
    void OwlElement() : {}
    {
        OwlOntology()
    	| OwlAllDifferent()
    	| OwlAllValuesFrom()
    	| OwlCardinality()
    	| OwlClass()
    	| OwlDataRange()
    	| OwlDatatypeProperty()
    	| OwlDisjointWith()
    	| OwlDistinctMembers()
    	| OwlEquivalentClass()
    	| OwlFunctionalProperty()
    	| OwlImports()
    	| OwlIntersectionOf()
    	| OwlInverseOf()
    	| OwlMaxCardinality()
    	| OwlMinCardinality()
    	| OwlObjectProperty()
    	| OwlOneOf()
    	| OwlOnProperty()
    	| OwlSomeValuesFrom()
    	| OwlRestriction()
    	| OwlUnionOf()
    }
    
    void OwlOntology() #OwlOntology : {}
    {
        <OWL_ONTOLOGY> AttributeList() 
    	(">" ElementList() "</" <OWL_ONTOLOGY> ">" | ElementList() "/>")
    }
    
    void OwlAllDifferent() #OwlAllDifferent : {}
    {
        <OWL_ALLDIFFERENT> AttributeList() 
    	(">" ElementList() "</" <OWL_ALLDIFFERENT> ">" | ElementList() "/>")
    }
    
    void OwlAllValuesFrom() #OwlAllValuesFrom : {}
    {
        <OWL_ALLVALUESFROM> AttributeList() 
    	(">" ElementList() "</" <OWL_ALLVALUESFROM> ">" | ElementList() "/>")
    }
    
    void OwlCardinality() #OwlCardinality : {}
    {
        <OWL_CARDINALITY> AttributeList() 
    	(">" ElementList() "</" <OWL_CARDINALITY> ">" | ElementList() "/>")
    }
    
    void OwlClass() #OwlClass : {}
    {
        <OWL_CLASS> AttributeList() 
    	(">" ElementList() "</" <OWL_CLASS> ">" | ElementList() "/>")
    }
    
    void OwlDataRange() #OwlDataRange : {}
    {
        <OWL_DATARANGE> AttributeList() 
    	(">" ElementList() "</" <OWL_DATARANGE> ">" | ElementList() "/>")
    }
    
    void OwlDatatypeProperty() #OwlDatatypeProperty : {}
    {
        <OWL_DATATYPEPROPERTY> AttributeList() 
    	(">" ElementList() "</" <OWL_DATATYPEPROPERTY> ">" | ElementList() "/>")
    }
    
    void OwlDisjointWith() #OwlDisjointWith : {}
    {
        <OWL_DISJOINTWITH> AttributeList() 
    	(">" ElementList() "</" <OWL_DISJOINTWITH> ">" | ElementList() "/>")
    }
    
    void OwlDistinctMembers() #OwlDistinctMembers : {}
    {
        <OWL_DISTINCTMEMBERS> AttributeList() 
    	(">" ElementList() "</" <OWL_DISTINCTMEMBERS> ">" | ElementList() "/>")
    }
    
    void OwlEquivalentClass() #OwlEquivalentClass : {}
    {
        <OWL_EQUIVALENTCLASS> AttributeList() 
    	(">" ElementList() "</" <OWL_EQUIVALENTCLASS> ">" | ElementList() "/>")
    }
    
    void OwlFunctionalProperty() #OwlFunctionalProperty : {}
    {
        <OWL_FUNCTIONALPROPERTY> AttributeList() 
    	(">" ElementList() "</" <OWL_FUNCTIONALPROPERTY> ">" | ElementList() "/>")
    }
    
    void OwlImports () #OwlImports  : {}
    {
        <OWL_IMPORTS> AttributeList() 
    	(">" ElementList() "</" <OWL_IMPORTS> ">" | ElementList() "/>")
    }
    
    void OwlIntersectionOf () #OwlIntersectionOf  : {}
    {
        <OWL_INTERSECTIONOF> AttributeList() 
    	(">" ElementList() "</" <OWL_INTERSECTIONOF> ">" | ElementList() "/>")
    }
    
    void OwlInverseOf () #OwlInverseOf  : {}
    {
        <OWL_INVERSEOF> AttributeList() 
    	(">" ElementList() "</" <OWL_INVERSEOF> ">" | ElementList() "/>")
    }
    
    void OwlMaxCardinality () #OwlMaxCardinality  : {}
    {
        <OWL_MAXCARDINALITY> AttributeList() 
    	(">" ElementList() "</" <OWL_MAXCARDINALITY> ">" | ElementList() "/>")
    }
    
    void OwlMinCardinality () #OwlMinCardinality  : {}
    {
        <OWL_MINCARDINALITY> AttributeList() 
    	(">" ElementList() "</" <OWL_MINCARDINALITY> ">" | ElementList() "/>")
    }
    
    void OwlObjectProperty () #OwlObjectProperty  : {}
    {
        <OWL_OBJECTPROPERTY> AttributeList() 
    	(">" ElementList() "</" <OWL_OBJECTPROPERTY> ">" | ElementList() "/>")
    }
    
    void OwlOneOf () #OwlOneOf  : {}
    {
        <OWL_ONEOF> AttributeList() 
    	(">" ElementList() "</" <OWL_ONEOF> ">" | ElementList() "/>")
    }
    
    void OwlOnProperty () #OwlOnProperty  : {}
    {
        <OWL_ONPROPERTY> AttributeList() 
    	(">" ElementList() "</" <OWL_ONPROPERTY> ">" | ElementList() "/>")
    }
    
    void OwlSomeValuesFrom () #OwlSomeValuesFrom  : {}
    {
        <OWL_SOMEVALUESFROM> AttributeList() 
    	(">" ElementList() "</" <OWL_SOMEVALUESFROM> ">" | ElementList() "/>")
    }
    
    void OwlRestriction () #OwlRestriction  : {}
    {
        <OWL_RESTRICTION> AttributeList() 
    	(">" ElementList() "</" <OWL_RESTRICTION> ">" | ElementList() "/>")
    }
    
    void OwlUnionOf () #OwlUnionOf  : {}
    {
        <OWL_UNIONOF> AttributeList() 
    	(">" ElementList() "</" <OWL_UNIONOF> ">" | ElementList() "/>")
    }
    
    void RdfElement() : {}
    {
        RdfType()
    	| RdfDescription()
    	| RdfFirst()
    	| RdfRest()
    	| RdfsComment()
    	| RdfsDomain()
    	| RdfsRange()
    	| RdfsSubClassOf()
    	| RdfsSubPropertyOf()
    }
    
    void RdfType() #RdfType : {}
    {
        <RDF_TYPE> AttributeList() 
    	(">" ElementList() "</" <RDF_TYPE> ">" | ElementList() "/>")
    }
    
    void RdfDescription() #RdfDescription : {}
    {
        <RDF_DESCRIPTION> AttributeList() 
    	(">" ElementList() "</" <RDF_DESCRIPTION> ">" | ElementList() "/>")
    }
    
    void RdfFirst() #RdfFirst : {}
    {
        <RDF_FIRST> AttributeList() 
    	(">" ElementList() "</" <RDF_FIRST> ">" | ElementList() "/>")
    }
    
    void RdfRest() #RdfRest : {}
    {
        <RDF_REST> AttributeList() 
    	(">" ElementList() "</" <RDF_REST> ">" | ElementList() "/>")
    }
    
    void RdfsComment() #RdfsComment : {}
    {
        <RDFS_COMMENT> AttributeList() 
    	(">" ElementList() "</" <RDFS_COMMENT> ">" | ElementList() "/>")
    }
    
    void RdfsDomain() #RdfsDomain : {}
    {
        <RDFS_DOMAIN> AttributeList() 
    	(">" ElementList() "</" <RDFS_DOMAIN> ">" | ElementList() "/>")
    }
    
    void RdfsRange() #RdfsRange : {}
    {
        <RDFS_RANGE> AttributeList() 
    	(">" ElementList() "</" <RDFS_RANGE> ">" | ElementList() "/>")
    }
    
    void RdfsSubClassOf() #RdfsSubClassOf : {}
    {
        <RDFS_SUBCLASSOF> AttributeList() 
    	(">" ElementList() "</" <RDFS_SUBCLASSOF> ">" | ElementList() "/>")
    }
    
    void RdfsSubPropertyOf() #RdfsSubPropertyOf : {}
    {
        <RDFS_SUBPROPERTYOF> AttributeList() 
    	(">" ElementList() "</" <RDFS_SUBPROPERTYOF> ">" | ElementList() "/>")
    }
    
    void AttributeList() #List : {}
    {
        (Attribute())*
    }
    
    void Attribute() : {}
    {
        Version()
    	| RdfAttribute()
    	| XmlAttribute()
    	| XmlnsAttribute()
    }
    
    void Version() #Version : {}
    {
        <VERSION> <ASSIGN> Value()
    }
    
    void RdfAttribute() : {}
    {
        RdfAbout()
    	| RdfDatatype()
    	| RdfId()
    	| RdfParseType()
    	| RdfResource()
    }
    
    void RdfAbout() #RdfAbout : {}
    {
        <RDF_ABOUT> <ASSIGN> Value()
    }
    
    void RdfDatatype() #RdfDatatype : {}
    {
        <RDF_DATATYPE> <ASSIGN> Value()
    }
    
    void RdfId() #RdfId : {}
    {
        <RDF_ID> <ASSIGN> Value()
    }
    
    void RdfParseType() #RdfParseType : {}
    {
        <RDF_PARSETYPE> <ASSIGN> Value()
    }
    
    void RdfResource() #RdfResource : {}
    {
        <RDF_RESOURCE> <ASSIGN> Value()
    }
    
    void XmlAttribute() : {}
    {
        XmlBase()
    }
    
    void XmlBase() #XmlBase : {}
    {
        <XML_BASE> <ASSIGN> Value()
    }
    
    void XmlnsAttribute() : {}
    {
        Xmlns()
    	| XmlnsDaml()
    	| XmlnsDc()
    	| XmlnsOwl()
    	| XmlnsP1()
    	| XmlnsProtege()
    	| XmlnsRdf()
    	| XmlnsRdfs()
    	| XmlnsXsd()
    }
    
    void Xmlns() #Xmlns : {}
    {
        <XMLNS> <ASSIGN> Value()
    }
    
    void XmlnsDaml() #XmlnsDaml : {}
    {
        <XMLNS_DAML> <ASSIGN> Value()
    }
    
    void XmlnsDc() #XmlnsDc : {}
    {
        <XMLNS_DC> <ASSIGN> Value()
    }
    
    void XmlnsP1() #XmlnsP1 : {}
    {
        <XMLNS_P1> <ASSIGN> Value()
    }
    
    void XmlnsProtege() #XmlnsProtege : {}
    {
        <XMLNS_PROTEGE> <ASSIGN> Value()
    }
    
    void XmlnsRdf() #XmlnsRdf : {}
    {
        <XMLNS_RDF> <ASSIGN> Value()
    }
    
    void XmlnsXsd() #XmlnsXsd : {}
    {
        <XMLNS_XSD> <ASSIGN> Value()
    }
    
    void XmlnsRdfs() #XmlnsRdfs : {}
    {
        <XMLNS_RDFS> <ASSIGN> Value()
    }
    
    void XmlnsOwl() #XmlnsOwl : {}
    {
        <XMLNS_OWL> <ASSIGN> Value()
    }
    
    void Value() #Value : { Token t; }
    {
        t = <STRING_LITERAL>
    	{jjtThis.setSTRING_LITERAL(t.image);}
    }