[antlr-interest] White space
Alex Rodriguez
arodmail at gmail.com
Wed Sep 1 11:30:04 PDT 2010
Greetings,
Given a very simple grammar for a language that only has an 'if'
statement, I would like to be able to parse white space within literal
values. So far, this works (case 1):
if(value=='white space'){doThis('arg')}
But this doesn't work (case 2):
if (value == 'white space') { doThis('arg') }
Note that case 2 is spaced for readability.
Debugging case 2 in ANTLRWorks produces a MismatchedTokenException.
What is the best way to handle both cases? Here is the grammar:
grammar Lang;
statement
:
'if' LPAREN ID EQ literalValue RPAREN '{' action '}'
;
literalValue
:
'\'' ID '\''
;
action
:
ID LPAREN literalValue RPAREN
;
ID
:
('a'..'z' | 'A'..'Z' | '0'..'9' | '@' | ':' | '_' | ' ' | '+')+
;
LPAREN
:
'('
;
RPAREN
:
')'
;
EQ
:
'=='
;
WS
:
(' ' |'\t' |'\r' |'\n' )+ { $channel=HIDDEN; }
;
More information about the antlr-interest
mailing list