Go to the documentation of this file.
12 #ifndef CPROVER_JSIL_JSIL_TYPECHECK_H
13 #define CPROVER_JSIL_JSIL_TYPECHECK_H
15 #include <unordered_set>
107 #endif // CPROVER_JSIL_JSIL_TYPECHECK_H
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
void typecheck_expr_operands(exprt &expr)
void update_expr_type(exprt &expr, const typet &type)
void typecheck_expr_has_field(exprt &expr)
void typecheck_expr_binary_compare(exprt &expr)
void typecheck_expr_unary_string(exprt &expr)
void typecheck_expr_ref(exprt &expr)
void typecheck_function_call(code_function_callt &function_call)
void typecheck_return(code_frontend_returnt &)
virtual std::string to_string(const exprt &expr)
The type of an expression, extends irept.
void typecheck_assign(code_assignt &code)
void typecheck_expr_base(exprt &expr)
codet representation of a try/catch block.
void typecheck_try_catch(code_try_catcht &code)
void typecheck_type(typet &type)
virtual ~jsil_typecheckt()
void typecheck_expr_index(exprt &expr)
Base class for all expressions.
void typecheck_code(codet &code)
Expression to hold a symbol (variable)
std::unordered_set< irep_idt > already_typechecked
codet representation of an if-then-else statement.
void typecheck_expr_side_effect_throw(side_effect_expr_throwt &expr)
void typecheck_expr_unary_num(exprt &expr)
A namespacet is essentially one or two symbol tables bound together, to allow for symbol lookups in t...
goto_instruction_codet representation of a function call statement.
void typecheck_non_type_symbol(symbolt &symbol)
typechecking procedure declaration; any other symbols should have been typechecked during typecheckin...
void typecheck_expr_main(exprt &expr)
jsil_typecheckt(symbol_table_baset &_symbol_table, message_handlert &_message_handler)
The symbol table base class interface.
void typecheck_expr_unary_boolean(exprt &expr)
void typecheck_expr_proto_field(exprt &expr)
void typecheck_ifthenelse(code_ifthenelset &code)
void typecheck_expr_proto_obj(exprt &expr)
virtual void typecheck_expr(exprt &expr)
void typecheck_expr_binary_boolean(exprt &expr)
void typecheck_symbol_expr(symbol_exprt &symbol_expr)
codet representation of a "return from a function" statement.
symbol_table_baset & symbol_table
void typecheck_expr_constant(exprt &expr)
void typecheck_type_symbol(symbolt &)
void typecheck_expr_concatenation(exprt &expr)
void typecheck_block(codet &code)
void typecheck_expr_binary_arith(exprt &expr)
A side_effect_exprt representation of a side effect that throws an exception.
bool jsil_typecheck(symbol_tablet &symbol_table, message_handlert &message_handler)
void typecheck_expr_subtype(exprt &expr)
void typecheck_expr_field(exprt &expr)
A goto_instruction_codet representing an assignment in the program.
irep_idt add_prefix(const irep_idt &ds)
Prefix parameters and variables with a procedure name.
void typecheck_exp_binary_equal(exprt &expr)
void make_type_compatible(exprt &expr, const typet &type, bool must)
void typecheck_expr_delete(exprt &expr)
Data structure for representing an arbitrary statement in a program.