Create evaluator for custom functions definition (but invocation doesn't work yet)

This commit is contained in:
Bartłomiej Pluta
2019-07-08 15:36:13 +02:00
parent 1e634180d6
commit 606d93c319
5 changed files with 86 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
from smnp.ast.node.function import FunctionDefinitionNode
from smnp.ast.node.program import Program
from smnp.error.runtime import RuntimeException
from smnp.type.model import Type
@@ -66,8 +67,10 @@ def evaluate(node, environment):
from smnp.runtime.evaluators.program import ProgramEvaluator
from smnp.runtime.evaluators.expression import expressionEvaluator
from smnp.runtime.evaluators.function import FunctionDefinitionEvaluator
result = Evaluator.oneOf(
Evaluator.forNodes(ProgramEvaluator.evaluate, Program),
Evaluator.forNodes(FunctionDefinitionEvaluator.evaluate, FunctionDefinitionNode),
expressionEvaluator()
)(node, environment)