public void PrintModel(TextWriter tw) { var filename = CommandLineOptions.Clo.ModelViewFile; if (Model == null || filename == null || CommandLineOptions.Clo.StratifiedInlining > 0) { return; } if (!Model.ModelHasStatesAlready) { PopulateModelWithStates(); Model.ModelHasStatesAlready = true; } if (filename == "-") { Model.Write(tw); tw.Flush(); } else { using (var wr = new StreamWriter(filename, !firstModelFile)) { firstModelFile = false; Model.Write(wr); } } }
public void PrintModel(TextWriter tw, Counterexample counterexample) { Contract.Requires(counterexample != null); var filename = CommandLineOptions.Clo.ModelViewFile; if (Model == null || filename == null || CommandLineOptions.Clo.StratifiedInlining > 0) { return; } if (!Model.ModelHasStatesAlready) { if (counterexample is AssertCounterexample assertError) { PopulateModelWithStates(counterexample.Trace, assertError.FailingAssert); } else if (counterexample is CallCounterexample callError) { PopulateModelWithStates(counterexample.Trace, callError.FailingCall); } else { Contract.Assert(counterexample is ReturnCounterexample); PopulateModelWithStates(counterexample.Trace, null); } Model.ModelHasStatesAlready = true; } if (filename == "-") { Model.Write(tw); tw.Flush(); } else { using (var wr = new StreamWriter(filename, !firstModelFile)) { firstModelFile = false; Model.Write(wr); } } }
public override void OnModel(IList<string> labels, Model model) { Debug.Assert(model != null); if(CommandLineOptions.Clo.PrintErrorModel >= 1) model.Write(Console.Out); this.model = model; }