private Expression GenerateSetIndexExpression(IList <Expression> arguments, IEnumerable <Instruction> instructions) { if (arguments.get_Count() < 3) { throw new Exception("Invalid number of arguments for set index expression."); } V_0 = new DynamicIndexerExpression(arguments.get_Item(0), this.objectTypeRef, instructions); V_1 = 1; while (V_1 < arguments.get_Count() - 1) { V_0.get_Indices().Add(arguments.get_Item(V_1)); V_1 = V_1 + 1; } return(new BinaryExpression(26, V_0, arguments.get_Item(arguments.get_Count() - 1), this.typeSystem, null, false)); }
private Expression GenerateGetIndexExpression(IList <Expression> arguments, IEnumerable <Instruction> instructions) { if (arguments.get_Count() < 2) { throw new Exception("Invalid number of arguments for get index expression."); } V_0 = new DynamicIndexerExpression(arguments.get_Item(0), this.objectTypeRef, instructions); V_1 = 1; while (V_1 < arguments.get_Count()) { V_0.get_Indices().Add(arguments.get_Item(V_1)); V_1 = V_1 + 1; } return(V_0); }