Refactor parser
This commit is contained in:
@@ -1,11 +0,0 @@
|
||||
from smnp.ast.node.expression import ExpressionNode
|
||||
from smnp.ast.node.iterable import abstractIterableParser
|
||||
from smnp.ast.node.model import Node
|
||||
from smnp.token.type import TokenType
|
||||
|
||||
|
||||
class ArgumentsListNode(Node):
|
||||
|
||||
@classmethod
|
||||
def _parse(cls, input):
|
||||
return abstractIterableParser(ArgumentsListNode, TokenType.OPEN_PAREN, TokenType.CLOSE_PAREN, ExpressionNode.parse)(input)
|
||||
@@ -1,8 +1,7 @@
|
||||
from smnp.ast.node.access import AccessNode
|
||||
from smnp.ast.node.args import ArgumentsListNode
|
||||
from smnp.ast.node.assignment import AssignmentNode
|
||||
from smnp.ast.node.expression import ExpressionNode
|
||||
from smnp.ast.node.invocation import FunctionCall
|
||||
from smnp.ast.node.invocation import FunctionCall, ArgumentsListNode
|
||||
from smnp.ast.parser import Parser
|
||||
from smnp.token.type import TokenType
|
||||
|
||||
|
||||
@@ -1,4 +1,15 @@
|
||||
from smnp.ast.node.access import AccessNode
|
||||
from smnp.ast.node.expression import ExpressionNode
|
||||
from smnp.ast.node.iterable import abstractIterableParser
|
||||
from smnp.ast.node.model import Node
|
||||
from smnp.token.type import TokenType
|
||||
|
||||
|
||||
class ArgumentsListNode(Node):
|
||||
|
||||
@classmethod
|
||||
def _parse(cls, input):
|
||||
return abstractIterableParser(ArgumentsListNode, TokenType.OPEN_PAREN, TokenType.CLOSE_PAREN, ExpressionNode.parse)(input)
|
||||
|
||||
|
||||
class FunctionCall(AccessNode):
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
from smnp.ast.node.ignore import IgnoredNode
|
||||
from smnp.ast.node.model import ParseResult, Node
|
||||
from smnp.ast.node.program import Program
|
||||
|
||||
|
||||
def parse(input):
|
||||
return Program.parse(input)
|
||||
from smnp.ast.node.program import Program
|
||||
return Program.parse(input).node
|
||||
|
||||
|
||||
class Parser:
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import sys
|
||||
|
||||
from smnp.ast.node.program import Program
|
||||
from smnp.ast.parser import parse
|
||||
from smnp.environment.factory import createEnvironment
|
||||
from smnp.error.base import SmnpException
|
||||
from smnp.runtime.evaluator import evaluate
|
||||
@@ -14,8 +14,8 @@ def main():
|
||||
|
||||
tokens = tokenize(lines)
|
||||
|
||||
ast = Program.parse(tokens)
|
||||
ast.node.print()
|
||||
ast = parse(tokens)
|
||||
ast.print()
|
||||
|
||||
|
||||
env = createEnvironment()
|
||||
|
||||
Reference in New Issue
Block a user