cprover
Loading...
Searching...
No Matches
json_parser.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module:
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
9
10
#ifndef CPROVER_JSON_JSON_PARSER_H
11
#define CPROVER_JSON_JSON_PARSER_H
12
13
#include <stack>
14
15
#include <
util/parser.h
>
16
#include <
util/json.h
>
17
18
class
json_parsert
:
public
parsert
19
{
20
public
:
21
explicit
json_parsert
(
message_handlert
&message_handler)
22
:
parsert
(message_handler)
23
{
24
}
25
26
typedef
std::stack<jsont, std::vector<jsont> >
stackt
;
27
stackt
stack
;
28
29
jsont
&
top
() {
return
stack
.top(); }
30
31
bool
parse
()
override
;
32
33
void
push
(
const
jsont
&x)
34
{
35
stack
.push(x);
36
}
37
38
void
pop
(
jsont
&dest)
39
{
40
PRECONDITION
(!
stack
.empty());
41
dest.
swap
(
stack
.top());
42
stack
.pop();
43
}
44
};
45
46
// 'do it all' functions
47
bool
parse_json
(
48
std::istream &in,
49
const
std::string &filename,
50
message_handlert
&message_handler,
51
jsont
&dest);
52
53
bool
parse_json
(
54
const
std::string &filename,
55
message_handlert
&message_handler,
56
jsont
&dest);
57
58
#endif
// CPROVER_JSON_JSON_PARSER_H
json_parsert
Definition
json_parser.h:19
json_parsert::pop
void pop(jsont &dest)
Definition
json_parser.h:38
json_parsert::push
void push(const jsont &x)
Definition
json_parser.h:33
json_parsert::top
jsont & top()
Definition
json_parser.h:29
json_parsert::stackt
std::stack< jsont, std::vector< jsont > > stackt
Definition
json_parser.h:26
json_parsert::parse
bool parse() override
Definition
json_parser.cpp:17
json_parsert::stack
stackt stack
Definition
json_parser.h:27
json_parsert::json_parsert
json_parsert(message_handlert &message_handler)
Definition
json_parser.h:21
jsont
Definition
json.h:27
jsont::swap
void swap(jsont &other)
Definition
json.cpp:161
message_handlert
Definition
message.h:27
parsert
Definition
parser.h:24
json.h
parse_json
bool parse_json(std::istream &in, const std::string &filename, message_handlert &message_handler, jsont &dest)
Definition
json_parser.cpp:27
parser.h
Parser utilities.
PRECONDITION
#define PRECONDITION(CONDITION)
Definition
invariant.h:463
json
json_parser.h
Generated by
1.12.0