private TAnalysisData Flow(BasicBlock block, TAnalysisData data) { if (block.Kind == BasicBlockKind.Entry) { OperationVisitor.OnEntry(block, data); } else if (block.Kind == BasicBlockKind.Exit) { OperationVisitor.OnExit(block, data); } foreach (var statement in block.Statements) { data = OperationVisitor.Flow(statement, block, data); } return(data); }