parse.py

changeset 17
327da5d00360
parent 8
303c51137cb2
child 19
9169bad392c4
--- 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*$'

mercurial