OMeta Can Make Symbol Transformers
OMeta Can Make Symbol Transformers
OMeta2 subclass: #OMeta2Calculator start = addExpr:e spaces [e] addExpr = addExpr:x ("+" | "-"):op mulExpr:y [{op. x. y}] | mulExpr mulExpr = mulExpr:x ("*" | "/"):op primExpr:y [{op. x. y}] | primExpr primExpr = "(" addExpr:x ")" [x] | number | identifier number = spaces <digit+> identifier = spaces <letter (letter | digit)*>
(a / b + 35) * (n + m) / a * P
1 + 2 / 3 - 5
Do It