Working on #48 : Working

This commit is contained in:
2021-03-09 09:33:50 +01:00
parent a799ab2bbd
commit 07f0d3670d
6 changed files with 94 additions and 26 deletions
+7 -3
View File
@@ -18,9 +18,9 @@ from sheerkarete.conditions import Condition, AndConditions
class ReteConditionsEmitter:
def __init__(self, context):
from parsers.ComparisonParser import ComparisonParser
from parsers.RelationalOperatorParser import RelationalOperatorParser
self.context = context
self.comparison_parser = ComparisonParser()
self.comparison_parser = RelationalOperatorParser()
self.var_counter = 0
self.variables = {}
@@ -69,8 +69,10 @@ class LogicalOperatorParser(BaseParser):
Or to help to understand why a python expression returns True or False
"""
NAME = "LogicalOperator"
def __init__(self, **kwargs):
super().__init__("Expression", 50, False, yield_eof=True)
super().__init__(self.NAME, 50, False, yield_eof=True)
self.and_tokens = list(Tokenizer(" and ", yield_eof=False))
self.and_not_tokens = list(Tokenizer(" and not ", yield_eof=False))
self.not_tokens = list(Tokenizer("not ", yield_eof=False))
@@ -111,6 +113,8 @@ class LogicalOperatorParser(BaseParser):
if token and token.type != TokenKind.EOF:
self.add_error(UnexpectedTokenParsingError(f"Unexpected token '{token}'", token, []))
if isinstance(tree, ParenthesisNode):
tree = tree.node
value = self.get_return_value_body(context.sheerka, self.parser_input.as_text(), tree, tree)
ret = self.sheerka.ret(