[antlr-interest] Match a repetition of characters
Robin
diabeteman at gmail.com
Fri Jun 24 03:02:27 PDT 2011
Hello everyone,
I'm trying to write a rule that matches the repetition (4 or more) of the
same special character
For example:
"^^^^^^^^^^^^^^^^^^^^"
or
"________________"
I have these lexer rules :
UNDERSCORE : '_';
BACKTICK : '`';
STAR : '*';
PIPE : '|';
COLUMN : ':';
SPECIAL_CHAR :
('!'|'"'|'#'|'$'|'%'|'&'|'\''|'('|')'|'+'|','|'.'|'/'|';'|'<'|'='|'>'|'?'|'@'|'['|'\\'|']'|'^'|'{'|'}'|'~');
LINE_BREAK : '\u000C'?'\r'?'\n';
And I'd like to write a parser rule named "underline" that only matches if
this is a repetition of *the same character* and that returns this
character. So that enclosing rules can use it.
For now I wrote this:
underline returns [char symbol]
: underlineAtom {$symbol=$underlineAtom.text} {$symbol}+ LINE_BREAK
;
underlineAtom
: UNDERSCORE
| STAR
| PIPE
| BACKTICK
| COLUMN
| SPECIAL_CHAR
;
But my grammar does not compile...
Can someone help me on this ? :)
Thanks
More information about the antlr-interest
mailing list