Implemented some enhancement requests
This commit is contained in:
@@ -7,7 +7,7 @@ from core.concept import ConceptParts, DEFINITION_TYPE_BNF, DEFINITION_TYPE_DEF
|
||||
from core.sheerka.services.SheerkaExecute import ParserInput, SheerkaExecute
|
||||
from core.tokenizer import TokenKind, Keywords
|
||||
from parsers.BaseCustomGrammarParser import BaseCustomGrammarParser, SyntaxErrorNode
|
||||
from parsers.BaseParser import Node, ErrorNode, NotInitializedNode, UnexpectedTokenErrorNode
|
||||
from parsers.BaseParser import Node, ParsingError, NotInitializedNode, UnexpectedTokenParsingError
|
||||
from parsers.BnfDefinitionParser import BnfDefinitionParser
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@ class ParsingException(Exception):
|
||||
|
||||
|
||||
@dataclass()
|
||||
class DefConceptParserNode(Node):
|
||||
class DefConceptParsingResult(Node):
|
||||
"""
|
||||
Base node for all default parser nodes
|
||||
"""
|
||||
@@ -25,12 +25,12 @@ class DefConceptParserNode(Node):
|
||||
|
||||
|
||||
@dataclass()
|
||||
class DefConceptParserErrorNode(DefConceptParserNode, ErrorNode):
|
||||
class DefConceptParsingError(DefConceptParsingResult, ParsingError):
|
||||
pass
|
||||
|
||||
|
||||
@dataclass()
|
||||
class CannotHandleErrorNode(DefConceptParserErrorNode):
|
||||
class CannotHandleParsingError(DefConceptParsingError):
|
||||
"""
|
||||
The input is not recognized
|
||||
"""
|
||||
@@ -38,7 +38,7 @@ class CannotHandleErrorNode(DefConceptParserErrorNode):
|
||||
|
||||
|
||||
@dataclass()
|
||||
class NameNode(DefConceptParserNode):
|
||||
class NameNode(DefConceptParsingResult):
|
||||
|
||||
def get_name(self):
|
||||
name = ""
|
||||
@@ -70,7 +70,7 @@ class NameNode(DefConceptParserNode):
|
||||
|
||||
|
||||
@dataclass()
|
||||
class DefConceptNode(DefConceptParserNode):
|
||||
class DefConceptNode(DefConceptParsingResult):
|
||||
name: NameNode = NotInitializedNode()
|
||||
where: ReturnValueConcept = NotInitializedNode()
|
||||
pre: ReturnValueConcept = NotInitializedNode()
|
||||
@@ -92,7 +92,7 @@ class DefConceptNode(DefConceptParserNode):
|
||||
|
||||
|
||||
@dataclass()
|
||||
class IsaConceptNode(DefConceptParserNode):
|
||||
class IsaConceptNode(DefConceptParsingResult):
|
||||
concept: NameNode = NotInitializedNode()
|
||||
set: NameNode = NotInitializedNode()
|
||||
|
||||
@@ -146,7 +146,7 @@ class DefConceptParser(BaseCustomGrammarParser):
|
||||
"""
|
||||
token = self.parser_input.token
|
||||
if token.value != Keywords.DEF.value:
|
||||
self.add_error(UnexpectedTokenErrorNode("'def' keyword not found.", token, [Keywords.DEF]))
|
||||
self.add_error(UnexpectedTokenParsingError("'def' keyword not found.", token, [Keywords.DEF]))
|
||||
return None
|
||||
|
||||
self.context.log("Keyword DEF found.", self.name)
|
||||
@@ -168,7 +168,7 @@ class DefConceptParser(BaseCustomGrammarParser):
|
||||
keywords_found.extend([t[0] for t in parts.values()]) # keep track of all keywords found
|
||||
node = DefConceptNode(keywords_found)
|
||||
# if first_token.type == TokenKind.EOF:
|
||||
# return self.add_error(UnexpectedTokenErrorNode([first_token], "Unexpected end of file", [Keywords.CONCEPT]))
|
||||
# return self.add_error(UnexpectedTokenParsingError([first_token], "Unexpected end of file", [Keywords.CONCEPT]))
|
||||
|
||||
# get the name
|
||||
node.name = self.get_concept_name(parts[Keywords.CONCEPT])
|
||||
|
||||
Reference in New Issue
Block a user