composer calculator (?) (?) rule addition: [ (?) <'[+-]'> (?) ] -> \(when )> do $(1) + $(3) ! otherwise $(1) - $(3) ! \) rule multiplication: [ (?) <'[*/]'> (?) ] -> \(when )> do $(1) * $(3) ! otherwise $(1) ~/ $(3) ! \) rule term: rule parentheses: (<'\('> ?) (? <'\)'>) end calculator '(100 - 5 * (2+3*4) + 2) / 2' -> calculator -> !OUT::write ' ' -> !OUT::write