CBMC
Loading...
Searching...
No Matches
cpp_item.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: C++ Language Type Checking
4
5Author: Daniel Kroening, kroening@cs.cmu.edu
6
7\*******************************************************************/
8
11
12#ifndef CPROVER_CPP_CPP_ITEM_H
13#define CPROVER_CPP_CPP_ITEM_H
14
15#include "cpp_declaration.h"
16#include "cpp_linkage_spec.h"
17#include "cpp_namespace_spec.h"
18#include "cpp_using.h"
19#include "cpp_static_assert.h"
20
21class cpp_itemt:public irept
22{
23public:
24 // declaration
25
31
37
39 {
41 return (const cpp_declarationt &)*this;
42 }
43
44 bool is_declaration() const
45 {
46 return id()==ID_cpp_declaration;
47 }
48
49 // linkage spec
50
56
62
64 {
66 return (const cpp_linkage_spect &)*this;
67 }
68
69 bool is_linkage_spec() const
70 {
71 return id()==ID_cpp_linkage_spec;
72 }
73
74 // namespace
75
81
87
89 {
91 return (const cpp_namespace_spect &)*this;
92 }
93
94 bool is_namespace_spec() const
95 {
96 return id()==ID_cpp_namespace_spec;
97 }
98
99 // using
100
102 {
104 return (cpp_usingt &)*this;
105 }
106
108 {
110 return (cpp_usingt &)*this;
111 }
112
113 const cpp_usingt &get_using() const
114 {
116 return (const cpp_usingt &)*this;
117 }
118
119 bool is_using() const
120 {
121 return id()==ID_cpp_using;
122 }
123
124 // static assertion
125
131
137
138 bool is_static_assert() const
139 {
140 return id()==ID_cpp_static_assert;
141 }
142
144 {
145 return static_cast<const source_locationt &>(
147 }
148};
149
150#endif // CPROVER_CPP_CPP_ITEM_H
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Definition ai.h:562
cpp_static_assertt & make_static_assert()
Definition cpp_item.h:126
bool is_namespace_spec() const
Definition cpp_item.h:94
const cpp_namespace_spect & get_namespace_spec() const
Definition cpp_item.h:88
cpp_namespace_spect & get_namespace_spec()
Definition cpp_item.h:82
cpp_linkage_spect & make_linkage_spec()
Definition cpp_item.h:51
const source_locationt & source_location() const
Definition cpp_item.h:143
const cpp_usingt & get_using() const
Definition cpp_item.h:113
cpp_usingt & get_using()
Definition cpp_item.h:107
cpp_namespace_spect & make_namespace_spec()
Definition cpp_item.h:76
cpp_declarationt & get_declaration()
Definition cpp_item.h:32
cpp_linkage_spect & get_linkage_spec()
Definition cpp_item.h:57
const cpp_declarationt & get_declaration() const
Definition cpp_item.h:38
const cpp_linkage_spect & get_linkage_spec() const
Definition cpp_item.h:63
cpp_static_assertt & get_static_assert()
Definition cpp_item.h:132
bool is_static_assert() const
Definition cpp_item.h:138
cpp_usingt & make_using()
Definition cpp_item.h:101
bool is_using() const
Definition cpp_item.h:119
cpp_declarationt & make_declaration()
Definition cpp_item.h:26
bool is_declaration() const
Definition cpp_item.h:44
bool is_linkage_spec() const
Definition cpp_item.h:69
There are a large number of kinds of tree structured or tree-like data in CPROVER.
Definition irep.h:364
const irept & find(const irep_idt &name) const
Definition irep.cpp:93
const irep_idt & id() const
Definition irep.h:388
C++ Language Type Checking.
C++ Language Type Checking.
C++ Language Type Checking.
C++ Language Type Checking.
C++ Language Type Checking.
#define PRECONDITION(CONDITION)
Definition invariant.h:463