GCC Code Coverage Report
Directory: . Exec Total Coverage
File: src/options/language.h Lines: 4 4 100.0 %
Date: 2021-09-10 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 cvc5 language */
40
  LANG_CVC,
41
  /** The SyGuS language version 2.0 */
42
  LANG_SYGUS_V2,
43
44
  /** The AST (output) language */
45
  LANG_AST,
46
47
  /** LANG_MAX is > any valid Language id */
48
  LANG_MAX
49
};
50
51
std::ostream& operator<<(std::ostream& out, Language lang) CVC5_EXPORT;
52
53
namespace language {
54
55
/** Is the language a variant of the smtlib version 2 language? */
56
10765
inline bool isLangSmt2(Language lang)
57
{
58
10765
  return lang == Language::LANG_SMTLIB_V2_6;
59
}
60
61
/** Is the language a variant of the SyGuS input language? */
62
148321
inline bool isLangSygus(Language lang)
63
{
64
148321
  return lang == Language::LANG_SYGUS_V2;
65
}
66
67
Language toLanguage(const std::string& language) CVC5_EXPORT;
68
69
}  // namespace language
70
}  // namespace cvc5
71
72
#endif /* CVC5__LANGUAGE_H */