...
Status
Early prototyping phase. A simple lexer is working.
Progress
Here's a simple example. Note that everything is still subject to change.
...
Note the "no viable alternative" error message for the unrecognized '!'.
2007-06-15
+ Handle lexer actions
Here's another short example, similar to the one above. Note how whitespaces are put into the hidden channel (99) and newlines are skipped.
Code Block |
---|
lexer grammar T2;
options { language = Perl5; }
ID : ('a'..'z'\|'A'..'Z')\+ ;
INT : '0'..'9'\+ ;
NEWLINE:'\r'? '\n' { $self->skip(); } ;
WS : (' '\|'\t')\+ { $channel = HIDDEN; } ;
|
Code Block |
---|
$ perl t.pl
text: Hello
type: 4
pos: 1:0
channel: 0
token index: -1
text:
type: 7
pos: 1:5
channel: 99
token index: -1
text: World
type: 4
pos: 1:6
channel: 0
token index: -1
line 1:11 no viable alternative at character '!'
text: 42
type: 5
pos: 2:0
channel: 0
token index: -1
|
Author
Ronald Blaschke (ron at rblasch org)