10 #ifndef CPROVER_ANSI_C_ANSI_C_LANGUAGE_H 11 #define CPROVER_ANSI_C_ANSI_C_LANGUAGE_H 25 std::istream &instream,
26 const std::string &path,
27 std::ostream &outstream)
override;
30 std::istream &instream,
31 const std::string &path)
override;
38 const std::string &module)
override;
61 const std::string &code,
62 const std::string &module,
67 {
return util_make_unique<ansi_c_languaget>(); }
69 std::string
id()
const override {
return "C"; }
70 std::string
description()
const override {
return "ANSI-C 99"; }
71 std::set<std::string>
extensions()
const override;
82 #endif // CPROVER_ANSI_C_ANSI_C_LANGUAGE_H The type of an expression.
~ansi_c_languaget() override
bool typecheck(symbol_tablet &symbol_table, const std::string &module) override
ansi_c_parse_treet parse_tree
std::unique_ptr< languaget > new_language() override
bool parse(std::istream &instream, const std::string &path) override
bool to_expr(const std::string &code, const std::string &module, exprt &expr, const namespacet &ns) override
Parses the given string into an expression.
std::string description() const override
bool generate_support_functions(symbol_tablet &symbol_table) override
Create language-specific support functions, such as __CPROVER_start, __CPROVER_initialize and languag...
bool preprocess(std::istream &instream, const std::string &path, std::ostream &outstream) override
ANSI-C preprocessing.
Abstract interface to support a programming language.
bool type_to_name(const typet &type, std::string &name, const namespacet &ns) override
Encodes the given type in a language-specific way.
void show_parse(std::ostream &out) override
Base class for all expressions.
std::string id() const override
bool from_type(const typet &type, std::string &code, const namespacet &ns) override
Formats the given type in a language-specific way.
std::set< std::string > extensions() const override
bool from_expr(const exprt &expr, std::string &code, const namespacet &ns) override
Formats the given expression in a language-specific way.
std::unique_ptr< languaget > new_ansi_c_language()
void modules_provided(std::set< std::string > &modules) override