@@ -44,27 +44,112 @@ void ctx_trace_value(const plugin_context_t* ctx, const mcsat_value_t* value) {
4444
4545const char * kind_to_string (term_kind_t t ) {
4646 switch (t ) {
47- case OR_TERM :
48- return "OR_TERM" ;
49- case XOR_TERM :
50- return "XOR_TERM" ;
51- case EQ_TERM :
52- return "EQ_TERM" ;
53- case ITE_TERM :
54- return "ITE_TERM" ;
47+ case UNUSED_TERM :
48+ return "UNUSED_TERM" ;
49+ case RESERVED_TERM :
50+ return "RESERVED_TERM" ;
51+ case CONSTANT_TERM :
52+ return "CONSTANT_TERM" ;
53+ case ARITH_CONSTANT :
54+ return "ARITH_CONSTANT" ;
55+ case ARITH_FF_CONSTANT :
56+ return "ARITH_FF_CONSTANT" ;
57+ case BV64_CONSTANT :
58+ return "BV64_CONSTANT" ;
59+ case BV_CONSTANT :
60+ return "BV_CONSTANT" ;
61+ case VARIABLE :
62+ return "VARIABLE" ;
5563 case UNINTERPRETED_TERM :
5664 return "UNINTERPRETED_TERM" ;
65+ case ARITH_EQ_ATOM :
66+ return "ARITH_EQ_ATOM" ;
67+ case ARITH_GE_ATOM :
68+ return "ARITH_GE_ATOM" ;
69+ case ARITH_IS_INT_ATOM :
70+ return "ARITH_IS_INT_ATOM" ;
71+ case ARITH_FLOOR :
72+ return "ARITH_FLOOR" ;
73+ case ARITH_CEIL :
74+ return "ARITH_CEIL" ;
75+ case ARITH_ABS :
76+ return "ARITH_ABS" ;
77+ case ARITH_ROOT_ATOM :
78+ return "ARITH_ROOT_ATOM" ;
79+ case ARITH_FF_EQ_ATOM :
80+ return "ARITH_FF_EQ_ATOM" ;
81+ case ITE_TERM :
82+ return "ITE_TERM" ;
83+ case ITE_SPECIAL :
84+ return "ITE_SPECIAL" ;
85+ case APP_TERM :
86+ return "APP_TERM" ;
5787 case UPDATE_TERM :
5888 return "UPDATE_TERM" ;
89+ case TUPLE_TERM :
90+ return "TUPLE_TERM" ;
91+ case EQ_TERM :
92+ return "EQ_TERM" ;
93+ case DISTINCT_TERM :
94+ return "DISTINCT_TERM" ;
95+ case FORALL_TERM :
96+ return "FORALL_TERM" ;
97+ case LAMBDA_TERM :
98+ return "LAMBDA_TERM" ;
99+ case OR_TERM :
100+ return "OR_TERM" ;
101+ case XOR_TERM :
102+ return "XOR_TERM" ;
103+ case ARITH_BINEQ_ATOM :
104+ return "ARITH_BINEQ_ATOM" ;
59105 case ARITH_RDIV :
60106 return "ARITH_RDIV" ;
61107 case ARITH_IDIV :
62108 return "ARITH_IDIV" ;
63109 case ARITH_MOD :
64110 return "ARITH_MOD" ;
65- default :
66- assert (false);
67- return "UNKNOWN_TERM" ;
111+ case ARITH_DIVIDES_ATOM :
112+ return "ARITH_DIVIDES_ATOM" ;
113+ case ARITH_FF_BINEQ_ATOM :
114+ return "ARITH_FF_BINEQ_ATOM" ;
115+ case BV_ARRAY :
116+ return "BV_ARRAY" ;
117+ case BV_DIV :
118+ return "BV_DIV" ;
119+ case BV_REM :
120+ return "BV_REM" ;
121+ case BV_SDIV :
122+ return "BV_SDIV" ;
123+ case BV_SREM :
124+ return "BV_SREM" ;
125+ case BV_SMOD :
126+ return "BV_SMOD" ;
127+ case BV_SHL :
128+ return "BV_SHL" ;
129+ case BV_LSHR :
130+ return "BV_LSHR" ;
131+ case BV_ASHR :
132+ return "BV_ASHR" ;
133+ case BV_EQ_ATOM :
134+ return "BV_EQ_ATOM" ;
135+ case BV_GE_ATOM :
136+ return "BV_GE_ATOM" ;
137+ case BV_SGE_ATOM :
138+ return "BV_SGE_ATOM" ;
139+ case SELECT_TERM :
140+ return "SELECT_TERM" ;
141+ case BIT_TERM :
142+ return "BIT_TERM" ;
143+ case POWER_PRODUCT :
144+ return "POWER_PRODUCT" ;
145+ case ARITH_POLY :
146+ return "ARITH_POLY" ;
147+ case ARITH_FF_POLY :
148+ return "ARITH_FF_POLY" ;
149+ case BV64_POLY :
150+ return "BV64_POLY" ;
151+ case BV_POLY :
152+ return "BV_POLY" ;
68153 }
69154}
70155
@@ -78,6 +163,8 @@ const char* type_to_string(type_kind_t kind) {
78163 return "INT_TYPE" ;
79164 case REAL_TYPE :
80165 return "REAL_TYPE" ;
166+ case FF_TYPE :
167+ return "FF_TYPE" ;
81168 case BITVECTOR_TYPE :
82169 return "BITVECTOR_TYPE" ;
83170 case SCALAR_TYPE :
@@ -133,3 +220,18 @@ void ctx_trace_printf(const plugin_context_t* ctx, const char* format, ...) {
133220 va_end (p );
134221 }
135222}
223+
224+ void ctx_trace_vprintf (const plugin_context_t * ctx , const char * format , va_list p ) {
225+ int code ;
226+
227+ if (ctx -> tracer != NULL && !ctx -> tracer -> print_failed ) {
228+ code = vfprintf (ctx -> tracer -> file , format , p );
229+ if (code >= 0 ) {
230+ code = fflush (ctx -> tracer -> file );
231+ }
232+ if (code < 0 ) {
233+ ctx -> tracer -> print_failed = true;
234+ ctx -> tracer -> err_code = errno ;
235+ }
236+ }
237+ }
0 commit comments