diff options
author | Gereon Kremer <nafur42@gmail.com> | 2021-08-25 17:19:41 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-26 00:19:41 +0000 |
commit | 71f025753f734ddade5da333dfe2d144fbc13221 (patch) | |
tree | 271e0a03b5612652d5fdb040fa2d7f43e8644aea /src/options/options_handler.cpp | |
parent | 78d29da02099762374adeb694ed96c496c7e1ffc (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.cpp | 34 |
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, |