binary_op : '(' subexpression (op subexpression {[@item[1..2]]})(s?) ')' { [ $item[2], map { @$_ } @{$item[3]} ] }