protected virtual void _Generate(AstNodeExprArrayAccess arrayAccess) { Generate(arrayAccess.ArrayInstance); Output.Write("["); Generate(arrayAccess.Index); Output.Write("]"); }
protected virtual void _Generate(AstNodeExprArrayAccess arrayAccess) { Generate(arrayAccess.ArrayInstance); Generate(arrayAccess.Index); if (arrayAccess.ElementType == typeof(byte)) { Emit(OpCodes.Ldelem_U1); return; } if (arrayAccess.ElementType == typeof(ushort)) { Emit(OpCodes.Ldelem_U2); return; } if (arrayAccess.ElementType == typeof(uint)) { Emit(OpCodes.Ldelem_U4); return; } if (arrayAccess.ElementType == typeof(ulong)) { Emit(OpCodes.Ldelem_I8); return; } if (arrayAccess.ElementType == typeof(sbyte)) { Emit(OpCodes.Ldelem_I1); return; } if (arrayAccess.ElementType == typeof(short)) { Emit(OpCodes.Ldelem_I2); return; } if (arrayAccess.ElementType == typeof(int)) { Emit(OpCodes.Ldelem_I4); return; } if (arrayAccess.ElementType == typeof(long)) { Emit(OpCodes.Ldelem_I8); return; } if (arrayAccess.ElementType.IsPointer) { Emit(OpCodes.Ldelem_I); return; } Emit(OpCodes.Ldelem_Ref); }