Fixed bug where identical anonymous tokens got separate names

This commit is contained in:
Erez Shinan 2017-02-11 21:15:57 +02:00
parent b75fc45a2a
commit ee798f81f2
2 changed files with 4 additions and 1 deletions

View File

@ -73,7 +73,7 @@ These features are planned to be implemented in the near future:
## Comparison to other parsers ## Comparison to other parsers
This is a feature comparison. For benchmarks vs pyparsing, check out the [JSON tutorial](/docs/json_tutorial.md#conclusion). This is a feature comparison. For benchmarks vs other parsers, check out the [JSON tutorial](/docs/json_tutorial.md#conclusion).
| Library | Algorithm | LOC | Grammar | Builds tree? | Library | Algorithm | LOC | Grammar | Builds tree?
|:--------|:----------|:----|:--------|:------------ |:--------|:----------|:----|:--------|:------------

View File

@ -261,6 +261,7 @@ class ExtractAnonTokens(InlineTransformer):
elif token.type == 'REGEXP': elif token.type == 'REGEXP':
token_name = 'ANONRE_%d' % self.i token_name = 'ANONRE_%d' % self.i
value = token.value
self.i += 1 self.i += 1
else: else:
assert False, x assert False, x
@ -268,6 +269,8 @@ class ExtractAnonTokens(InlineTransformer):
if token_name not in self.token_set: if token_name not in self.token_set:
self.token_set.add(token_name) self.token_set.add(token_name)
self.tokens.append((token_name, token, [])) self.tokens.append((token_name, token, []))
assert value not in self.token_reverse
self.token_reverse[value] = token_name
return Token('TOKEN', token_name, -1) return Token('TOKEN', token_name, -1)