diff --git a/sexpr.parser b/sexpr.parser index 5ac70c8..49d77c1 100644 --- a/sexpr.parser +++ b/sexpr.parser @@ -1,9 +1,8 @@ -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*)* ")"; +whitespace:ws = [ \b\f\n\r\t\v]; +comment:alias: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 = "(" expression* ")"; expression:alias = number | string | symbol | list; s-expression = expression;