cprover
Loading...
Searching...
No Matches
json_parser.cpp
Go to the documentation of this file.
1/*******************************************************************\
2
3Module:
4
5Author: 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,
19 message_handlert &message_handler,
20 jsont &dest)
21{
23 json_parser.set_file(filename);
24 json_parser.in=&in;
25 json_parser.set_message_handler(message_handler);
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,
42 message_handlert &message_handler,
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:29
stackt stack
Definition: json_parser.h:25
virtual void clear() override
Definition: json_parser.h:46
Definition: json.h:27
void swap(jsont &other)
Definition: json.cpp:161
virtual void set_message_handler(message_handlert &_message_handler)
Definition: message.h:179
std::istream * in
Definition: parser.h:26
void set_file(const irep_idt &file)
Definition: parser.h:85
bool parse_json(std::istream &in, const std::string &filename, message_handlert &message_handler, jsont &dest)
Definition: json_parser.cpp:16
json_parsert json_parser
Definition: json_parser.cpp:13