10 #ifndef CPROVER_LANGAPI_LANGUAGE_FILE_H 11 #define CPROVER_LANGAPI_LANGUAGE_FILE_H 64 typedef std::map<std::string, language_filet>
file_mapt;
79 return file_map.emplace(filename, std::move(language_file)).first->second;
86 std::unordered_set<irep_idt> files_methods;
87 for(
const std::pair<irep_idt, language_filet *> &method :
lazy_method_map)
89 if(method.second == language_file)
90 files_methods.insert(method.first);
92 for(
const irep_idt &method_name : files_methods)
128 it->second->convert_lazy_method(
id, symbol_table);
150 const std::string &module);
153 #endif // CPROVER_UTIL_LANGUAGE_FILE_H
void convert_lazy_method(const irep_idt &id, symbol_table_baset &symbol_table)
void show_parse(std::ostream &out)
bool interfaces(symbol_tablet &symbol_table)
language_filet & add_file(const std::string &filename)
std::set< std::string > modulest
bool can_convert_lazy_method(const irep_idt &id) const
std::unique_ptr< languaget > language
bool typecheck_module(symbol_tablet &symbol_table, language_modulet &module)
std::map< std::string, language_filet > file_mapt
Abstract interface to support a programming language.
bool typecheck(symbol_tablet &symbol_table)
#define PRECONDITION(CONDITION)
std::map< irep_idt, language_filet * > lazy_method_mapt
lazy_method_mapt lazy_method_map
std::map< std::string, language_modulet > module_mapt
language_filet(const std::string &filename)
void set_should_generate_opaque_method_stubs(bool stubs_enabled)
Turn on or off stub generation for all the languages.
bool has_symbol(const irep_idt &name) const
Check whether a symbol exists in the symbol table.
~language_filet()
To avoid compiler errors, the complete definition of a pointed-to type must be visible at the point a...
The symbol table base class interface.
void remove_file(const std::string &filename)
bool generate_support_functions(symbol_tablet &symbol_table)
void convert_lazy_method(const irep_idt &id, symbol_table_baset &symbol_table)