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 ;