summaryrefslogtreecommitdiffstats
path: root/code/simpleSableCCCalulator/sableCCCalculator.grammar
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2021-10-18 16:40:56 +0100
committerjwansek <eddie.atten.ea29@gmail.com>2021-10-18 16:40:56 +0100
commite09b0bb865bbb0087c46b4acd90b759f14dfa824 (patch)
tree824f93a769d5ae3b38b4f6b3597347b78478e69c /code/simpleSableCCCalulator/sableCCCalculator.grammar
parent3c3706a8957f27d7bcb553eff6ded1c6dc76fa24 (diff)
downloadesotericFORTRAN-e09b0bb865bbb0087c46b4acd90b759f14dfa824.tar.gz
esotericFORTRAN-e09b0bb865bbb0087c46b4acd90b759f14dfa824.zip
added sableCC calculator
Diffstat (limited to 'code/simpleSableCCCalulator/sableCCCalculator.grammar')
-rw-r--r--code/simpleSableCCCalulator/sableCCCalculator.grammar35
1 files changed, 35 insertions, 0 deletions
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