From e09b0bb865bbb0087c46b4acd90b759f14dfa824 Mon Sep 17 00:00:00 2001 From: jwansek Date: Mon, 18 Oct 2021 16:40:56 +0100 Subject: added sableCC calculator --- .../sableCCCalculator.grammar | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 code/simpleSableCCCalulator/sableCCCalculator.grammar (limited to 'code/simpleSableCCCalulator/sableCCCalculator.grammar') diff --git a/code/simpleSableCCCalulator/sableCCCalculator.grammar b/code/simpleSableCCCalulator/sableCCCalculator.grammar new file mode 100644 index 0000000..426fac1 --- /dev/null +++ b/code/simpleSableCCCalulator/sableCCCalculator.grammar @@ -0,0 +1,35 @@ +Package sableCCCalculator; +Helpers + digit = ['0' .. '9']; +Tokens + number = digit+; + double = ((digit)+ '.' (digit)*) | ((digit)* '.' (digit)+); + plus = '+'; + minus = '-'; + mult = '*'; + div = '/'; + mod = '%'; + l_par = '('; + r_par = ')'; + sin = 'sin'; + blank = (' ' | 13 | 10)+; +Ignored Tokens + blank; +Productions + expr = + {factor} factor | + {plus} expr plus factor | + {minus} expr minus factor + ; + factor = + {term} term | + {mult} factor mult term | + {div} factor div term | + {mod} factor mod term + ; + term = + {number} number | + {double} double | + {expr} l_par expr r_par | + {sine} sin l_par expr r_par + ; \ No newline at end of file -- cgit v1.2.3