GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.cpp Lines: 24 28 85.7 %
Date: 2021-09-10 Branches: 44 70 62.9 %

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
818907
std::ostream& operator<<(std::ostream& out, Language lang)
23
{
24
818907
  switch (lang)
25
  {
26
12436
    case Language::LANG_AUTO: out << "LANG_AUTO"; break;
27
712443
    case Language::LANG_SMTLIB_V2_6: out << "LANG_SMTLIB_V2_6"; break;
28
123
    case Language::LANG_TPTP: out << "LANG_TPTP"; break;
29
2476
    case Language::LANG_CVC: out << "LANG_CVC"; break;
30
91429
    case Language::LANG_SYGUS_V2: out << "LANG_SYGUS_V2"; break;
31
    default: out << "undefined_language";
32
  }
33
818907
  return out;
34
}
35
36
namespace language {
37
38
12637
Language toLanguage(const std::string& language)
39
{
40
37089
  if (language == "cvc" || language == "pl" || language == "presentation"
41
24452
      || language == "native" || language == "LANG_CVC")
42
  {
43
1625
    return Language::LANG_CVC;
44
  }
45
33036
  else if (language == "smtlib" || language == "smt" || language == "smtlib2"
46
11010
           || language == "smt2" || language == "smtlib2.6"
47
5641
           || language == "smt2.6" || language == "LANG_SMTLIB_V2_6"
48
11492
           || language == "LANG_SMTLIB_V2")
49
  {
50
10532
    return Language::LANG_SMTLIB_V2_6;
51
  }
52
480
  else if (language == "tptp" || language == "LANG_TPTP")
53
  {
54
82
    return Language::LANG_TPTP;
55
  }
56
1194
  else if (language == "sygus" || language == "LANG_SYGUS"
57
796
           || language == "sygus2" || language == "LANG_SYGUS_V2")
58
  {
59
397
    return Language::LANG_SYGUS_V2;
60
  }
61
1
  else if (language == "ast" || language == "LANG_AST")
62
  {
63
1
    return Language::LANG_AST;
64
  }
65
  else if (language == "auto" || language == "LANG_AUTO")
66
  {
67
    return Language::LANG_AUTO;
68
  }
69
70
  throw OptionException(std::string("unknown language `" + language + "'"));
71
}
72
73
}  // namespace language
74
}  // namespace cvc5