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 
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
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