public CodePath CreateCodePath(CodePathType Type, int EndOffset, int BreakOffset)
        {
            CodePath C = new CodePath(this, Type, EndOffset, BreakOffset);

            this.ChildPaths.Add(C);
            return(C);
        }
 public CodePath(CodePath Parent, CodePathType Type, int EndOffset, int BreakOffset)
 {
     this.Parent      = Parent;
     this.Type        = Type;
     this.EndOffset   = EndOffset;
     this.BreakOffset = BreakOffset;
     ChildPaths       = new List <CodePath>();
 }
 public SwitchPath(CodePath Parent, Dictionary <int, List <string> > Cases, int EndOffset, int BreakOffset)
     : base(Parent, CodePathType.Switch, EndOffset, BreakOffset)
 {
     this.Cases = Cases;
     Offsets    = Cases == null ? new List <int>() : Cases.Keys.ToList();
     if (Program.RDROpcodes)
     {
         Offsets.Sort();
     }
     Offsets.Add(BreakOffset);  // Ensure default is last offset
     foreach (int offset in Offsets)
     {
         EscapedCases[offset] = false;
     }
 }
 public SwitchPath(CodePath Parent, CodePathType Type, int EndOffset, int BreakOffset)
     : base(Parent, Type, EndOffset, BreakOffset)
 {
     Offsets = new List <int>();
     Cases   = new Dictionary <int, List <string> >();
 }