diff -r 672ebc45685a -r 9169bad392c4 parse.py --- a/parse.py Mon Jan 22 17:42:57 2018 +0200 +++ b/parse.py Mon Jan 22 17:46:48 2018 +0200 @@ -9,25 +9,23 @@ def parse_ldraw_code(line): line = line.strip() if not line: - object = linetypes.EmptyLine() + return linetypes.EmptyLine() elif line == '0': - object = linetypes.Comment('') + return linetypes.Comment('') elif line.startswith('0 '): - object = linetypes.Comment(line[2:].strip()) + return linetypes.Comment(line[2:].strip()) elif line.startswith('1 '): - object = parse_ldraw_subfile_reference(line) + return parse_ldraw_subfile_reference(line) elif line.startswith('2 '): - object = parse_ldraw_line(line) + return parse_ldraw_line(line) elif line.startswith('3 '): - object = parse_ldraw_triangle(line) + return parse_ldraw_triangle(line) elif line.startswith('4 '): - object = parse_ldraw_quadrilateral(line) + return parse_ldraw_quadrilateral(line) elif line.startswith('5 '): - object = parse_ldraw_contour(line) + return 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*$'