public ForwardAnalysis(ICFG cfg, Func <APC, AbstractState, AbstractState> transfer, Joiner <APC, AbstractState> joiner, Func <AbstractState, AbstractState> immutableVersion, Func <AbstractState, AbstractState> mutableVersion, EdgeConverter <APC, AbstractState, EdgeData> edgeConverter, Func <APC, APC, EdgeData> edgeDataGetter, Func <APC, AbstractState, bool> isBottom, Action <Pair <AbstractState, TextWriter> > dumper) : base(cfg) { this.transfer = transfer; this.joiner = joiner; this.immutable_version = immutableVersion; this.mutable_version = mutableVersion; this.edge_converter = edgeConverter; this.edge_data_getter = edgeDataGetter; this.is_bottom = isBottom; this.dumper = dumper; }
public ForwardAnalysisSolver( ICFG cfg, Transformer <APC, AState, AState> transfer, EdgeConverter <APC, AState, EdgeData> edgeConverter, Joiner <APC, AState> joiner, Converter <AState, AState> immutableVersion, Converter <AState, AState> mutableVersion, Action <Pair <AState, TextWriter> > dumper, Func <APC, AState, bool> isBottom, Func <APC, AState, bool> isTop, ILPrinter <APC> printer, Printer <EdgeData> edgeDataPrinter, Func <APC, APC, EdgeData> edgeDataGetter ) : base(cfg) { Contract.Requires(transfer != null); Contract.Requires(immutableVersion != null); Contract.Requires(isBottom != null); Contract.Requires(isTop != null); Contract.Requires(joiner != null); Contract.Requires(mutableVersion != null); Contract.Requires(edgeConverter != null); Contract.Requires(edgeDataGetter != null); this.transfer = transfer; this.edgeConverter = edgeConverter; this.joiner = joiner; this.immutableVersion = immutableVersion; this.mutableVersion = mutableVersion; this.dumper = dumper; this.isBottom = isBottom; this.isTop = isTop; this.printer = printer; this.edgeDataPrinter = edgeDataPrinter; this.edgeDataGetter = edgeDataGetter; }