2017-10-28 23:41:23 +02:00
|
|
|
whitespace:ws = [ \b\f\n\r\t\v];
|
|
|
|
comment:ws = ";" [^\n]*;
|
|
|
|
number:nows = "-"? ("0" | [1-9][0-9]*) ("." [0-9]+)? ([eE] [+\-]? [0-9]+)?;
|
|
|
|
string:nows = "\"" ([^\\"] | "\\" .)* "\"";
|
|
|
|
symbol:nows = ([^\\ \n\t\b\f\r\v\"()\[\]#] | "\\" .)+;
|
|
|
|
list-form:alias = "(" expression* ")"
|
|
|
|
| "[" expression* "]";
|
2017-06-25 17:51:08 +02:00
|
|
|
list = list-form;
|
|
|
|
vector = "#" list-form;
|
|
|
|
expression:alias = number | string | symbol | list;
|
2017-10-28 23:41:23 +02:00
|
|
|
scheme = expression*;
|