--- esf.py- 2016-09-14 00:20:00.000000000 +0900 +++ esf.py 2016-09-14 00:40:00.000000000 +0900 @@ -21,8 +21,9 @@ def encode(s, tbl): return reduce(f, tbl, s) def decode(s, tbl, add_spc=False): - d = lambda d1: ' ' + d1 + ' ' if add_spc and not is_name(d1) else d1 - f = lambda t, (k, s1, d1, ec): t.replace( ec, d(d1) ) + add = lambda d1, k: add_spc and not is_name(d1) and k != 'no_spc' + d = lambda d1, k: ' ' + d1 + ' ' if add(d1, k) else d1 + f = lambda t, (k, s1, d1, ec): t.replace( ec, d(d1, k) ) return reduce(f, tbl, s).replace('@ ', '@') def fidx(s, lst): @@ -303,6 +304,7 @@ def es_split(s): 'kwd' : [ 'return', 'if', 'else', 'while', 'for', 'break', 'continue' ], 'spc' : [ ' ', '\t', '\n' ], 'etc' : [ ';' ], + 'no_spc': [ '.0', '.1', '.2', '.3', '.4', '.5', '.6', '.7', '.8', '.9' ], } enc = lambda ki, idx: '@{:02d}{:02d}'.format(ki, idx)