diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/elixir_math_parser.yrl | 4 | ||||
| -rw-r--r-- | src/elixir_math_parser_lexer.xrl | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/src/elixir_math_parser.yrl b/src/elixir_math_parser.yrl index 4900996..762cf4b 100644 --- a/src/elixir_math_parser.yrl +++ b/src/elixir_math_parser.yrl @@ -13,6 +13,8 @@ Terminals '*' '/' '=' + '(' + ')' . Rootsymbol @@ -24,6 +26,7 @@ Left 300 '+'. Left 300 '-'. Left 400 '*'. Left 400 '/'. +Left 600 '('. root -> assignments : '$1'. @@ -38,6 +41,7 @@ expr -> expr '+' expr : {add_op, '$1', '$3'}. expr -> expr '-' expr : {sub_op, '$1', '$3'}. expr -> expr '*' expr : {mul_op, '$1', '$3'}. expr -> expr '/' expr : {div_op, '$1', '$3'}. +expr -> '(' expr ')' : '$2'. Erlang code. diff --git a/src/elixir_math_parser_lexer.xrl b/src/elixir_math_parser_lexer.xrl index a2980c8..8d7920a 100644 --- a/src/elixir_math_parser_lexer.xrl +++ b/src/elixir_math_parser_lexer.xrl @@ -9,6 +9,8 @@ Rules. \* : {token, {'*', TokenLine}}. \/ : {token, {'/', TokenLine}}. \= : {token, {'=', TokenLine}}. +\( : {token, {'(', TokenLine}}. +\) : {token, {')', TokenLine}}. {NAME} : {token, {atom, TokenLine, to_atom(TokenChars)}}. {INT} : {token, {int, TokenLine, TokenChars}}. {WHITESPACE}+ : skip_token. |
