Create evaluators for optional arguments in function and method definitions
This commit is contained in:
@@ -3,7 +3,7 @@ from smnp.runtime.evaluator import Evaluator, evaluate
|
||||
from smnp.runtime.evaluators.expression import expressionEvaluator
|
||||
from smnp.runtime.evaluators.iterable import abstractIterableEvaluator
|
||||
from smnp.runtime.tools.error import updatePos
|
||||
from smnp.runtime.tools.signature import argumentsNodeToMethodSignature
|
||||
from smnp.runtime.tools.signature import argumentsNodeToMethodSignature, evaluateDefaultArguments
|
||||
from smnp.type.model import Type
|
||||
|
||||
|
||||
@@ -27,8 +27,9 @@ class FunctionDefinitionEvaluator(Evaluator):
|
||||
name = node.name.value
|
||||
signature = argumentsNodeToMethodSignature(node.arguments)
|
||||
arguments = [ arg.variable.value for arg in node.arguments ]
|
||||
defaultArguments = evaluateDefaultArguments(node.arguments, environment)
|
||||
body = node.body
|
||||
environment.addCustomFunction(name, signature, arguments, body)
|
||||
environment.addCustomFunction(name, signature, arguments, body, defaultArguments)
|
||||
except RuntimeException as e:
|
||||
raise updatePos(e, node)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user