Refactored to allow ConceptEvaluator
This commit is contained in:
+25
-1
@@ -15,17 +15,34 @@ class NopNode(Node):
|
||||
return "nop"
|
||||
|
||||
|
||||
class NotInitializedNode(Node):
|
||||
pass
|
||||
|
||||
def __repr__(self):
|
||||
return "**N/A**"
|
||||
|
||||
|
||||
@dataclass()
|
||||
class ErrorNode(Node):
|
||||
pass
|
||||
|
||||
|
||||
class BaseParser:
|
||||
PREFIX = "Parsers:"
|
||||
|
||||
def __init__(self, name):
|
||||
self.name = name
|
||||
self.name = self.PREFIX + name
|
||||
self.has_error = False
|
||||
self.error_sink = []
|
||||
|
||||
def __eq__(self, other):
|
||||
if not isinstance(other, self.__class__):
|
||||
return False
|
||||
return self.name == other.name
|
||||
|
||||
def __hash__(self):
|
||||
return hash(self.name)
|
||||
|
||||
def parse(self, context, text):
|
||||
pass
|
||||
|
||||
@@ -38,3 +55,10 @@ class BaseParser:
|
||||
value = Keywords(token.value).value if token.type == TokenKind.KEYWORD else token.value
|
||||
res += value
|
||||
return res
|
||||
|
||||
@staticmethod
|
||||
def log_result(log, text, ret):
|
||||
if ret.status:
|
||||
log.debug(f"Recognized '{text}' as {ret.value}")
|
||||
else:
|
||||
log.debug(f"Failed to recognize '{text}'")
|
||||
|
||||
Reference in New Issue
Block a user