GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.h Lines: 4 4 100.0 %
Date: 2021-09-29 Branches: 0 0 0.0 %

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 languages.
14
 */
15
16
#include "cvc5_public.h"
17
18
#ifndef CVC5__LANGUAGE_H
19
#define CVC5__LANGUAGE_H
20
21
#include <ostream>
22
#include <string>
23
24
#include "cvc5_export.h"
25
26
namespace cvc5 {
27
28
enum class CVC5_EXPORT Language
29
{
30
  // SPECIAL "NON-LANGUAGE" LANGUAGES HAVE ENUM VALUE < 0
31
32
  /** Auto-detect the language */
33
  LANG_AUTO = -1,
34
35
  /** The SMTLIB v2.6 language, with support for the strings standard */
36
  LANG_SMTLIB_V2_6 = 0,
37
  /** The TPTP language */
38
  LANG_TPTP,
39
  /** The SyGuS language version 2.0 */
40
  LANG_SYGUS_V2,
41
42
  /** The AST (output) language */
43
  LANG_AST,
44
45
  /** LANG_MAX is > any valid Language id */
46
  LANG_MAX
47
};
48
49
std::ostream& operator<<(std::ostream& out, Language lang) CVC5_EXPORT;
50
51
namespace language {
52
53
/** Is the language a variant of the smtlib version 2 language? */
54
6245
inline bool isLangSmt2(Language lang)
55
{
56
6245
  return lang == Language::LANG_SMTLIB_V2_6;
57
}
58
59
/** Is the language a variant of the SyGuS input language? */
60
87845
inline bool isLangSygus(Language lang)
61
{
62
87845
  return lang == Language::LANG_SYGUS_V2;
63
}
64
65
Language toLanguage(const std::string& language) CVC5_EXPORT;
66
67
}  // namespace language
68
}  // namespace cvc5
69
70
#endif /* CVC5__LANGUAGE_H */