summaryrefslogtreecommitdiffstats
path: root/code/simpleSableCCCalulator/sableCCCalculator.grammar
diff options
context:
space:
mode:
authorAidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com>2021-10-25 16:57:36 +0100
committerAidenRushbrooke <72034940+AidenRushbrooke@users.noreply.github.com>2021-10-25 16:57:36 +0100
commit69b0ad07bac30beca1397ff187468e7597203c44 (patch)
treef125c988f73e2f16bef2a1f145994bc827b0d418 /code/simpleSableCCCalulator/sableCCCalculator.grammar
parent74c5732bded6695eed3aabf125a888fbdf206a40 (diff)
parentaa3a6929584eaa63cafb73353a62effd75d4dd8c (diff)
downloadesotericFORTRAN-69b0ad07bac30beca1397ff187468e7597203c44.tar.gz
esotericFORTRAN-69b0ad07bac30beca1397ff187468e7597203c44.zip
Merge branch 'main' of https://github.com/AlfieEagleton/EsotericProject
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