GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.cpp Lines: 24 28 85.7 %
Date: 2021-09-18 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
821699
std::ostream& operator<<(std::ostream& out, Language lang)
23
{
24
821699
  switch (lang)
25
  {
26
12462
    case Language::LANG_AUTO: out << "LANG_AUTO"; break;
27
714969
    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
91669
    case Language::LANG_SYGUS_V2: out << "LANG_SYGUS_V2"; break;
31
    default: out << "undefined_language";
32
  }
33
821699
  return out;
34
}
35
36
namespace language {
37
38
12663
Language toLanguage(const std::string& language)
39
{
40
37167
  if (language == "cvc" || language == "pl" || language == "presentation"
41
24504
      || language == "native" || language == "LANG_CVC")
42
  {
43
1625
    return Language::LANG_CVC;
44
  }
45
33114
  else if (language == "smtlib" || language == "smt" || language == "smtlib2"
46
11036
           || language == "smt2" || language == "smtlib2.6"
47
5656
           || language == "smt2.6" || language == "LANG_SMTLIB_V2_6"
48
11522
           || language == "LANG_SMTLIB_V2")
49
  {
50
10554
    return Language::LANG_SMTLIB_V2_6;
51
  }
52
484
  else if (language == "tptp" || language == "LANG_TPTP")
53
  {
54
82
    return Language::LANG_TPTP;
55
  }
56
1206
  else if (language == "sygus" || language == "LANG_SYGUS"
57
804
           || language == "sygus2" || language == "LANG_SYGUS_V2")
58
  {
59
401
    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