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); }