diff --git a/cs675/bottomup/arithmetic.grammar b/cs675/bottomup/arithmetic.grammar new file mode 100644 index 0000000..d156aa2 --- /dev/null +++ b/cs675/bottomup/arithmetic.grammar @@ -0,0 +1,29 @@ + +Package jholtrop.gvsu.cs675.bottomup; + +Tokens + blank = (' ' | 9 | 10 | 13); + number = ['0' .. '9']+ ('.' ['0' .. '9']+)?; + plus = '+'; + minus = '-'; + multiply = '*'; + divide = '/'; + l_par = '('; + r_par = ')'; + +Ignored Tokens + blank; + +Productions + expr = + {addition} expr plus term | + {subtraction} expr minus term | + {term} term; + + term = + {multiplication} term multiply factor | + {division} term divide factor; + + factor = + {number} number | + {paren} l_par expr r_par;