--- esn.py- 2016-09-18 00:00:00.000000000 +0900 +++ esn.py 2016-09-19 00:00:00.000000000 +0900 @@ -291,7 +291,7 @@ def es_split(s): [ 2, '>', [ '|' ] ], [ 2, '>', [ '&&' ] ], [ 2, '>', [ '||' ] ], - [ 3, '<', [ '?', ':' ] ], + [ 2, '<', [ '?', ':' ] ], # term 3 :-p) [ 2, '<', [ '=', '+=', '-=', '*=', '/=', '%=', '&=', '|=', '^=', '>>=', '<<=' ] ], [ 2, '>', [ ',' ] ], # ... ] @@ -436,6 +436,8 @@ def do_op1(v, a, info): def do_op2(v, a, b, info): oa = a a = do_expr(a, info) + if v == '?': + return do_expr(b[2] if a else b[3], info) b = do_expr(b, info) if v == '=': return do_set(oa, b, info)