private static Item CompileField(ByteCodeGenerator generator, Item scope, PrimaryNode.TermFieldExpression field)
        {
            var item = new PrimaryCompiler(field.Child).Compile(generator, scope);

            item.Load();
            return new PrimaryCompiler(field.SecondChild).Compile(generator, item);
        }
        private static Item CompileArray(ByteCodeGenerator generator, Item scope, PrimaryNode.TermArrayExpression array)
        {
            var item = new PrimaryCompiler(array.Child).Compile(generator, scope);
            item.Load();

            new ExpressionCompiler(array.Index).Compile(generator).Load();

            var result = item.Type as Array;

            return new IndexedItem(generator, result.ArrayType);
        }