ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
clang_cpp_language.h
Go to the documentation of this file.
1#ifndef CLANG_CPP_FRONTEND_CLANG_CPP_LANGUAGE_H_
2#define CLANG_CPP_FRONTEND_CLANG_CPP_LANGUAGE_H_
3
5
6#define __STDC_LIMIT_MACROS
7#define __STDC_FORMAT_MACROS
8
10{
11public:
12 bool final(contextt &context) override;
13
14 bool typecheck(contextt &context, const std::string &module) override;
15
16 std::string id() const override
17 {
18 return "cpp";
19 }
20
21 // conversion from expression into string
22 bool from_expr(
23 const exprt &expr,
24 std::string &code,
25 const namespacet &ns,
26 unsigned flags) override;
27
28 // conversion from type into string
29 bool from_type(
30 const typet &type,
31 std::string &code,
32 const namespacet &ns,
33 unsigned flags) override;
34
35 languaget *new_language() const override
36 {
37 return new clang_cpp_languaget;
38 }
39
40protected:
41 std::string internal_additions() override;
42 void force_file_type(std::vector<std::string> &compiler_args) override;
43 void build_include_args(std::vector<std::string> &compiler_args) override;
44
45private:
46 void set_language_version();
47};
48
50
51#endif
languaget * new_clang_cpp_language()
Definition clang_cpp_language.cpp:23
std::vector< std::string > compiler_args(std::string tool_name)
Definition clang_c_language.h:99
Definition clang_cpp_language.h:10
std::string internal_additions() override
Definition clang_cpp_language.cpp:94
languaget * new_language() const override
Definition clang_cpp_language.h:35
void force_file_type(std::vector< std::string > &compiler_args) override
Definition clang_cpp_language.cpp:28
bool from_expr(const exprt &expr, std::string &code, const namespacet &ns, unsigned flags) override
Definition clang_cpp_language.cpp:178
void build_include_args(std::vector< std::string > &compiler_args) override
Definition clang_cpp_language.cpp:48
bool typecheck(contextt &context, const std::string &module) override
Definition clang_cpp_language.cpp:128
bool from_type(const typet &type, std::string &code, const namespacet &ns, unsigned flags) override
Definition clang_cpp_language.cpp:188
std::string id() const override
Definition clang_cpp_language.h:16
Definition context.h:57
Definition expr.h:34
Definition language.h:16
Definition module.h:60
Definition namespace.h:10
Definition type.h:9