ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
mode.h
Go to the documentation of this file.
1#ifndef CPROVER_MODE_H
2#define CPROVER_MODE_H
3
4#include <string>
5#include <memory> /* std::unique_ptr */
6
7/* forward declarations */
8class languaget;
9
10enum class language_idt : int
11{
12 NONE = -1,
19};
20
21const char *language_name(language_idt id);
22language_idt language_id_by_name(const std::string &name);
23language_idt language_id_by_path(const std::string &path);
24
25// Table recording details about language modes
26
28{
30 languaget *(*new_language)();
31};
32
33// List of language modes that are going to be supported in the final tool.
34// Must be declared by user of langapi, must end with LANGAPI_MODE_END.
35
36extern const mode_table_et mode_table[];
37
46
47// List of language entries, one can put in the mode table:
48#define LANGAPI_MODE_CLANG_C {language_idt::C, &new_clang_c_language}
49#define LANGAPI_MODE_CLANG_CPP {language_idt::CPP, &new_clang_cpp_language}
50#define LANGAPI_MODE_SOLAST {language_idt::SOLIDITY, &new_solidity_language}
51#define LANGAPI_MODE_C {language_idt::C, &new_ansi_c_language}
52#define LANGAPI_MODE_CPP {language_idt::CPP, &new_cpp_language}
53#define LANGAPI_MODE_JIMPLE {language_idt::JIMPLE, &new_jimple_language}
54#define LANGAPI_MODE_PYTHON {language_idt::PYTHON, &new_python_language}
55#define LANGAPI_MODE_LD {language_idt::LD, &new_ld_language}
56
57#define LANGAPI_MODE_END {language_idt::NONE, NULL}
58
59std::unique_ptr<languaget> new_language(language_idt lang);
60
61#endif
const mode_table_et mode_table[]
Definition c2goto.cpp:118
Definition language.h:16
#define C
Definition exp2f.c:25
languaget * new_clang_cpp_language()
Definition clang_cpp_language.cpp:23
languaget * new_clang_c_language()
Definition clang_c_language.cpp:31
std::unique_ptr< languaget > new_language(language_idt lang)
Definition mode.cpp:129
const char * language_name(language_idt id)
Definition mode.cpp:68
language_idt language_id_by_name(const std::string &name)
Definition mode.cpp:74
language_idt
Definition mode.h:11
@ PYTHON
Definition mode.h:17
@ CPP
Definition mode.h:14
@ SOLIDITY
Definition mode.h:15
@ JIMPLE
Definition mode.h:16
@ LD
Definition mode.h:18
@ NONE
Definition mode.h:12
languaget * new_ld_language()
Definition ld_language.cpp:14
languaget * new_python_language()
Definition python_language.cpp:80
languaget * new_solidity_language()
Definition solidity_language.cpp:55
languaget * new_jimple_language()
Definition jimple-language.cpp:6
languaget * new_cpp_language()
language_idt language_id_by_path(const std::string &path)
Definition mode.cpp:87
languaget * new_ansi_c_language()
Definition path.py:1
Definition mode.h:28
language_idt language_id
Definition mode.h:29