Fixed BNF parsing issues
This commit is contained in:
@@ -16,9 +16,9 @@ class ClassWithName:
|
||||
self.name = name
|
||||
|
||||
|
||||
def c(name):
|
||||
def c(name, rule_name=None):
|
||||
concept = Concept(name).init_key()
|
||||
return ConceptExpression(concept, rule_name=name)
|
||||
return ConceptExpression(concept, rule_name=rule_name or name)
|
||||
|
||||
|
||||
eof_token = Token(TokenKind.EOF, "", 0, 0, 0)
|
||||
@@ -94,6 +94,7 @@ class TestBnfParser(TestUsingMemoryBasedSheerka):
|
||||
("foo | bar?", OrderedChoice(c("foo"), Optional(c("bar")))),
|
||||
("'str' = var", Sequence(StrMatch("str"), StrMatch("="), c("var"))),
|
||||
("'str''='var", Sequence(StrMatch("str"), StrMatch("="), c("var"))),
|
||||
("foo=f", c("foo", "f")),
|
||||
])
|
||||
def test_i_can_parse_regex_with_concept(self, expression, expected):
|
||||
foo = Concept("foo")
|
||||
@@ -111,10 +112,11 @@ class TestBnfParser(TestUsingMemoryBasedSheerka):
|
||||
assert res.value.value == expected
|
||||
assert res.value.source == expression
|
||||
|
||||
def test_i_can_parse_regex_with_concept_when_the_concept_is_still_under_definition(self):
|
||||
expression = "foo"
|
||||
expected = ConceptExpression("foo")
|
||||
|
||||
@pytest.mark.parametrize("expression, expected", [
|
||||
("foo", ConceptExpression("foo")),
|
||||
("foo=f", ConceptExpression("foo", rule_name="f")),
|
||||
])
|
||||
def test_i_can_parse_regex_with_concept_when_the_concept_is_still_under_definition(self, expression, expected):
|
||||
context = self.get_context()
|
||||
context.obj = ClassWithName("foo")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user