CBMC
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
13
json_parsert
json_parser
;
14
15
// 'do it all' function
16
bool
parse_json
(
17
std::istream &in,
18
const
std::string &filename,
19
message_handlert
&message_handler,
20
jsont
&dest)
21
{
22
json_parser
.
clear
();
23
json_parser
.
set_file
(filename);
24
json_parser
.
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
34
json_parser
.
clear
();
35
36
return
result;
37
}
38
39
// 'do it all' function
40
bool
parse_json
(
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
}
json_parser
json_parsert json_parser
Definition:
json_parser.cpp:13
json_parsert
Definition:
json_parser.h:21
jsont
Definition:
json.h:26
json_parser.h
json_parsert::clear
virtual void clear() override
Definition:
json_parser.h:46
json_parsert::stack
stackt stack
Definition:
json_parser.h:25
parsert::in
std::istream * in
Definition:
parser.h:26
jsont::swap
void swap(jsont &other)
Definition:
json.cpp:161
messaget::set_message_handler
virtual void set_message_handler(message_handlert &_message_handler)
Definition:
message.h:179
message_handlert
Definition:
message.h:27
json_parsert::parse
virtual bool parse() override
Definition:
json_parser.h:29
parse_json
bool parse_json(std::istream &in, const std::string &filename, message_handlert &message_handler, jsont &dest)
Definition:
json_parser.cpp:16
parsert::set_file
void set_file(const irep_idt &file)
Definition:
parser.h:85
src
json
json_parser.cpp
Generated by
1.8.17