I can define and eval BNF definitions

This commit is contained in:
2019-12-17 21:19:44 +01:00
parent c668cc46d2
commit 88cd3162be
25 changed files with 1099 additions and 569 deletions
+4 -4
View File
@@ -2,12 +2,12 @@ from core.builtin_concepts import BuiltinConcepts, ReturnValueConcept, ParserRes
from core.concept import ConceptParts
import core.builtin_helpers
import core.utils
from parsers.BaseParser import BaseParser, Node, NopNode, ErrorNode, NotInitializedNode
from parsers.BaseParser import BaseParser, Node, ErrorNode, NotInitializedNode
from core.tokenizer import Tokenizer, TokenKind, Token, Keywords
from dataclasses import dataclass, field
import logging
from parsers.ConceptLexerParser import RegexParser
from parsers.BnfParser import BnfParser
log = logging.getLogger(__name__)
@@ -206,7 +206,7 @@ class DefaultParser(BaseParser):
Parse sheerka specific grammar (like def concept)
"""
def __init__(self):
def __init__(self, **kwargs):
BaseParser.__init__(self, "DefaultParser")
self.lexer_iter = None
self._current = None
@@ -427,7 +427,7 @@ class DefaultParser(BaseParser):
self.add_error(SyntaxErrorNode([definition_tokens[1]], "Empty declaration"), False)
return NotInitializedNode()
regex_parser = RegexParser()
regex_parser = BnfParser()
new_context = self.context.push(self.name)
parsing_result = regex_parser.parse(new_context, tokens)
if not parsing_result.status: