--- es_i.py- 2016-10-06 00:00:00.000000000 +0900 +++ es_i.py 2016-10-06 01:00:00.000000000 +0900 @@ -169,6 +169,12 @@ def tree_op2(lst, ops, e, k1, v1): err_not_found("right term op='{}'".format(v1)) return [ op2( ops, e, k1, v1, r[0] ) ] + r[1:] +def tree_op_fdef_arg(lst, ops): + if [ 'op', ',' ] not in lst: + return tree_op(lst, ops) + i = lst.index( [ 'op', ',' ] ) + return tree_op( lst[:i], ops ) + [ lst[i] ] + tree_op_fdef_arg( lst[i+1:], ops ) + def tree_op(lst, ops): tstk_push( [ 'op', lst ] ) if len(lst) == 0: @@ -181,7 +187,7 @@ def tree_op(lst, ops): elif k == 'fcall': e = [ k, v, tree_op( [ e[2] ], ops )[0] ] elif k == 'fdef': - e2 = e[2][:2] + [ tree_op( e[2][2], ops ) ] + e2 = e[2][:2] + [ tree_op_fdef_arg( e[2][2], ops ) ] e = [ k, v, e2, e[3], tree_op( [ e[4] ], ops )[0] ] if k == 'op':