static void PrintChain(StreamWriter sw, EventFormatter formatter, IEventNode e, int indent) { do { sw.Write($"{e.Id:000}"); sw.Write("".PadRight(indent * 4)); if (e is IBranchNode branch) { sw.WriteLine($"if (!{formatter.GetText(e)}) {{"); if (branch.NextIfFalse != null) { PrintChain(sw, formatter, branch.NextIfFalse, indent + 1); } sw.WriteLine("}".PadLeft(4 + indent * 4)); sw.WriteLine("else...".PadLeft(10 + indent * 4)); } else { sw.WriteLine(formatter.GetText(e)); } e = e.Next; } while (e != null); }
static void PrintEvent(StreamWriter sw, EventFormatter formatter, IEventNode e, int?chainId) { if (chainId.HasValue) { sw.Write('C'); sw.Write(chainId.Value.ToString().PadRight(3)); } else { sw.Write(" "); } sw.WriteLine(formatter.GetText(e)); }
static void PrintChain(EventFormatter formatter, IEventNode e, int indent) { do { Console.Write($"{e.Id:000}"); Console.Write("".PadRight(indent * 4)); if (e is IBranchNode branch) { Console.WriteLine($"if (!{formatter.GetText(e)}) {{"); if (branch.NextEventWhenFalse != null) { PrintChain(formatter, branch.NextEventWhenFalse, indent + 1); } Console.WriteLine("}".PadLeft(4 + indent * 4)); Console.WriteLine("else...".PadLeft(10 + indent * 4)); } else { Console.WriteLine(formatter.GetText(e)); } e = e.NextEvent; } while (e != null); }