cvc4-1.4
language.h
Go to the documentation of this file.
1/********************* */
17#include "cvc4_public.h"
18
19#ifndef __CVC4__LANGUAGE_H
20#define __CVC4__LANGUAGE_H
21
22#include <sstream>
23#include <string>
24
25#include "util/exception.h"
27
28namespace CVC4 {
29namespace language {
30
31namespace input {
32
34 // SPECIAL "NON-LANGUAGE" LANGUAGES HAVE ENUM VALUE < 0
35
38
39 // COMMON INPUT AND OUTPUT LANGUAGES HAVE ENUM VALUES IN [0,9]
40 // AND SHOULD CORRESPOND IN PLACEMENT WITH OUTPUTLANGUAGE
41 //
42 // EVEN IF A LANGUAGE ISN'T CURRENTLY SUPPORTED AS AN INPUT OR
43 // OUTPUT LANGUAGE, IF IT IS "IN PRINCIPLE" A COMMON LANGUAGE,
44 // INCLUDE IT HERE
45
56
57 // START INPUT-ONLY LANGUAGES AT ENUM VALUE 10
58 // THESE ARE IN PRINCIPLE NOT POSSIBLE OUTPUT LANGUAGES
59
62};/* enum Language */
63
64inline std::ostream& operator<<(std::ostream& out, Language lang) CVC4_PUBLIC;
65inline std::ostream& operator<<(std::ostream& out, Language lang) {
66 switch(lang) {
67 case LANG_AUTO:
68 out << "LANG_AUTO";
69 break;
70 case LANG_SMTLIB_V1:
71 out << "LANG_SMTLIB_V1";
72 break;
73 case LANG_SMTLIB_V2:
74 out << "LANG_SMTLIB_V2";
75 break;
76 case LANG_TPTP:
77 out << "LANG_TPTP";
78 break;
79 case LANG_CVC4:
80 out << "LANG_CVC4";
81 break;
82 case LANG_Z3STR:
83 out << "LANG_Z3STR";
84 break;
85 default:
86 out << "undefined_input_language";
87 }
88 return out;
89}
90
91}/* CVC4::language::input namespace */
92
93namespace output {
94
96 // SPECIAL "NON-LANGUAGE" LANGUAGES HAVE ENUM VALUE < 0
97
100
101 // COMMON INPUT AND OUTPUT LANGUAGES HAVE ENUM VALUES IN [0,9]
102 // AND SHOULD CORRESPOND IN PLACEMENT WITH INPUTLANGUAGE
103 //
104 // EVEN IF A LANGUAGE ISN'T CURRENTLY SUPPORTED AS AN INPUT OR
105 // OUTPUT LANGUAGE, IF IT IS "IN PRINCIPLE" A COMMON LANGUAGE,
106 // INCLUDE IT HERE
107
118
119 // START OUTPUT-ONLY LANGUAGES AT ENUM VALUE 10
120 // THESE ARE IN PRINCIPLE NOT POSSIBLE INPUT LANGUAGES
121
126
129};/* enum Language */
130
131inline std::ostream& operator<<(std::ostream& out, Language lang) CVC4_PUBLIC;
132inline std::ostream& operator<<(std::ostream& out, Language lang) {
133 switch(lang) {
134 case LANG_SMTLIB_V1:
135 out << "LANG_SMTLIB_V1";
136 break;
137 case LANG_SMTLIB_V2:
138 out << "LANG_SMTLIB_V2";
139 break;
140 case LANG_TPTP:
141 out << "LANG_TPTP";
142 break;
143 case LANG_CVC4:
144 out << "LANG_CVC4";
145 break;
146 case LANG_Z3STR:
147 out << "LANG_Z3STR";
148 break;
149 case LANG_AST:
150 out << "LANG_AST";
151 break;
152 case LANG_CVC3:
153 out << "LANG_CVC3";
154 break;
155 default:
156 out << "undefined_output_language";
157 }
158 return out;
159}
160
161}/* CVC4::language::output namespace */
162
163}/* CVC4::language namespace */
164
167
168namespace language {
169
174
175}/* CVC4::language namespace */
176}/* CVC4 namespace */
177
178#endif /* __CVC4__LANGUAGE_H */
Macros that should be defined everywhere during the building of the libraries and driver binary,...
#define CVC4_PUBLIC
Definition cvc4_public.h:30
CVC4's exception base class and some associated utilities.
@ LANG_AUTO
Auto-detect the language.
Definition language.h:37
@ LANG_TPTP
The TPTP input language.
Definition language.h:51
@ LANG_SMTLIB_V1
The SMTLIB v1 input language.
Definition language.h:47
@ LANG_Z3STR
The Z3-str input language.
Definition language.h:55
@ LANG_MAX
LANG_MAX is > any valid InputLanguage id.
Definition language.h:61
@ LANG_CVC4
The CVC4 input language.
Definition language.h:53
@ LANG_SMTLIB_V2
The SMTLIB v2 input language.
Definition language.h:49
std::ostream & operator<<(std::ostream &out, Language lang)
Definition language.h:65
@ LANG_Z3STR
The Z3-str output language.
Definition language.h:117
@ LANG_SMTLIB_V1
The SMTLIB v1 output language.
Definition language.h:109
@ LANG_CVC4
The CVC4 output language.
Definition language.h:115
@ LANG_CVC3
The CVC3-compatibility output language.
Definition language.h:125
@ LANG_SMTLIB_V2
The SMTLIB v2 output language.
Definition language.h:111
@ LANG_TPTP
The TPTP output language.
Definition language.h:113
@ LANG_AUTO
Match the output language to the input language.
Definition language.h:99
@ LANG_AST
The AST output language.
Definition language.h:123
@ LANG_MAX
LANG_MAX is > any valid OutputLanguage id.
Definition language.h:128
std::ostream & operator<<(std::ostream &out, Language lang)
Definition language.h:132
InputLanguage toInputLanguage(OutputLanguage language)
OutputLanguage toOutputLanguage(InputLanguage language)
Definition expr.h:106
language::output::Language OutputLanguage
Definition language.h:166
language::input::Language InputLanguage
Definition language.h:165
Options-related exceptions.