Create almost working proof of concept with new parsers
This commit is contained in:
14
smnp/util/singleton.py
Normal file
14
smnp/util/singleton.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from smnp.ast.parser import Parser
|
||||
|
||||
|
||||
def SingletonParser(function):
|
||||
def wrapper(*args, **kwargs):
|
||||
if not hasattr(function, 'instance'):
|
||||
function.instance = function(*args, **kwargs)
|
||||
|
||||
if not isinstance(function.instance, Parser):
|
||||
raise RuntimeError(f"Function {function.__name__} haven't returned Parser object")
|
||||
|
||||
return function.instance
|
||||
|
||||
return wrapper
|
||||
Reference in New Issue
Block a user