summaryrefslogtreecommitdiffstats
path: root/code/FORTRAN2C/fortran2c.grammar
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2021-11-01 14:51:47 +0000
committerjwansek <eddie.atten.ea29@gmail.com>2021-11-01 14:51:47 +0000
commit85e2726ddedd2981425c5ac07f7257bce1a6ddbf (patch)
treed84a75438cba4fd3d7180c776f3632577292433a /code/FORTRAN2C/fortran2c.grammar
parent69b0ad07bac30beca1397ff187468e7597203c44 (diff)
downloadesotericFORTRAN-85e2726ddedd2981425c5ac07f7257bce1a6ddbf.tar.gz
esotericFORTRAN-85e2726ddedd2981425c5ac07f7257bce1a6ddbf.zip
started work on translation to c
Diffstat (limited to 'code/FORTRAN2C/fortran2c.grammar')
-rw-r--r--code/FORTRAN2C/fortran2c.grammar35
1 files changed, 35 insertions, 0 deletions
diff --git a/code/FORTRAN2C/fortran2c.grammar b/code/FORTRAN2C/fortran2c.grammar
new file mode 100644
index 0000000..80bf2b7
--- /dev/null
+++ b/code/FORTRAN2C/fortran2c.grammar
@@ -0,0 +1,35 @@
+Package fortran2c;
+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