from thinglang.parser.tokens.collections import ListInitializationPartial, ListInitialization
from thinglang.utils.type_descriptors import ValueType


class ArrayInitializationPartial(ListInitializationPartial):
    pass


class ArrayInitialization(ListInitialization, ValueType):
    pass

@@ -1,20 +1,125 @@
+from thinglang.lexer.symbols.base import LexicalIdentifier%0Afrom thinglang.parser.tokens import BaseToken%0A
 from thinglang.parse
@@ -246,16 +246,38 @@
 alueType
+, ReplaceableArguments
 %0A%0A%0Aclass
@@ -398,20 +398,427 @@
 alueType):%0A    pass%0A
+%0A%0Aclass CastOperation(BaseToken, ValueType, ReplaceableArguments):%0A%0A    CASTERS = %7B%0A        LexicalIdentifier(%22number%22): lambda x: int(x)%0A    %7D%0A%0A    def __init__(self, slice):%0A        super(CastOperation, self).__init__(slice)%0A        self.arguments = %5Bslice%5B0%5D%5D%0A        self.caster = self.CASTERS%5Bslice%5B2%5D%5D%0A%0A    def evaluate(self, resolver):%0A        return self.caster(self.arguments%5B0%5D.evaluate(resolver))

Implement CastOperation token