CBMC
mini_c_parser.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: Mini C Parser
4
5
Author: Daniel Kroening, dkr@amazon.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_CRANGLER_MINI_C_PARSER_H
13
#define CPROVER_CRANGLER_MINI_C_PARSER_H
14
15
#include "
cscanner.h
"
16
17
#include <iosfwd>
18
#include <vector>
19
20
#include <
util/optional.h
>
21
22
struct
c_declarationt
23
{
24
// could be C++20 std::span to avoid copying
25
using
tokenst
= std::vector<ctokent>;
26
27
tokenst
pre_declarator
;
28
tokenst
declarator
;
29
tokenst
post_declarator
;
30
tokenst
initializer
;
31
32
void
print
(std::ostream &)
const
;
33
bool
is_function
()
const
;
34
bool
has_body
()
const
;
35
optionalt<ctokent>
declared_identifier
()
const
;
36
};
37
38
using
c_translation_unitt
= std::vector<c_declarationt>;
39
40
c_translation_unitt
parse_c
(std::istream &);
41
42
std::ostream &
operator<<
(std::ostream &,
const
c_declarationt
&);
43
44
#endif // CPROVER_CRANGLER_MINI_C_PARSER_H
parse_c
c_translation_unitt parse_c(std::istream &)
Definition:
mini_c_parser.cpp:392
optional.h
cscanner.h
c_declarationt::print
void print(std::ostream &) const
Definition:
mini_c_parser.cpp:96
c_declarationt::is_function
bool is_function() const
Definition:
mini_c_parser.cpp:107
c_declarationt::initializer
tokenst initializer
Definition:
mini_c_parser.h:30
c_declarationt::declarator
tokenst declarator
Definition:
mini_c_parser.h:28
c_declarationt::has_body
bool has_body() const
Definition:
mini_c_parser.cpp:112
c_declarationt::pre_declarator
tokenst pre_declarator
Definition:
mini_c_parser.h:27
optionalt
nonstd::optional< T > optionalt
Definition:
optional.h:35
c_declarationt::tokenst
std::vector< ctokent > tokenst
Definition:
mini_c_parser.h:25
c_translation_unitt
std::vector< c_declarationt > c_translation_unitt
Definition:
mini_c_parser.h:38
operator<<
std::ostream & operator<<(std::ostream &, const c_declarationt &)
Definition:
mini_c_parser.cpp:79
c_declarationt::post_declarator
tokenst post_declarator
Definition:
mini_c_parser.h:29
c_declarationt
Definition:
mini_c_parser.h:22
c_declarationt::declared_identifier
optionalt< ctokent > declared_identifier() const
Definition:
mini_c_parser.cpp:117
src
crangler
mini_c_parser.h
Generated by
1.8.17