@@ -31,6 +31,10 @@ struct language_entryt
31
31
typedef std::list<language_entryt> languagest;
32
32
languagest languages;
33
33
34
+ // / Register a language
35
+ // / Note: registering a language is required for using the functions
36
+ // / in language_util.h
37
+ // / \param factory: a language factory, e.g. `new_ansi_c_language`
34
38
void register_language (language_factoryt factory)
35
39
{
36
40
languages.push_back (language_entryt ());
@@ -40,6 +44,9 @@ void register_language(language_factoryt factory)
40
44
languages.back ().mode =l->id ();
41
45
}
42
46
47
+ // / Get the language corresponding to the given mode
48
+ // / \param mode: the mode, e.g. `ID_C`
49
+ // / \return the language or `nullptr` if the language has not been registered
43
50
std::unique_ptr<languaget> get_language_from_mode (const irep_idt &mode)
44
51
{
45
52
for (const auto &language : languages)
@@ -87,6 +94,10 @@ get_language_from_identifier(const namespacet &ns, const irep_idt &identifier)
87
94
return language;
88
95
}
89
96
97
+ // / Get the language corresponding to the registered file name extensions
98
+ // / \param filename: a filename
99
+ // / \return the corresponding language or `nullptr` if the extension cannot
100
+ // / be resolved to any registered language
90
101
std::unique_ptr<languaget> get_language_from_filename (
91
102
const std::string &filename)
92
103
{
@@ -122,6 +133,8 @@ std::unique_ptr<languaget> get_language_from_filename(
122
133
return nullptr ;
123
134
}
124
135
136
+ // / Returns the default language
137
+ // / \return the first registered language
125
138
std::unique_ptr<languaget> get_default_language ()
126
139
{
127
140
PRECONDITION (!languages.empty ());
0 commit comments