From aa1d984db18333d89b6bb2b1fa9852f85edba2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?William=20Herg=C3=A8s?= Date: Sat, 8 Nov 2025 21:31:48 +0100 Subject: feat(calc): strengthen reducing --- src/elixir_math_parser.yrl | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/elixir_math_parser.yrl') diff --git a/src/elixir_math_parser.yrl b/src/elixir_math_parser.yrl index 762cf4b..3ec4946 100644 --- a/src/elixir_math_parser.yrl +++ b/src/elixir_math_parser.yrl @@ -1,7 +1,7 @@ Nonterminals root - assignment - assignments + statement + statements expr . @@ -15,6 +15,7 @@ Terminals '=' '(' ')' + ';;' . Rootsymbol @@ -28,12 +29,13 @@ Left 400 '*'. Left 400 '/'. Left 600 '('. -root -> assignments : '$1'. +root -> statements : '$1'. -assignments -> assignment : '$1'. -assignments -> assignment assignments : lists:merge('$1', '$2'). +statements -> statement : '$1'. +statements -> statement statements : lists:merge('$1', '$2'). +statements -> statement ';;' statements : lists:merge('$1', '$3'). -assignment -> atom '=' expr : [{assign, '$1', '$3'}]. +statement -> atom '=' expr : [{assign, '$1', '$3'}]. expr -> int : unwrap('$1'). expr -> atom : '$1'. -- cgit v1.2.3