It might be better to lex just one token here and not worry about what
characters are in it. Then check it semantically. You will then get errors like
"#z is not a vlaid exactness sequence", instead of the lexer saying "Unexpected
character 'z'". I see the original question was answered so I won't repeat the
answer.
Jim
From: [email protected]
[mailto:[email protected]] On Behalf Of Hans-Martin Adorf
Sent: Sunday, December 13, 2009 5:21 AM
To: [email protected]
Subject: [antlr-interest] a grammar problem
Hi Folks,
here is an excerpt on a SchemeNumber grammar which is part of a Scheme grammar
that I am toying with.
grammar SchemeNumber;
tokens {
HASH = '#' ;
}
prefix2 : RADIX2 EXACTNESS?
| EXACTNESS? RADIX2
;
RADIX2 : HASH ('b'|'B');
EXACTNESS : HASH ('i'|'I'|'e'|'E');
The problem is in rule 'prefix2' since token RADIX2 can be matched in two
different ways. Scheme requires that I am able to state the following prefixes:
"#b", "#e#b" and "#b#e".
The radix description is mandatory whereas the exactness is optional, and can
come before ore after the radix description.
Any idea how to change the grammar above so that ANTLR no longer complains and
disables alternatives?
Thanks.
Hans-Martin
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address