cprover
json_parser.cpp
Go to the documentation of this file.
1 /*******************************************************************\
2 
3 Module:
4 
5 Author: Daniel Kroening, kroening@kroening.com
6 
7 \*******************************************************************/
8 
9 #include "json_parser.h"
10 
11 #include <fstream>
12 
14 
15 // 'do it all' function
17  std::istream &in,
18  const std::string &filename,
20  jsont &dest)
21 {
23  json_parser.set_file(filename);
24  json_parser.in=&in;
26 
27  bool result=json_parser.parse();
28 
29  // save result
30  if(json_parser.stack.size()==1)
31  dest.swap(json_parser.stack.top());
32 
33  // save some memory
35 
36  return result;
37 }
38 
39 // 'do it all' function
41  const std::string &filename,
43  jsont &dest)
44 {
45  std::ifstream in(filename);
46 
47  if(!in)
48  return true;
49 
50  return parse_json(in, filename, message_handler, dest);
51 }
virtual bool parse() override
Definition: json_parser.h:30
std::istream * in
Definition: parser.h:26
Definition: json.h:23
bool parse_json(std::istream &in, const std::string &filename, message_handlert &message_handler, jsont &dest)
Definition: json_parser.cpp:16
stackt stack
Definition: json_parser.h:26
void set_file(const irep_idt &file)
Definition: parser.h:85
virtual void set_message_handler(message_handlert &_message_handler)
Definition: message.h:148
json_parsert json_parser
Definition: json_parser.cpp:13
virtual void clear() override
Definition: json_parser.h:47
void swap(jsont &other)
Definition: json.cpp:158
goto_programt coverage_criteriont message_handlert & message_handler
Definition: cover.cpp:66