|
|
@@ -538,7 +538,7 @@ class Grammar: |
|
|
|
for dups in duplicates.values(): |
|
|
|
if len(dups) > 1: |
|
|
|
if dups[0].expansion: |
|
|
|
raise GrammarError("Rules defined twice: %s" % ', '.join(str(i) for i in duplicates)) |
|
|
|
raise GrammarError("Rules defined twice: %s\n\n(Might happen due to colliding expansion of optionals: [] or ?)" % ''.join('\n * %s' % i for i in dups)) |
|
|
|
|
|
|
|
# Empty rule; assert all other attributes are equal |
|
|
|
assert len({(r.alias, r.order, r.options) for r in dups}) == len(dups) |
|
|
|