" a calculator " ometa Calc { digit ::= :c ?[c isDigit] => [c digitValue]. number ::= :n :d => [n * 10 + d] | . priExpr ::= | "(" :e ")" => [e]. mulExpr ::= :x "*" :y => [x * y] | :x "/" :y => [x / y] | . addExpr ::= :x "+" :y => [x + y] | :x "-" :y => [x - y] | . expr ::= . }. Calc matchAll : '12-(34+2)*2' with: #expr