| OLD | NEW |
| 1 #!/usr/bin/python | 1 #!/usr/bin/python |
| 2 # | 2 # |
| 3 # Copyright 2009 The Native Client Authors. All rights reserved. | 3 # Copyright 2011 The Native Client Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can | 4 # Use of this source code is governed by a BSD-style license that can |
| 5 # be found in the LICENSE file. | 5 # be found in the LICENSE file. |
| 6 # Copyright 2009, Google Inc. | 6 # Copyright 2011, Google Inc. |
| 7 # | 7 # |
| 8 | 8 |
| 9 """ | 9 """ |
| 10 A simple recursive-descent parser for the table file format. | 10 A simple recursive-descent parser for the table file format. |
| 11 | 11 |
| 12 The grammar implemented here is roughly (taking some liberties with whitespace | 12 The grammar implemented here is roughly (taking some liberties with whitespace |
| 13 and comment parsing): | 13 and comment parsing): |
| 14 | 14 |
| 15 table_file ::= ( BLANK_LINE | table_def ) end_of_file ; | 15 table_file ::= ( BLANK_LINE | table_def ) end_of_file ; |
| 16 table_def ::= "--" IDENT CITATION NL | 16 table_def ::= "--" IDENT CITATION NL |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 def end_of_file(): | 111 def end_of_file(): |
| 112 return _line is None | 112 return _line is None |
| 113 | 113 |
| 114 | 114 |
| 115 def next_line(): | 115 def next_line(): |
| 116 global _line_no, _line | 116 global _line_no, _line |
| 117 | 117 |
| 118 _line_no += 1 | 118 _line_no += 1 |
| 119 _line = _in.readline() | 119 _line = _in.readline() |
| 120 if _line: | 120 if _line: |
| 121 old_line = _line.strip() |
| 121 _line = re.sub(r'#.*', '', _line).strip() | 122 _line = re.sub(r'#.*', '', _line).strip() |
| 123 if (old_line != _line) and (len(_line) == 0): # If we ate it all |
| 124 next_line() # Get another one to allow line comments. |
| 122 else: | 125 else: |
| 123 _line = None | 126 _line = None |
| 124 | 127 |
| 125 | 128 |
| 126 def unexpected(): | 129 def unexpected(): |
| 127 raise Exception('Line %d: Unexpected line in input: %s' % (_line_no, _line)) | 130 raise Exception('Line %d: Unexpected line in input: %s' % (_line_no, _line)) |
| OLD | NEW |