--- esa.py- 2016-09-11 23:00:00.000000000 +0900 +++ esa.py 2016-09-12 00:00:00.000000000 +0900 @@ -444,7 +444,10 @@ def do_kwd(v, expr, info): do_expr( expr[3], info ) return None if v == 'for': - args = expr[2][2][::2] + args = expr[2][2] + is_omit = lambda lst, i: len(lst) <= i or lst[i] == [ 'etc', ';' ] + f = lambda lst, i: lst[:i] + [ [ 'num', '1' ] ] + lst[i:] if is_omit(lst, i) else lst + args = reduce( f, [ 0, 2, 4 ], args )[::2] do_expr( args[0], info ) while do_expr( args[1], info ): do_expr( expr[3], info )