Create validation on midi() function

This commit is contained in:
2020-03-14 14:20:46 +01:00
parent d3f6138a8b
commit ba23545e1b
3 changed files with 23 additions and 15 deletions

View File

@@ -4,8 +4,8 @@ import io.smnp.dsl.ast.model.node.*
import io.smnp.environment.Environment
import io.smnp.error.EnvironmentException
import io.smnp.error.EvaluationException
import io.smnp.error.MethodInvocationException
import io.smnp.error.PositionException
import io.smnp.error.SmnpException
import io.smnp.evaluation.model.entity.EvaluatorOutput
class AccessOperatorEvaluator : Evaluator() {
@@ -36,9 +36,7 @@ class AccessOperatorEvaluator : Evaluator() {
(argsNode as FunctionCallArgumentsNode).items.map { evaluator.evaluate(it, environment).value }
try {
return EvaluatorOutput.value(environment.invokeMethod(lhs, identifier, arguments))
} catch(e: MethodInvocationException) {
throw PositionException(EnvironmentException(e, environment), identifierNode.position)
} catch(e: EvaluationException) {
} catch(e: SmnpException) {
throw PositionException(EnvironmentException(e, environment), identifierNode.position)
}
}

View File

@@ -6,9 +6,8 @@ import io.smnp.dsl.ast.model.node.IdentifierNode
import io.smnp.dsl.ast.model.node.Node
import io.smnp.environment.Environment
import io.smnp.error.EnvironmentException
import io.smnp.error.EvaluationException
import io.smnp.error.FunctionInvocationException
import io.smnp.error.PositionException
import io.smnp.error.SmnpException
import io.smnp.evaluation.model.entity.EvaluatorOutput
class FunctionCallEvaluator : Evaluator() {
@@ -22,10 +21,8 @@ class FunctionCallEvaluator : Evaluator() {
try {
return EvaluatorOutput.value(environment.invokeFunction(identifier, arguments))
} catch(e: FunctionInvocationException) {
throw PositionException(EnvironmentException(e, environment), node.position)
} catch(e: EvaluationException) {
throw PositionException(EnvironmentException(e, environment), node.position)
} catch(e: SmnpException) {
throw PositionException(EnvironmentException(e, environment), identifierNode.position)
}
}
}