Added first version of DebugManager. Implemented draft of the rule engine
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
from core.concept import CC, Concept, ConceptParts, DoNotResolve, CIO
|
||||
from core.tokenizer import Tokenizer, TokenKind, Token
|
||||
from parsers.BaseNodeParser import scnode, utnode, cnode, SCWC, CNC, short_cnode, SourceCodeWithConceptNode, CN, UTN, \
|
||||
SCN
|
||||
SCN, RN
|
||||
from parsers.SyaNodeParser import SyaConceptParserHelper
|
||||
|
||||
|
||||
@@ -108,6 +108,12 @@ def get_node(
|
||||
sub_expr.fix_pos(node)
|
||||
return sub_expr
|
||||
|
||||
if isinstance(sub_expr, RN):
|
||||
start, length = _index(expression_as_tokens, sub_expr.source, skip)
|
||||
sub_expr.start = start
|
||||
sub_expr.end = start + length - 1
|
||||
return sub_expr
|
||||
|
||||
if isinstance(sub_expr, (CNC, CC, CN)):
|
||||
concept_node = get_node(
|
||||
concepts_map,
|
||||
@@ -164,7 +170,7 @@ def get_node(
|
||||
concept_found = concepts_map.get(concept_key, None)
|
||||
if concept_found:
|
||||
concept_found = Concept().update_from(concept_found) # make a copy when massively used in tests
|
||||
if sya and len(concept_found.metadata.variables) > 0 and not is_bnf:
|
||||
if sya and len(concept_found.get_metadata().variables) > 0 and not is_bnf:
|
||||
return SyaConceptParserHelper(concept_found, start, start + length - 1)
|
||||
elif init_empty_body:
|
||||
node = CNC(concept_found, start, start + length - 1, source=sub_expr, exclude_body=exclude_body)
|
||||
@@ -183,7 +189,7 @@ def init_body(item, concept, value):
|
||||
del (item.compiled["body"])
|
||||
return
|
||||
|
||||
if not concept or concept.metadata.body or ConceptParts.BODY in item.compiled:
|
||||
if not concept or concept.get_metadata().body or ConceptParts.BODY in item.compiled:
|
||||
return
|
||||
|
||||
item.compiled[ConceptParts.BODY] = DoNotResolve(value)
|
||||
|
||||
Reference in New Issue
Block a user