cprover
ansi_c_typecheck.h
Go to the documentation of this file.
1/*******************************************************************\
2
3Module: ANSI-C Language Type Checking
4
5Author: 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
18
20 ansi_c_parse_treet &parse_tree,
21 symbol_tablet &symbol_table,
22 const std::string &module,
23 message_handlert &message_handler);
24
26 exprt &expr,
27 message_handlert &message_handler,
28 const namespacet &ns);
29
31{
32public:
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
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
59protected:
61};
62
63#endif // CPROVER_ANSI_C_ANSI_C_TYPECHECK_H
bool ansi_c_typecheck(ansi_c_parse_treet &parse_tree, symbol_tablet &symbol_table, const std::string &module, message_handlert &message_handler)
ANSI-C Language Type Checking.
ansi_c_parse_treet & parse_tree
virtual ~ansi_c_typecheckt()
virtual void typecheck()
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)
ansi_c_typecheckt(ansi_c_parse_treet &_parse_tree, symbol_tablet &_symbol_table, const std::string &_module, message_handlert &_message_handler)
Base class for all expressions.
Definition: expr.h:54
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
Definition: namespace.h:91
The symbol table.
Definition: symbol_table.h:14