CBMC
ansi_c_typecheck.h
Go to the documentation of this file.
1
/*******************************************************************\
2
3
Module: ANSI-C Language Type Checking
4
5
Author: Daniel Kroening, kroening@kroening.com
6
7
\*******************************************************************/
8
11
12
#ifndef CPROVER_ANSI_C_ANSI_C_TYPECHECK_H
13
#define CPROVER_ANSI_C_ANSI_C_TYPECHECK_H
14
15
#include "
c_typecheck_base.h
"
16
17
class
ansi_c_parse_treet
;
18
19
bool
ansi_c_typecheck
(
20
ansi_c_parse_treet
&parse_tree,
21
symbol_tablet
&symbol_table,
22
const
std::string &module,
23
message_handlert
&message_handler);
24
25
bool
ansi_c_typecheck
(
26
exprt
&expr,
27
message_handlert
&message_handler,
28
const
namespacet
&ns);
29
30
class
ansi_c_typecheckt
:
public
c_typecheck_baset
31
{
32
public
:
33
ansi_c_typecheckt
(
34
ansi_c_parse_treet
&_parse_tree,
35
symbol_tablet
&_symbol_table,
36
const
std::string &_module,
37
message_handlert
&_message_handler):
38
c_typecheck_baset
(_symbol_table, _module, _message_handler),
39
parse_tree
(_parse_tree)
40
{
41
}
42
43
ansi_c_typecheckt
(
44
ansi_c_parse_treet
&_parse_tree,
45
symbol_tablet
&_symbol_table1,
46
const
symbol_tablet
&_symbol_table2,
47
const
std::string &_module,
48
message_handlert
&_message_handler):
49
c_typecheck_baset
(_symbol_table1, _symbol_table2,
50
_module, _message_handler),
51
parse_tree
(_parse_tree)
52
{
53
}
54
55
virtual
~ansi_c_typecheckt
() { }
56
57
virtual
void
typecheck
();
58
59
protected
:
60
ansi_c_parse_treet
&
parse_tree
;
61
};
62
63
#endif // CPROVER_ANSI_C_ANSI_C_TYPECHECK_H
c_typecheck_baset
Definition:
c_typecheck_base.h:26
symbol_tablet
The symbol table.
Definition:
symbol_table.h:13
ansi_c_typecheckt::ansi_c_typecheckt
ansi_c_typecheckt(ansi_c_parse_treet &_parse_tree, symbol_tablet &_symbol_table, const std::string &_module, message_handlert &_message_handler)
Definition:
ansi_c_typecheck.h:33
c_typecheck_base.h
ansi_c_typecheckt::parse_tree
ansi_c_parse_treet & parse_tree
Definition:
ansi_c_typecheck.h:60
exprt
Base class for all expressions.
Definition:
expr.h:55
ansi_c_typecheckt::~ansi_c_typecheckt
virtual ~ansi_c_typecheckt()
Definition:
ansi_c_typecheck.h:55
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition:
namespace.h:90
ansi_c_typecheck
bool ansi_c_typecheck(ansi_c_parse_treet &parse_tree, symbol_tablet &symbol_table, const std::string &module, message_handlert &message_handler)
Definition:
ansi_c_typecheck.cpp:24
ansi_c_typecheckt::typecheck
virtual void typecheck()
Definition:
ansi_c_typecheck.cpp:16
ansi_c_parse_treet
Definition:
ansi_c_parse_tree.h:17
message_handlert
Definition:
message.h:27
ansi_c_typecheckt::ansi_c_typecheckt
ansi_c_typecheckt(ansi_c_parse_treet &_parse_tree, symbol_tablet &_symbol_table1, const symbol_tablet &_symbol_table2, const std::string &_module, message_handlert &_message_handler)
Definition:
ansi_c_typecheck.h:43
ansi_c_typecheckt
Definition:
ansi_c_typecheck.h:30
src
ansi-c
ansi_c_typecheck.h
Generated by
1.8.17