diff --git a/sly/lex.py b/sly/lex.py index a31dd80..a5dbd23 100644 --- a/sly/lex.py +++ b/sly/lex.py @@ -74,7 +74,11 @@ class LexerMetaDict(OrderedDict): ''' def __setitem__(self, key, value): if key in self and not isinstance(value, property): - raise AttributeError('Name %s redefined' % (key)) + if isinstance(self[key], str) and callable(value): + value.pattern = self[key] + else: + raise AttributeError('Name %s redefined' % (key)) + super().__setitem__(key, value) class LexerMeta(type):