| @@ -17,6 +17,8 @@ class Symbol(object): | |||||
| def __repr__(self): | def __repr__(self): | ||||
| return '%s(%r)' % (type(self).__name__, self.name) | return '%s(%r)' % (type(self).__name__, self.name) | ||||
| fullrepr = property(__repr__) | |||||
| class Terminal(Symbol): | class Terminal(Symbol): | ||||
| is_term = True | is_term = True | ||||
| @@ -24,6 +26,10 @@ class Terminal(Symbol): | |||||
| self.name = name | self.name = name | ||||
| self.filter_out = filter_out | self.filter_out = filter_out | ||||
| @property | |||||
| def fullrepr(self): | |||||
| return '%s(%r, %r)' % (type(self).__name__, self.name, self.filter_out) | |||||
| class NonTerminal(Symbol): | class NonTerminal(Symbol): | ||||
| is_term = False | is_term = False | ||||
| @@ -165,7 +165,7 @@ class TreeBuilderAtoms: | |||||
| print('RULES = {') | print('RULES = {') | ||||
| for i, r in enumerate(self.rules): | for i, r in enumerate(self.rules): | ||||
| rule_ids[r] = i | rule_ids[r] = i | ||||
| print(' %d: Rule(%r, %r, %r, %r),' % (i, r.origin, r.expansion, self.ptb.user_aliases[r], r.options )) | |||||
| print(' %d: Rule(%r, [%s], %r, %r),' % (i, r.origin, ', '.join(s.fullrepr for s in r.expansion), self.ptb.user_aliases[r], r.options )) | |||||
| print('}') | print('}') | ||||
| print('parse_tree_builder = ParseTreeBuilder(RULES.values(), Tree)') | print('parse_tree_builder = ParseTreeBuilder(RULES.values(), Tree)') | ||||