[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