Ensure that lexers don't share state
This commit is contained in:
parent
09194f599b
commit
3f9c03a37b
@ -248,6 +248,7 @@ class Lexer:
|
|||||||
print("Lex error: ", v)
|
print("Lex error: ", v)
|
||||||
|
|
||||||
_lexer = None
|
_lexer = None
|
||||||
|
lex: lex.Lexer
|
||||||
|
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, *args, **kwargs):
|
||||||
# only build the lexer once
|
# only build the lexer once
|
||||||
@ -256,6 +257,7 @@ class Lexer:
|
|||||||
cls._lexer = lex.lex(module=inst)
|
cls._lexer = lex.lex(module=inst)
|
||||||
|
|
||||||
inst.lex = cls._lexer.clone(inst)
|
inst.lex = cls._lexer.clone(inst)
|
||||||
|
inst.lex.begin("INITIAL")
|
||||||
return inst
|
return inst
|
||||||
|
|
||||||
def __init__(self, filename: typing.Optional[str] = None):
|
def __init__(self, filename: typing.Optional[str] = None):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user