[antlr-interest] Literals table empty
yahamkon
Vladimir.Konstantinov at rogers.com
Fri Nov 14 13:10:08 PST 2003
Thanks again, but the grammar doesn't recognize the Literal as such,
it matches an returns an Identifier instead:
/////
class ExpressionParser extends Parser;
options {
importVocab=Expression;
buildAST=true;
}
calc: (ID|fun) END ;
fun: "min"|"max" ;
class ExpressionLexer extends Lexer ;
options{exportVocab=Expression;}
END: ';';
ID options {testLiterals=true;}:
('a'..'z'|'A'..'Z'|'_'|'$')
('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
;
/////
I looked up the generated code - the Lexer class doesn't populate the
literals table at all (although "min" and "max" are defined as
LITERAL_xxx tokens in the respective zzzTokenTypes.java file).
What am I missing now, I compared the options from the java.g file
and my example (regarding literals), the java geherated lexer has its
literals table populated, mine is not being populated in the
generated Lexer class ?
Any ideas? TIA
--- In antlr-interest at yahoogroups.com, mzukowski at y... wrote:
> No, you need a lexer rule something like
> ID:
> options {testLiterals=true;}
> ('a'..'z' | 'A'..'Z')+
> ;
>
> Monty
>
> -----Original Message-----
> From: yahamkon [mailto:Vladimir.Konstantinov at r...]
> Sent: Thursday, November 13, 2003 11:16 AM
> To: antlr-interest at yahoogroups.com
> Subject: [antlr-interest] Re: help with literals
>
> Thanks for the fast response!
>
> >> See docs on literals and any example grammar with an ID rule.
>
> I've looked in the docs, the "java.g" grammar, also searched the
> archives but things aren't getting clearer.
>
> > Yes, you need a rule that will test it's result against the
defined
> > literals.
>
> Isn't "calc" such a rule? To put it defferently, if I had a grammar
> that specifies a single rule recognising a single literal how would
> that look like (that's what I had in mind sending the example
anyway)?
>
>
>
>
>
> >
> > Monty
> >
> > -----Original Message-----
> > From: VLADIMIR KONSTANTINOV [mailto:Vladimir.Konstantinov at r...]
> > Sent: Thursday, November 13, 2003 11:03 AM
> > To: antlr-interest at yahoogroups.com
> > Subject: [antlr-interest] help with literals
> >
> >
> > I want to specify literals ("min", "max", "sum" etc) in my
grammar.
> >
> > I am getting :
> > line 1:1: unexpected char: 'm'
> > line 1:2: unexpected char: 'i'
> > line 1:3: unexpected char: 'n'
> > when testing with the following expression: "min;"
> >
> > This a stripped down version of my grammar:
> >
> > ///
> > class ExpressionParser extends Parser;
> > options { importVocab=Expression; }
> > calc: fun END;
> > fun: "min";
> >
> > class ExpressionLexer extends Lexer ;
> > options{ exportVocab=Expression;}
> > END: ';'
> > ///
> >
> > I am missing something very basic, but can't figure it out myself.
> >
> > Thanks in advance.
> >
> >
> >
> >
> > Your use of Yahoo! Groups is subject to
> http://docs.yahoo.com/info/terms/
>
>
>
>
> Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/
Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
More information about the antlr-interest
mailing list