public SymDiffMergeConfigVerb(BoogieAsmVerifyVerb basmVerb, SymDiffInferVerb inferVerb) { this.basmVerb = basmVerb; this.mutualSummary = basmVerb.getMutualSummary(); this.inferVerb = inferVerb; this.inferredConfig = inferVerb.getOutputFile(); abstractId = new AbstractId(this.GetType().Name, version, inferredConfig.ToString()); //- One should suffice for uniqueness: String.Format("{0},{1}", mutualSummary,inferredConfig)); output = this.basmVerb.outputFile().makeOutputObject(CONFIG_EXTN); }
public SymDiffMergeConfigVerb(BoogieAsmVerifyVerb basmVerb, SymDiffInferVerb inferVerb) { this.basmVerb = basmVerb; this.mutualSummary = basmVerb.getMutualSummary(); this.inferVerb = inferVerb; this.inferredConfig = inferVerb.getOutputFile(); this.abstractId = new AbstractId(this.GetType().Name, version, this.inferredConfig.ToString()); // One should suffice for uniqueness: String.Format("{0},{1}", mutualSummary,inferredConfig)); this.output = this.basmVerb.outputFile().makeOutputObject(CONFIG_EXTN); }
public static void BuildPipeline(IContextGeneratingVerb context, BuildObject input, out BuildObject bplFile, out IVerb workerVerb) { BoogieAsmVerifyVerb basmVerb = new BoogieAsmVerifyVerb(context, input, true); SymDiffExtractVerb left = new SymDiffExtractVerb(basmVerb, SymDiffExtractVerb.Mode.LEFT); SymDiffExtractVerb right = new SymDiffExtractVerb(basmVerb, SymDiffExtractVerb.Mode.RIGHT); SymDiffInferVerb infer = new SymDiffInferVerb(left, right); SymDiffMergeConfigVerb mergeConfig = new SymDiffMergeConfigVerb(basmVerb, infer); SymDiffCombineVerb combiner = new SymDiffCombineVerb(left, right, mergeConfig); SymDiffMergeVerb merger = new SymDiffMergeVerb(basmVerb, combiner); bplFile = merger.getOutputFile(); workerVerb = merger; }