treerack/sexpr.parser
2017-06-25 23:42:42 +02:00

10 lines
420 B
Plaintext

ws:alias = [ \b\f\n\r\t\v];
comment:alias = ";" [^\n]*;
wsc:alias = ws | comment;
number = "-"? ("0" | [1-9][0-9]*) ("." [0-9]+)? ([eE] [+\-]? [0-9]+)?;
string = "\"" ([^\\"] | "\\" .)* "\"";
symbol = ([^\\ \n\t\b\f\r\v\"()] | "\\" .)+;
list = "(" wsc* (expression wsc*)* ")";
expression:alias = number | string | symbol | list;
s-expression = expression;