public void DocTree() { ServerUtils.ApplyArgs(args, reporter); if (Parse() && Resolve()) { var docTree = new DocTree(dafnyProgram).GetDocTree(); Console.WriteLine("DOCTREE_START " + ConvertToJson(docTree) + " DOCTREE_END"); } else { Console.WriteLine("DOCTREE_START [] DOCTREE_END"); } }
public void Symbols() { ServerUtils.ApplyArgs(args, reporter); if (Parse() && Resolve()) { var symbolTable = new SymbolTable(dafnyProgram); var symbols = symbolTable.CalculateSymbols(); Console.WriteLine("SYMBOLS_START " + ConvertToJson(symbols) + " SYMBOLS_END"); } else { Console.WriteLine("SYMBOLS_START [] SYMBOLS_END"); } }
public void DotGraph() { ServerUtils.ApplyArgs(args, reporter); if (Parse() && Resolve() && Translate()) { foreach (var boogieProgram in boogiePrograms) { BoogieOnce(boogieProgram.Item1, boogieProgram.Item2); foreach (var impl in boogieProgram.Item2.Implementations) { using (StreamWriter sw = new StreamWriter(fname + impl.Name + ".dot")) { sw.Write(boogieProgram.Item2.ProcessLoops(impl).ToDot()); } } } } }
public void CounterExample() { var listArgs = args.ToList(); listArgs.Add("/mv:" + CounterExampleProvider.ModelBvd); ServerUtils.ApplyArgs(listArgs.ToArray(), reporter); try { if (Parse() && Resolve() && Translate()) { var counterExampleProvider = new CounterExampleProvider(); foreach (var boogieProgram in boogiePrograms) { RemoveExistingModel(); BoogieOnce(boogieProgram.Item1, boogieProgram.Item2); var model = counterExampleProvider.LoadCounterModel(); Console.WriteLine("COUNTEREXAMPLE_START " + ConvertToJson(model) + " COUNTEREXAMPLE_END"); } } } catch (Exception e) { Console.WriteLine("Error collection models: " + e.Message); } }
public bool Verify() { ServerUtils.ApplyArgs(args, reporter); return(Parse() && Resolve() && Translate() && Boogie()); }