[antlr-interest] Error on Defining a syntactic predicate
Hensley, Richard
richard.hensley at mckesson.com
Thu Oct 3 11:49:38 PDT 2002
Tracey,
Trying putting
tokens {
AND = "and";
OR = "or";
}
at the top of your parser
and removing the AND and OR rules from the lexer.
put
options {
testLiterals=false;
}
at the top of your lexer
change the VARIABLE rule to
VARIABLE
options {
testLiterals=true;
}
: ('a'..'z'|'A'..'Z'|'_')
('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
;
This should treat AND and OR as literals, not variable names.
Richard
-----Original Message-----
From: txm3124 [ mailto:tracey_meng at yahoo.com
<mailto:tracey_meng at yahoo.com> ]
Sent: Thursday, October 03, 2002 11:34 AM
To: antlr-interest at yahoogroups.com
Subject: [antlr-interest] Error on Defining a syntactic predicate
Can someone help me to fix the definition of Lexer rules of AND and
OR? Thanks.
I got an error as follows when I compiled the attached ruleParser.g
file:
C:\Tools\antlr-2.7.1\examples\java\ruleParser>java antlr.Tool
ruleParser.g
ANTLR Parser Generator Version 2.7.1 1989-2000 jGuru.com
warning: lexical nondeterminism between rules VARIABLE and AND upon
ruleParser.g:0: k==1:'A'..'Z','_','a'..'z'
warning: lexical nondeterminism between rules VARIABLE and OR upon
ruleParser.g:0: k==1:'A'..'Z','_','a'..'z'
warning: lexical nondeterminism between rules AND and OR upon
ruleParser.g:0: k==1:<end-of-token>,'A'..'Z','_','a'..'z'
warning: found optional path in nextToken()
warning: found optional path in nextToken()
---------------------------------------------------
class RuleParser extends Parser;
options {
buildAST = true;
}
expr
: mexpr (OR^ mexpr)* SEMI!
;
mexpr
: atom (AND^ atom)*
;
atom: INT | WORDS
;
class RuleLexer extends Lexer;
WS : (' '
| '\t'
| '\n'
| '\r')
{_ttType = Token.SKIP; }
;
LPAREN: '('
;
RPAREN: ')'
;
SEMI: ';'
;
protected
DIGIT
: '0'..'9'
;
INT : (DIGIT)+
;
VARIABLE
: ('a'..'z'|'A'..'Z'|'_')
('a'..'z'|'A'..'Z'|'_'|'0'..'9')*
;
AND
: ('A''N''D') => {$setType(AND);}
| VARIABLE {$setType(VARIABLE);}
;
OR
: ('O''R') => {$setType(OR);}
| VARIABLE {$setType(VARIABLE);}
;
Your use of Yahoo! Groups is subject to
http://docs.yahoo.com/info/terms/ <http://docs.yahoo.com/info/terms/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.antlr.org/pipermail/antlr-interest/attachments/20021003/f6c2fe20/attachment.html
More information about the antlr-interest
mailing list