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 
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 
31 {
32 public:
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 
59 protected:
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