public void EmitIR(CILEmitter Emitter, bool Reference) { if (Reference) { if (Type.IsArray && reference.ArrayIndex != null) { Emitter.LoadVariable(reference.Name); reference.ArrayIndex.EmitIR(Emitter, false); Emitter.LoadArrayIndexAddress(Type); } else { Emitter.LoadVariableAddress(reference.Name); } } else if (variable.IsReference) { Emitter.LoadReferenceVariable(variable); } else { Emitter.LoadVariable(reference.Name); if (reference.ArrayIndex != null) { reference.ArrayIndex.EmitIR(Emitter, false); Emitter.LoadArrayVariable(variable); } } }