diff -r 09cc89622262 -r 327da5d00360 parse.py --- a/parse.py Mon Jan 22 13:51:13 2018 +0200 +++ b/parse.py Mon Jan 22 17:05:10 2018 +0200 @@ -9,23 +9,25 @@ def parse_ldraw_code(line): line = line.strip() if not line: - return linetypes.EmptyLine() + object = linetypes.EmptyLine() elif line == '0': - return linetypes.Comment('') + object = linetypes.Comment('') elif line.startswith('0 '): - return linetypes.Comment(line[2:].strip()) + object = linetypes.Comment(line[2:].strip()) elif line.startswith('1 '): - return parse_ldraw_subfile_reference(line) + object = parse_ldraw_subfile_reference(line) elif line.startswith('2 '): - return parse_ldraw_line(line) + object = parse_ldraw_line(line) elif line.startswith('3 '): - return parse_ldraw_triangle(line) + object = parse_ldraw_triangle(line) elif line.startswith('4 '): - return parse_ldraw_quadrilateral(line) + object = parse_ldraw_quadrilateral(line) elif line.startswith('5 '): - return parse_ldraw_contour(line) + object = parse_ldraw_contour(line) else: raise BadLdrawLine('unknown line type') + object.original_code = line + return object def parse_ldraw_subfile_reference(line): pattern = r'^1\s+([^ ]+)' + r'\s+([^ ]+)' * (3 + 9 + 1) + r'\s*$'