GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.cpp Lines: 19 23 82.6 %
Date: 2021-09-29 Branches: 34 57 59.6 %

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
578416
std::ostream& operator<<(std::ostream& out, Language lang)
23
{
24
578416
  switch (lang)
25
  {
26
7840
    case Language::LANG_AUTO: out << "LANG_AUTO"; break;
27
478784
    case Language::LANG_SMTLIB_V2_6: out << "LANG_SMTLIB_V2_6"; break;
28
123
    case Language::LANG_TPTP: out << "LANG_TPTP"; break;
29
91669
    case Language::LANG_SYGUS_V2: out << "LANG_SYGUS_V2"; break;
30
    default: out << "undefined_language";
31
  }
32
578416
  return out;
33
}
34
35
namespace language {
36
37
8093
Language toLanguage(const std::string& language)
38
{
39
24279
  if (language == "smtlib" || language == "smt" || language == "smtlib2"
40
8091
      || language == "smt2" || language == "smtlib2.6" || language == "smt2.6"
41
12235
      || language == "LANG_SMTLIB_V2_6" || language == "LANG_SMTLIB_V2")
42
  {
43
7609
    return Language::LANG_SMTLIB_V2_6;
44
  }
45
484
  else if (language == "tptp" || language == "LANG_TPTP")
46
  {
47
82
    return Language::LANG_TPTP;
48
  }
49
1206
  else if (language == "sygus" || language == "LANG_SYGUS"
50
804
           || language == "sygus2" || language == "LANG_SYGUS_V2")
51
  {
52
401
    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