1 + 2 * 4 - 5

OMeta Can Make Parsers

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] | spaces number number = <number digit> | <digit>

OMeta Can Make Parsers

Do It