I can now use keyword in concept definition and parsing

This commit is contained in:
2020-05-22 15:46:04 +02:00
parent 37d3d16e21
commit 3ce6ce2a76
14 changed files with 127 additions and 45 deletions
+4 -4
View File
@@ -400,11 +400,11 @@ class StrMatch(Match):
def _parse(self, parser_helper):
token = parser_helper.get_token()
m = str(token.value).lower() == self.to_match.lower() if self.ignore_case \
else token.value == self.to_match
m = token.str_value.lower() == self.to_match.lower() if self.ignore_case \
else token.strip_quote == self.to_match
if m:
node = TerminalNode(self, parser_helper.pos, parser_helper.pos, token.value)
node = TerminalNode(self, parser_helper.pos, parser_helper.pos, token.str_value)
parser_helper.next_token()
return node
@@ -882,7 +882,7 @@ class BnfNodeParser(BaseNodeParser):
else:
# regular concepts
tokens = Tokenizer(concept.name)
nodes = [StrMatch(core.utils.strip_quotes(token.value)) for token in list(tokens)[:-1]]
nodes = [StrMatch(token.strip_quote) for token in list(tokens)[:-1]]
pe = inner_resolve(nodes[0] if len(nodes) == 1 else Sequence(nodes), inner_already_seen)
if not isinstance(pe, ParsingExpression):