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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user