diff --git a/smnp/ast/node/expression.py b/smnp/ast/node/expression.py index 97b5c52..39bb80e 100644 --- a/smnp/ast/node/expression.py +++ b/smnp/ast/node/expression.py @@ -56,6 +56,7 @@ class ExpressionNode(Node): from smnp.ast.node.identifier import IdentifierNode from smnp.ast.node.list import ListNode from smnp.ast.node.map import MapNode + from smnp.ast.node.type import TypeNode return Parser.oneOf( IntegerLiteralNode.parse, @@ -63,5 +64,6 @@ class ExpressionNode(Node): NoteLiteralNode.parse, IdentifierNode.parse, MapNode.parse, - ListNode.parse + ListNode.parse, + TypeNode.parse, ) \ No newline at end of file diff --git a/smnp/runtime/evaluators/expression.py b/smnp/runtime/evaluators/expression.py index 79c2c3f..fee2031 100644 --- a/smnp/runtime/evaluators/expression.py +++ b/smnp/runtime/evaluators/expression.py @@ -8,6 +8,7 @@ from smnp.ast.node.list import ListNode from smnp.ast.node.map import MapNode from smnp.ast.node.note import NoteLiteralNode from smnp.ast.node.string import StringLiteralNode +from smnp.ast.node.type import TypeNode from smnp.error.runtime import RuntimeException from smnp.runtime.evaluator import Evaluator from smnp.type.model import Type @@ -26,11 +27,13 @@ def expressionEvaluator(doAssert=False): from smnp.runtime.evaluators.assignment import AssignmentEvaluator from smnp.runtime.evaluators.asterisk import AsteriskEvaluator from smnp.runtime.evaluators.map import MapEvaluator + from smnp.runtime.evaluators.type import TypeEvaluator result = Evaluator.oneOf( Evaluator.forNodes(FunctionCallEvaluator.evaluate, FunctionCallNode), Evaluator.forNodes(StringEvaluator.evaluate, StringLiteralNode), Evaluator.forNodes(IntegerEvaluator.evaluate, IntegerLiteralNode), Evaluator.forNodes(NoteEvaluator.evaluate, NoteLiteralNode), + Evaluator.forNodes(TypeEvaluator.evaluate, TypeNode), Evaluator.forNodes(IdentifierEvaluator.evaluate, IdentifierNode), Evaluator.forNodes(ListEvaluator.evaluate, ListNode), Evaluator.forNodes(AccessEvaluator.evaluate, AccessNode),