diff -ur v7/ezyaml.py v8/ezyaml.py --- v7/ezyaml.py 2018-08-31 22:54:11.000000000 +0900 +++ v8/ezyaml.py 2018-08-31 22:54:29.000000000 +0900 @@ -41,15 +41,18 @@ lst.pop() return lst -def find_colon_idx(s): +def find_idx(s, c): idx = 0 lst = parse(s) for s in lst: - if ( s[:1] not in qts ) and ( ':' in s ): - return idx + s.index(':') + if ( s[:1] not in qts ) and ( c in s ): + return idx + s.index(c) idx += len(s) return -1 +def find_colon_idx(s): + return find_idx(s, ':') + def get_kind(s): if s.startswith('- '): return 'list' @@ -171,9 +174,15 @@ return get_list(idt, lines) return get_other(idt, lines) +def cut_comment(s): + idx = find_idx(s, '#') + return s[:idx] if idx >= 0 else s + def load(s): lines = s.strip().split('\n') + lines = list( map(cut_comment, lines) ) lines = list( map(cut_tail_spc, lines) ) + liess = list( filter(lambda s: s, lines) ) objs = [] while lines: