public void Dump(IrPrintingPolicy printingPolicy) { if (!printingPolicy.ColorEnabled) { Console.Out.Write(printingPolicy.IndentationString + this); return; } Console.Out.Write(printingPolicy.IndentationString); Console.ForegroundColor = ConsoleColor.DarkGray; Console.Out.Write(Label + ": "); Console.ResetColor(); Console.ForegroundColor = ConsoleColor.Blue; Console.Out.Write(" " + OutputRegisterString); Console.ResetColor(); if (OutputRegisters.Count() > 0) { Console.Out.Write(" <- "); } Console.ForegroundColor = ConsoleColor.Magenta; Console.Out.Write(this.OpCodeAndOperandString + " "); Console.ResetColor(); Console.ForegroundColor = ConsoleColor.Blue; Console.Out.Write(InputRegisterString); Console.ResetColor(); }
/// <summary> /// The string representation remains the same across /// stack based and linear ir. /// </summary> public override String ToString() { var instructionString = Label + ": " + OutputRegisterString + (OutputRegisters.Count() > 0 ? " <- " : String.Empty) + OpCodeAndOperandString + " " + InputRegisterString; return(instructionString); }