GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.cpp Lines: 19 23 82.6 %
Date: 2021-11-07 Branches: 35 57 61.4 %

Line Exec Source
1
/******************************************************************************
2
 * Top contributors (to current version):
3
 *   Morgan Deters, Andrew Reynolds, Mathias Preiner
4
 *
5
 * This file is part of the cvc5 project.
6
 *
7
 * Copyright (c) 2009-2021 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 {
21
22
789528
std::ostream& operator<<(std::ostream& out, Language lang)
23
{
24
789528
  switch (lang)
25
  {
26
13031
    case Language::LANG_AUTO: out << "LANG_AUTO"; break;
27
611667
    case Language::LANG_SMTLIB_V2_6: out << "LANG_SMTLIB_V2_6"; break;
28
126
    case Language::LANG_TPTP: out << "LANG_TPTP"; break;
29
164704
    case Language::LANG_SYGUS_V2: out << "LANG_SYGUS_V2"; break;
30
    default: out << "undefined_language";
31
  }
32
789528
  return out;
33
}
34
35
namespace language {
36
37
17635
Language toLanguage(const std::string& language)
38
{
39
52905
  if (language == "smtlib" || language == "smt" || language == "smtlib2"
40
17633
      || language == "smt2" || language == "smtlib2.6" || language == "smt2.6"
41
24649
      || language == "LANG_SMTLIB_V2_6" || language == "LANG_SMTLIB_V2")
42
  {
43
16776
    return Language::LANG_SMTLIB_V2_6;
44
  }
45
859
  else if (language == "tptp" || language == "LANG_TPTP")
46
  {
47
84
    return Language::LANG_TPTP;
48
  }
49
2325
  else if (language == "sygus" || language == "LANG_SYGUS"
50
1550
           || language == "sygus2" || language == "LANG_SYGUS_V2")
51
  {
52
774
    return Language::LANG_SYGUS_V2;
53
  }
54
1
  else if (language == "ast" || language == "LANG_AST")
55
  {
56
1
    return Language::LANG_AST;
57
  }
58
  else if (language == "auto" || language == "LANG_AUTO")
59
  {
60
    return Language::LANG_AUTO;
61
  }
62
63
  throw OptionException(std::string("unknown language `" + language + "'"));
64
}
65
66
}  // namespace language
67
}  // namespace cvc5