12 #ifndef CPROVER_UTIL_LANGUAGE_H 13 #define CPROVER_UTIL_LANGUAGE_H 36 std::istream &instream,
37 const std::string &path,
38 std::ostream &outstream) {
return false; }
41 std::istream &instream,
42 const std::string &path)=0;
47 const std::string &module,
48 std::set<std::string> &modules);
78 const std::string &module)=0;
82 virtual std::string
id()
const {
return ""; }
85 {
return std::set<std::string>(); }
109 const std::string &code,
110 const std::string &module,
121 #endif // CPROVER_UTIL_LANGUAGE_H The type of an expression.
virtual std::set< std::string > extensions() const
virtual std::string description() const
virtual void get_language_options(const cmdlinet &)
virtual bool type_to_name(const typet &type, std::string &name, const namespacet &ns)
virtual bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream)
virtual void modules_provided(std::set< std::string > &modules)
virtual bool typecheck(symbol_tablet &symbol_table, const std::string &module)=0
virtual bool interfaces(symbol_tablet &symbol_table)
virtual std::string id() const
virtual void lazy_methods_provided(std::set< irep_idt > &methods) const
virtual bool to_expr(const std::string &code, const std::string &module, exprt &expr, const namespacet &ns)=0
virtual bool from_type(const typet &type, std::string &code, const namespacet &ns)
virtual void show_parse(std::ostream &out)=0
virtual languaget * new_language()=0
Base class for all expressions.
virtual void dependencies(const std::string &module, std::set< std::string > &modules)
virtual void convert_lazy_method(const irep_idt &id, symbol_tablet &)
virtual bool from_expr(const exprt &expr, std::string &code, const namespacet &ns)
virtual bool parse(std::istream &instream, const std::string &path)=0