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