cprover
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
#include "
ansi_c_parse_tree.h
"
17
18
bool
ansi_c_typecheck
(
19
ansi_c_parse_treet
&parse_tree,
20
symbol_tablet
&symbol_table,
21
const
std::string &module,
22
message_handlert
&message_handler);
23
24
bool
ansi_c_typecheck
(
25
exprt
&expr,
26
message_handlert
&message_handler,
27
const
namespacet
&ns);
28
29
class
ansi_c_typecheckt
:
public
c_typecheck_baset
30
{
31
public
:
32
ansi_c_typecheckt
(
33
ansi_c_parse_treet
&_parse_tree,
34
symbol_tablet
&_symbol_table,
35
const
std::string &_module,
36
message_handlert
&_message_handler):
37
c_typecheck_baset
(_symbol_table, _module, _message_handler),
38
parse_tree
(_parse_tree)
39
{
40
}
41
42
ansi_c_typecheckt
(
43
ansi_c_parse_treet
&_parse_tree,
44
symbol_tablet
&_symbol_table1,
45
const
symbol_tablet
&_symbol_table2,
46
const
std::string &_module,
47
message_handlert
&_message_handler):
48
c_typecheck_baset
(_symbol_table1, _symbol_table2,
49
_module, _message_handler),
50
parse_tree
(_parse_tree)
51
{
52
}
53
54
virtual
~ansi_c_typecheckt
() { }
55
56
virtual
void
typecheck
();
57
58
protected
:
59
ansi_c_parse_treet
&
parse_tree
;
60
};
61
62
#endif // CPROVER_ANSI_C_ANSI_C_TYPECHECK_H
c_typecheck_baset
Definition:
c_typecheck_base.h:25
symbol_tablet
The symbol table.
Definition:
symbol_table.h:19
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:32
c_typecheck_base.h
ansi_c_parse_tree.h
ansi_c_typecheckt::parse_tree
ansi_c_parse_treet & parse_tree
Definition:
ansi_c_typecheck.h:59
exprt
Base class for all expressions.
Definition:
expr.h:54
ansi_c_typecheckt::~ansi_c_typecheckt
virtual ~ansi_c_typecheckt()
Definition:
ansi_c_typecheck.h:54
namespacet
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition:
namespace.h:93
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:26
ansi_c_typecheckt::typecheck
virtual void typecheck()
Definition:
ansi_c_typecheck.cpp:14
ansi_c_parse_treet
Definition:
ansi_c_parse_tree.h:17
message_handlert
Definition:
message.h:24
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:42
ansi_c_typecheckt
Definition:
ansi_c_typecheck.h:29
ansi-c
ansi_c_typecheck.h
Generated by
1.8.16