Branch data Line data Source code
1 : : /****************************************************************************** 2 : : * Top contributors (to current version): 3 : : * Gereon Kremer, Andrew Reynolds, Aina Niemetz 4 : : * 5 : : * This file is part of the cvc5 project. 6 : : * 7 : : * Copyright (c) 2009-2025 by the authors listed in the file AUTHORS 8 : : * in the top-level source directory and their institutional affiliations. 9 : : * All rights reserved. See the file COPYING in the top-level source 10 : : * directory for licensing information. 11 : : * **************************************************************************** 12 : : * 13 : : * Definition of input and output languages. 14 : : */ 15 : : 16 : : #include "options/language.h" 17 : : 18 : : #include "options/option_exception.h" 19 : : 20 : : namespace cvc5::internal { 21 : : 22 : 75069 : std::ostream& operator<<(std::ostream& out, Language lang) 23 : : { 24 [ + + ][ + - ]: 75069 : switch (lang) 25 : : { 26 : 22867 : case Language::LANG_AUTO: out << "LANG_AUTO"; break; 27 : 49486 : case Language::LANG_SMTLIB_V2_6: out << "LANG_SMTLIB_V2_6"; break; 28 : 2716 : case Language::LANG_SYGUS_V2: out << "LANG_SYGUS_V2"; break; 29 : 0 : default: out << "undefined_language"; 30 : : } 31 : 75069 : return out; 32 : : } 33 : : 34 : : namespace language { 35 : : 36 : 30963 : Language toLanguage(const std::string& language) 37 : : { 38 [ + - ][ + + ]: 61926 : if (language == "smtlib" || language == "smt" || language == "smtlib2" 39 [ + + ][ + + ]: 30959 : || language == "smt2" || language == "smtlib2.6" || language == "smt2.6" [ + + ] 40 [ + - ][ + - ]: 61926 : || language == "LANG_SMTLIB_V2_6" || language == "LANG_SMTLIB_V2") [ - + ][ + + ] 41 : : { 42 : 29296 : return Language::LANG_SMTLIB_V2_6; 43 : : } 44 [ + - ]: 2854 : else if (language == "sygus" || language == "LANG_SYGUS" 45 [ + + ][ + + ]: 2854 : || language == "sygus2" || language == "LANG_SYGUS_V2") [ - + ][ + + ] 46 : : { 47 : 1387 : return Language::LANG_SYGUS_V2; 48 : : } 49 [ + + ][ - + ]: 280 : else if (language == "ast" || language == "LANG_AST") [ + + ] 50 : : { 51 : 33 : return Language::LANG_AST; 52 : : } 53 [ + - ][ - + ]: 247 : else if (language == "auto" || language == "LANG_AUTO") [ - + ] 54 : : { 55 : 0 : return Language::LANG_AUTO; 56 : : } 57 : : 58 : 247 : throw OptionException(std::string("unknown language `" + language + "'")); 59 : : } 60 : : 61 : : } // namespace language 62 : : } // namespace cvc5::internal