|
virtual void | set_language_options (const optionst &) |
| Set language-specific options. More...
|
|
virtual bool | preprocess (std::istream &instream, const std::string &path, std::ostream &outstream) |
|
virtual bool | parse (std::istream &instream, const std::string &path)=0 |
|
virtual bool | generate_support_functions (symbol_tablet &symbol_table)=0 |
| Create language-specific support functions, such as __CPROVER_start, __CPROVER_initialize and language-specific library functions. More...
|
|
virtual void | dependencies (const std::string &module, std::set< std::string > &modules) |
|
virtual void | modules_provided (std::set< std::string > &modules) |
|
virtual void | methods_provided (std::unordered_set< irep_idt > &methods) const |
| Should fill methods with the symbol identifiers of all methods this languaget can provide a body for, but doesn't populate that body in languaget::typecheck (i.e. More...
|
|
virtual void | convert_lazy_method (const irep_idt &function_id, symbol_table_baset &symbol_table) |
| Requests this languaget should populate the body of method function_id in symbol_table . More...
|
|
virtual bool | final (symbol_table_baset &symbol_table) |
| Final adjustments, e.g. More...
|
|
virtual bool | interfaces (symbol_tablet &symbol_table) |
|
virtual bool | typecheck (symbol_tablet &symbol_table, const std::string &module)=0 |
|
virtual std::string | id () const |
|
virtual std::string | description () const |
|
virtual std::set< std::string > | extensions () const |
|
virtual void | show_parse (std::ostream &out)=0 |
|
virtual bool | from_expr (const exprt &expr, std::string &code, const namespacet &ns) |
| Formats the given expression in a language-specific way. More...
|
|
virtual bool | from_type (const typet &type, std::string &code, const namespacet &ns) |
| Formats the given type in a language-specific way. More...
|
|
virtual bool | type_to_name (const typet &type, std::string &name, const namespacet &ns) |
| Encodes the given type in a language-specific way. More...
|
|
virtual bool | to_expr (const std::string &code, const std::string &module, exprt &expr, const namespacet &ns)=0 |
| Parses the given string into an expression. More...
|
|
virtual std::unique_ptr< languaget > | new_language ()=0 |
|
| languaget () |
|
virtual | ~languaget () |
|
virtual void | set_message_handler (message_handlert &_message_handler) |
|
message_handlert & | get_message_handler () |
|
| messaget () |
|
| messaget (const messaget &other) |
|
messaget & | operator= (const messaget &other) |
|
| messaget (message_handlert &_message_handler) |
|
virtual | ~messaget () |
|
mstreamt & | get_mstream (unsigned message_level) const |
|
mstreamt & | error () const |
|
mstreamt & | warning () const |
|
mstreamt & | result () const |
|
mstreamt & | status () const |
|
mstreamt & | statistics () const |
|
mstreamt & | progress () const |
|
mstreamt & | debug () const |
|
void | conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const |
| Generate output to message_stream using output_generator if the configured verbosity is at least as high as that of message_stream . More...
|
|
Definition at line 39 of file language.h.
virtual bool languaget::generate_support_functions |
( |
symbol_tablet & |
symbol_table | ) |
|
|
pure virtual |
Create language-specific support functions, such as __CPROVER_start, __CPROVER_initialize and language-specific library functions.
This runs after the typecheck
phase but before lazy function loading. Anything that must wait until lazy function loading is done can be deferred until final
, which runs after lazy function loading is complete. Functions introduced here are visible to lazy loading and can influence its decisions (e.g. picking the types of input parameters and globals), whereas anything introduced during final
cannot.
Implemented in java_bytecode_languaget, ansi_c_languaget, json_symtab_languaget, cpp_languaget, and jsil_languaget.
virtual void languaget::methods_provided |
( |
std::unordered_set< irep_idt > & |
methods | ) |
const |
|
inlinevirtual |
Should fill methods
with the symbol identifiers of all methods this languaget
can provide a body for, but doesn't populate that body in languaget::typecheck (i.e.
there is no need to mention methods whose bodies are eagerly generated). It should be prepared to handle a convert_lazy_method
call for any symbol added to methods
.
Reimplemented in java_bytecode_languaget.
Definition at line 94 of file language.h.