public bool TraceAggregateSequentally(Label current) { bool isCurrentBranches; bool isCurrentHasSuccessor; do { ICodeProvider <Label> codeProvider = this.parent.CodeProvider; isCurrentBranches = codeProvider.Decode <BlockStartGatherer <Label>, Dummy, bool> (current, this, Dummy.Value); isCurrentHasSuccessor = codeProvider.Next(current, out current); if (isCurrentBranches && isCurrentHasSuccessor) { AddBlockStart(current); } } while (isCurrentHasSuccessor); return(isCurrentBranches); }