diff options
| author | William Hergès <william@herges.fr> | 2025-11-08 22:59:31 +0100 |
|---|---|---|
| committer | William Hergès <william@herges.fr> | 2025-11-08 22:59:31 +0100 |
| commit | 8a26b3d43e1adb6f9585891500a5fc856fd0ca5c (patch) | |
| tree | 19b2b90ee22c9b6cc3652d128ac7bf3f1da4da3c /src | |
| parent | c7a26d3c6125caa9239cec9bf08db935d98e19c1 (diff) | |
perf(var): replace atoms by charlist
Diffstat (limited to 'src')
| -rw-r--r-- | src/elixir_math_parser.yrl | 6 | ||||
| -rw-r--r-- | src/elixir_math_parser_lexer.xrl | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/elixir_math_parser.yrl b/src/elixir_math_parser.yrl index 17b46ad..46340ae 100644 --- a/src/elixir_math_parser.yrl +++ b/src/elixir_math_parser.yrl @@ -7,7 +7,7 @@ Nonterminals Terminals int - atom + var '+' '-' '*' @@ -35,11 +35,11 @@ statements -> statement : ['$1']. statements -> statement statements : ['$1'|'$2']. statements -> statement ';;' statements : ['$1'|'$3']. -statement -> atom '=' expr : {assign, '$1', '$3'}. +statement -> var '=' expr : {assign, '$1', '$3'}. statement -> expr : {eval, '$1'}. expr -> int : unwrap('$1'). -expr -> atom : '$1'. +expr -> var : '$1'. expr -> expr '+' expr : {add_op, '$1', '$3'}. expr -> expr '-' expr : {sub_op, '$1', '$3'}. expr -> expr '*' expr : {mul_op, '$1', '$3'}. diff --git a/src/elixir_math_parser_lexer.xrl b/src/elixir_math_parser_lexer.xrl index 7256090..d02a62c 100644 --- a/src/elixir_math_parser_lexer.xrl +++ b/src/elixir_math_parser_lexer.xrl @@ -1,6 +1,6 @@ Definitions. INT = [0-9]+ -NAME = :[a-zA-Z_][a-zA-Z0-9_]* +NAME = [a-zA-Z_][a-zA-Z0-9_]* WHITESPACE = [\s\t\n\r] Rules. @@ -12,7 +12,7 @@ Rules. \( : {token, {'(', TokenLine}}. \) : {token, {')', TokenLine}}. ;; : {token, {';;', TokenLine}}. -{NAME} : {token, {atom, TokenLine, to_atom(TokenChars)}}. +{NAME} : {token, {var, TokenLine, TokenChars}}. {INT} : {token, {int, TokenLine, TokenChars}}. {WHITESPACE}+ : skip_token. |
