cprover
Toggle main menu visibility
Loading...
Searching...
No Matches
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 "
ctoken.h
"
16
17
#include <iosfwd>
18
#include <optional>
19
#include <vector>
20
21
struct
c_declarationt
22
{
23
// could be C++20 std::span to avoid copying
24
using
tokenst
= std::vector<ctokent>;
25
26
tokenst
pre_declarator
;
27
tokenst
declarator
;
28
tokenst
post_declarator
;
29
tokenst
initializer
;
30
31
void
print
(std::ostream &)
const
;
32
bool
is_function
()
const
;
33
bool
has_body
()
const
;
34
std::optional<ctokent>
declared_identifier
()
const
;
35
};
36
37
using
c_translation_unitt
= std::vector<c_declarationt>;
38
39
c_translation_unitt
parse_c
(std::istream &);
40
41
std::ostream &
operator<<
(std::ostream &,
const
c_declarationt
&);
42
43
#endif
// CPROVER_CRANGLER_MINI_C_PARSER_H
ctoken.h
ctoken
parse_c
c_translation_unitt parse_c(std::istream &)
Definition
mini_c_parser.cpp:392
operator<<
std::ostream & operator<<(std::ostream &, const c_declarationt &)
Definition
mini_c_parser.cpp:79
c_translation_unitt
std::vector< c_declarationt > c_translation_unitt
Definition
mini_c_parser.h:37
c_declarationt
Definition
mini_c_parser.h:22
c_declarationt::has_body
bool has_body() const
Definition
mini_c_parser.cpp:112
c_declarationt::declared_identifier
std::optional< ctokent > declared_identifier() const
Definition
mini_c_parser.cpp:117
c_declarationt::is_function
bool is_function() const
Definition
mini_c_parser.cpp:107
c_declarationt::print
void print(std::ostream &) const
Definition
mini_c_parser.cpp:96
c_declarationt::post_declarator
tokenst post_declarator
Definition
mini_c_parser.h:28
c_declarationt::initializer
tokenst initializer
Definition
mini_c_parser.h:29
c_declarationt::declarator
tokenst declarator
Definition
mini_c_parser.h:27
c_declarationt::pre_declarator
tokenst pre_declarator
Definition
mini_c_parser.h:26
c_declarationt::tokenst
std::vector< ctokent > tokenst
Definition
mini_c_parser.h:24
crangler
mini_c_parser.h
Generated by
1.17.0