
Untitled
By: a guest on
Apr 30th, 2012 | syntax:
None | size: 1.45 KB | hits: 13 | expires: Never
ANTLR generated parser produces MissingTokenException
* this is an outline item at level 1
** item at level 2
*** item at level 3
* another item at level 1
* an item with *bold* text
outline_item: OUTLINE_ITEM_MARKER ITEM_TEXT;
OUTLINE_ITEM_MARKER: STAR_IN_COLUMN_ZERO STAR* (' '|'t');
ITEM_TEXT: ('a'..'z'|'A'..'Z'|'0'..'9'|'r'|'n'|' '|'t')+;
fragment STAR_IN_COLUMN_ZERO: {getCharPositionInLine()==0}? '*';
fragment STAR: {getCharPositionInLine()>0}? '*';
ITEM_TEXT: ('a'..'z'|'A'..'Z'|'0'..'9'|'r'|'n'|' '|'t'|STAR)+;
input.txt line 1:0 rule STAR failed predicate: {getCharPositionInLine()>0}?
input.txt line 1:1 missing OUTLINE_ITEM_MARKER at '** foo bar'
grammar Test;
outline_items
: outline_item+ EOF
;
outline_item
: OUTLINE_ITEM_MARKER ITEM_TEXT
;
OUTLINE_ITEM_MARKER
: STAR_IN_COLUMN_ZERO STAR* (' '|'t')
;
ITEM_TEXT
: ('a'..'z'|'A'..'Z'|'0'..'9'|'r'|'n'|' '|'t'|STAR)+
;
fragment STAR_IN_COLUMN_ZERO
: {getCharPositionInLine()==0}?=> '*'
;
fragment STAR
: {getCharPositionInLine()>0}?=> '*'
;
* this is an outline item at level 1
** item at level 2
*** item at level 3
* another item at level 1
* an item with *bold* text
outline_item: OUTLINE_ITEM_MARKER ITEM_TEXT;
ITEM_TEXT:
(' '|'t') (' '|'t'|'a'..'z'|'A'..'Z'|'0'..'9'| STAR)+
;
OUTLINE_ITEM_MARKER:
STAR+
;
fragment STAR:
'*'
;
outline_item: OUTLINE_ITEM_MARKER ITEM_TEXT;
ITEM_TEXT:
(' '|'t') (~('n'|'r'))+
;
OUTLINE_ITEM_MARKER:
'*'+
;