public Boolean parse_file(string filename, string methodname)
        {
            // init parser arguments
            DafnyFile usedFile = new DafnyFile(filename);
            var       files    = new List <DafnyFile>();

            files.Add(usedFile);
            ErrorReporter r = new ConsoleErrorReporter();

            Microsoft.Dafny.Program ret;
            DafnyOptions.Install(new DafnyOptions(r));

            // run parser
            string err = Main.ParseCheck(files, filename, r, out ret);

            //if (err != null)
            //{
            //    return false;
            //}

            // program parsed well
            dafny_program = ret;

            // list of all methods
            var decls             = ret.Modules();
            List <TopLevelDecl> a = new List <TopLevelDecl>();

            foreach (Microsoft.Dafny.ModuleDefinition dec in decls)
            {
                a.AddRange(dec.TopLevelDecls);
            }

            // look for methodname
            var callables = ModuleDefinition.AllCallables(a);

            foreach (Microsoft.Dafny.ICallable method in callables)
            {
                if (method is Microsoft.Dafny.Method)
                {
                    Microsoft.Dafny.Method m = (Microsoft.Dafny.Method)method;
                    if (m.Name == methodname)
                    {
                        currentMethod = m;
                        return(true);
                    }
                }
            }

            return(false);
        }
 public DafnyCodeParser()
 {
     dafny_program = null;
     currentMethod = null;
 }