Resolved some remaining chicken and egg when parsing BNF nodes
This commit is contained in:
+13
-7
@@ -53,13 +53,19 @@ class BaseTest:
|
||||
c = Concept(c)
|
||||
|
||||
if c.metadata.definition and c.metadata.definition_type != DEFINITION_TYPE_DEF:
|
||||
bnf_parser = BnfParser()
|
||||
res = bnf_parser.parse(context, c.metadata.definition)
|
||||
if res.status:
|
||||
c.bnf = res.value.value
|
||||
c.metadata.definition_type = DEFINITION_TYPE_BNF
|
||||
else:
|
||||
raise Exception(f"Error in bnf definition '{c.metadata.definition}'", sheerka.get_error(res))
|
||||
desc = f"Resolving BNF {c.metadata.definition}"
|
||||
with context.push(BuiltinConcepts.INIT_BNF,
|
||||
c,
|
||||
obj=c,
|
||||
desc=desc) as sub_context:
|
||||
|
||||
bnf_parser = BnfParser()
|
||||
res = bnf_parser.parse(sub_context, c.metadata.definition)
|
||||
if res.status:
|
||||
c.bnf = res.value.value
|
||||
c.metadata.definition_type = DEFINITION_TYPE_BNF
|
||||
else:
|
||||
raise Exception(f"Error in bnf definition '{c.metadata.definition}'", sheerka.get_error(res))
|
||||
|
||||
if create_new:
|
||||
sheerka.create_new_concept(context, c)
|
||||
|
||||
Reference in New Issue
Block a user