# HG changeset patch # User Santeri Piippo # Date 1516636008 -7200 # Node ID 9169bad392c4dcaeadd7d210fe7c3e51c319a176 # Parent 672ebc45685ac85ca83de12eb5a8998518216062 better handling of ldraw code 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*$' diff -r 672ebc45685a -r 9169bad392c4 testsuite.py --- a/testsuite.py Mon Jan 22 17:42:57 2018 +0200 +++ b/testsuite.py Mon Jan 22 17:46:48 2018 +0200 @@ -98,16 +98,17 @@ text_colour = colorama.Fore.LIGHTYELLOW_EX else: text_colour = '' + ldraw_code = model.body[problem['body-index']].textual_representation() message = str.format( '{text_colour}{model_name}:{line_number}: {problem_type}: {message}' - '{colour_reset}\n\t{trouble_source}', + '{colour_reset}\n\t{ldraw_code}', text_colour = text_colour, model_name = model.name, line_number = problem['line-number'], problem_type = problem['type'], message = problem_text, colour_reset = colorama.Fore.RESET, - trouble_source = model.body[problem['body-index']].original_code, + ldraw_code = ldraw_code, ) result.append((problem['line-number'], message)) return '\n'.join(