Go to the documentation of this file.
10 #ifndef CPROVER_LANGAPI_LANGUAGE_FILE_H
11 #define CPROVER_LANGAPI_LANGUAGE_FILE_H
18 #include <unordered_set>
65 typedef std::map<std::string, language_filet>
file_mapt;
80 return file_map.emplace(filename, std::move(language_file)).first->second;
87 std::unordered_set<irep_idt> files_methods;
90 if(method.second == language_file)
91 files_methods.insert(method.first);
93 for(
const irep_idt &method_name : files_methods)
128 it->second->convert_lazy_method(
id, symbol_table);
147 const bool keep_file_local);
151 const std::string &module,
152 const bool keep_file_local);
155 #endif // CPROVER_UTIL_LANGUAGE_FILE_H
Class that provides messages with a built-in verbosity 'level'.
bool has_symbol(const irep_idt &name) const
Check whether a symbol exists in the symbol table.
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
std::map< std::string, language_filet > file_mapt
~language_filet()
To avoid compiler errors, the complete definition of a pointed-to type must be visible at the point a...
lazy_method_mapt lazy_method_map
bool typecheck_module(symbol_tablet &symbol_table, language_modulet &module, const bool keep_file_local)
std::map< std::string, language_modulet > module_mapt
bool typecheck(symbol_tablet &symbol_table, const bool keep_file_local=false)
std::map< irep_idt, language_filet * > lazy_method_mapt
bool generate_support_functions(symbol_tablet &symbol_table)
#define PRECONDITION(CONDITION)
The symbol table base class interface.
void remove_file(const std::string &filename)
void show_parse(std::ostream &out)
language_filet & add_file(const std::string &filename)
std::unique_ptr< languaget > language
void convert_lazy_method(const irep_idt &id, symbol_table_baset &symbol_table)
std::set< std::string > modulest
bool interfaces(symbol_tablet &symbol_table)
language_filet(const std::string &filename)
bool can_convert_lazy_method(const irep_idt &id) const
void convert_lazy_method(const irep_idt &id, symbol_table_baset &symbol_table)