Resolved some remaining chicken and egg when parsing BNF nodes
This commit is contained in:
@@ -214,3 +214,25 @@ class TestBnfParser(TestUsingMemoryBasedSheerka):
|
||||
assert not res.status
|
||||
assert context.sheerka.isinstance(res.value, BuiltinConcepts.UNKNOWN_CONCEPT)
|
||||
assert res.value.body == ('key', 'foo')
|
||||
|
||||
def test_concept_expression_are_correctly_created_when_isa_concept_is_detected(self):
|
||||
sheerka, context, parser, one, two, number, twenties = self.init_parser(
|
||||
"one",
|
||||
"two",
|
||||
"number",
|
||||
"twenties")
|
||||
|
||||
sheerka.set_isa(context, sheerka.new("one"), number)
|
||||
sheerka.set_isa(context, sheerka.new("two"), number)
|
||||
sheerka.set_isa(context, sheerka.new("twenties"), number)
|
||||
|
||||
sub_context = context.push(BuiltinConcepts.INIT_BNF, twenties)
|
||||
|
||||
expression = "'twenty' number=n1"
|
||||
res = parser.parse(sub_context, Tokenizer(expression))
|
||||
|
||||
assert not parser.has_error
|
||||
assert res.status
|
||||
pexpression = res.value.value
|
||||
assert pexpression == Sequence(StrMatch('twenty'), ConceptExpression(number, "n1"))
|
||||
assert pexpression.elements[1].recurse_id == "1003#n1#1004"
|
||||
|
||||
Reference in New Issue
Block a user