summaryrefslogtreecommitdiff
path: root/src/options/options_handler.cpp
diff options
context:
space:
mode:
authorGereon Kremer <nafur42@gmail.com>2021-08-25 17:19:41 -0700
committerGitHub <noreply@github.com>2021-08-26 00:19:41 +0000
commit71f025753f734ddade5da333dfe2d144fbc13221 (patch)
tree271e0a03b5612652d5fdb040fa2d7f43e8644aea /src/options/options_handler.cpp
parent78d29da02099762374adeb694ed96c496c7e1ffc (diff)
Consolidate language types (#7065)
This PR combines the two enums InputLanguage and OutputLanguage into a single Language type. It makes sure that AST is not used as input language using a predicate whenever the option is set.
Diffstat (limited to 'src/options/options_handler.cpp')
-rw-r--r--src/options/options_handler.cpp34
1 files changed, 13 insertions, 21 deletions
diff --git a/src/options/options_handler.cpp b/src/options/options_handler.cpp
index 42a63b47c..149aa767b 100644
--- a/src/options/options_handler.cpp
+++ b/src/options/options_handler.cpp
@@ -494,41 +494,33 @@ void OptionsHandler::enableOutputTag(const std::string& option,
static_cast<size_t>(stringToOutputTag(optarg)));
}
-OutputLanguage OptionsHandler::stringToOutputLanguage(const std::string& option,
- const std::string& flag,
- const std::string& optarg)
+Language OptionsHandler::stringToLanguage(const std::string& option,
+ const std::string& flag,
+ const std::string& optarg)
{
if(optarg == "help") {
d_options->base.languageHelp = true;
- return language::output::LANG_AUTO;
+ return Language::LANG_AUTO;
}
try {
- return language::toOutputLanguage(optarg);
+ return language::toLanguage(optarg);
} catch(OptionException& oe) {
- throw OptionException("Error in " + option + ": " + oe.getMessage() +
- "\nTry --output-language help");
+ throw OptionException("Error in " + option + ": " + oe.getMessage()
+ + "\nTry --lang help");
}
Unreachable();
}
-InputLanguage OptionsHandler::stringToInputLanguage(const std::string& option,
- const std::string& flag,
- const std::string& optarg)
+void OptionsHandler::languageIsNotAST(const std::string& option,
+ const std::string& flag,
+ Language lang)
{
- if(optarg == "help") {
- d_options->base.languageHelp = true;
- return language::input::LANG_AUTO;
- }
-
- try {
- return language::toInputLanguage(optarg);
- } catch(OptionException& oe) {
- throw OptionException("Error in " + option + ": " + oe.getMessage() + "\nTry --lang help");
+ if (lang == Language::LANG_AST)
+ {
+ throw OptionException("Language LANG_AST is not allowed for " + flag);
}
-
- Unreachable();
}
void OptionsHandler::setDumpStream(const std::string& option,
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback