GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/parser/cvc/CvcParser.c Lines: 4627 13726 33.7 %
Date: 2021-09-18 Branches: 3790 13013 29.1 %

Line Exec Source
1
/** \file
2
 *  This C source file was generated by $ANTLR version 3.4
3
 *
4
 *     -  From the grammar source file : /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g
5
 *     -                            On : 2021-09-18 01:05:37
6
 *     -                for the parser : CvcParserParser
7
 *
8
 * Editing it, at least manually, is not wise.
9
 *
10
 * C language generator and runtime by Jim Idle, jimi|hereisanat|idle|dotgoeshere|ws.
11
 *
12
 *
13
*/
14
// [The "BSD license"]
15
// Copyright (c) 2005-2009 Jim Idle, Temporal Wave LLC
16
// http://www.temporal-wave.com
17
// http://www.linkedin.com/in/jimidle
18
//
19
// All rights reserved.
20
//
21
// Redistribution and use in source and binary forms, with or without
22
// modification, are permitted provided that the following conditions
23
// are met:
24
// 1. Redistributions of source code must retain the above copyright
25
//    notice, this list of conditions and the following disclaimer.
26
// 2. Redistributions in binary form must reproduce the above copyright
27
//    notice, this list of conditions and the following disclaimer in the
28
//    documentation and/or other materials provided with the distribution.
29
// 3. The name of the author may not be used to endorse or promote products
30
//    derived from this software without specific prior written permission.
31
//
32
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
33
// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
34
// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
35
// IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
36
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
37
// NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
38
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
39
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
40
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
41
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42
43
44
/* =============================================================================
45
 * This is what the grammar programmer asked us to put at the top of every file.
46
 */
47
48
/* ****************************************************************************
49
 * This file is part of the cvc5 project.
50
 *
51
 * Copyright (c) 2009-2021 by the authors listed in the file AUTHORS
52
 * in the top-level source directory and their institutional affiliations.
53
 * All rights reserved.  See the file COPYING in the top-level source
54
 * directory for licensing information.
55
 * ****************************************************************************
56
 */
57
58
/* End of Header action.
59
 * =============================================================================
60
 */
61
62
/* -----------------------------------------
63
 * Include the ANTLR3 generated header file.
64
 */
65
#include    "CvcParser.h"
66
67
68
#include <sstream>
69
#include <string>
70
#include <vector>
71
72
#include "base/output.h"
73
#include "parser/antlr_input.h"
74
#include "parser/parser.h"
75
76
#define REPEAT_COMMAND(k, CommandCtor)                      \
77
  ({                                                        \
78
    unsigned __k = (k);                                     \
79
    (__k <= 1)                                              \
80
      ? (Command*) new CommandCtor                          \
81
      : ({                                                  \
82
          CommandSequence* __seq = new CommandSequence();   \
83
          while(__k-- > 0) {                                \
84
            __seq->addCommand(new CommandCtor);             \
85
          }                                                 \
86
          (Command*) __seq;                                 \
87
        });                                                 \
88
  })
89
90
using namespace cvc5;
91
using namespace cvc5::parser;
92
93
/* These need to be macros so they can refer to the PARSER macro, which will be defined
94
 * by ANTLR *after* this section. (If they were functions, PARSER would be undefined.) */
95
#undef PARSER_STATE
96
#define PARSER_STATE ((Parser*)PARSER->super)
97
#undef SOLVER
98
#define SOLVER PARSER_STATE->getSolver()
99
#undef MK_TERM
100
#define MK_TERM SOLVER->mkTerm
101
#define UNSUPPORTED PARSER_STATE->unimplementedFeature
102
103
#define ENSURE_BV_SIZE(k, f)                                   \
104
{                                                              \
105
  unsigned size = f.getSort().getBVSize();        \
106
  if(k > size) {                                               \
107
    f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_ZERO_EXTEND,k - size), f); \
108
  } else if (k < size) {                                       \
109
    f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_EXTRACT, k - 1, 0), f); \
110
  }                                                            \
111
}
112
113
114
/* ----------------------------------------- */
115
116
117
118
119
120
/* MACROS that hide the C interface implementations from the
121
 * generated code, which makes it a little more understandable to the human eye.
122
 * I am very much against using C pre-processor macros for function calls and bits
123
 * of code as you cannot see what is happening when single stepping in debuggers
124
 * and so on. The exception (in my book at least) is for generated code, where you are
125
 * not maintaining it, but may wish to read and understand it. If you single step it, you know that input()
126
 * hides some indirect calls, but is always referring to the input stream. This is
127
 * probably more readable than ctx->input->istream->input(snarfle0->blarg) and allows me to rejig
128
 * the runtime interfaces without changing the generated code too often, without
129
 * confusing the reader of the generated output, who may not wish to know the gory
130
 * details of the interface inheritance.
131
 */
132
133
#define		CTX	ctx
134
135
/* Aids in accessing scopes for grammar programmers
136
 */
137
#undef	SCOPE_TYPE
138
#undef	SCOPE_STACK
139
#undef	SCOPE_TOP
140
#define	SCOPE_TYPE(scope)   pCvcParser_##scope##_SCOPE
141
#define SCOPE_STACK(scope)  pCvcParser_##scope##Stack
142
#define	SCOPE_TOP(scope)    ctx->pCvcParser_##scope##Top
143
#define	SCOPE_SIZE(scope)		ctx->pCvcParser_##scope##Stack_limit
144
#define SCOPE_INSTANCE(scope, i)	(ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))
145
146
/* Macros for accessing things in the parser
147
 */
148
149
#undef	    PARSER
150
#undef	    RECOGNIZER
151
#undef	    HAVEPARSEDRULE
152
#undef		MEMOIZE
153
#undef	    INPUT
154
#undef	    STRSTREAM
155
#undef	    HASEXCEPTION
156
#undef	    EXCEPTION
157
#undef	    MATCHT
158
#undef	    MATCHANYT
159
#undef	    FOLLOWSTACK
160
#undef	    FOLLOWPUSH
161
#undef	    FOLLOWPOP
162
#undef	    PRECOVER
163
#undef	    PREPORTERROR
164
#undef	    LA
165
#undef	    LT
166
#undef	    CONSTRUCTEX
167
#undef	    CONSUME
168
#undef	    MARK
169
#undef	    REWIND
170
#undef	    REWINDLAST
171
#undef	    PERRORRECOVERY
172
#undef	    HASFAILED
173
#undef	    FAILEDFLAG
174
#undef	    RECOVERFROMMISMATCHEDSET
175
#undef	    RECOVERFROMMISMATCHEDELEMENT
176
#undef		INDEX
177
#undef      ADAPTOR
178
#undef		SEEK
179
#undef	    RULEMEMO
180
#undef		DBG
181
182
#define	    PARSER				ctx->pParser
183
#define	    RECOGNIZER				PARSER->rec
184
#define	    PSRSTATE				RECOGNIZER->state
185
#define	    HAVEPARSEDRULE(r)			RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)
186
#define	    MEMOIZE(ri,si)			RECOGNIZER->memoize(RECOGNIZER, ri, si)
187
#define	    INPUT				PARSER->tstream
188
#define	    STRSTREAM				INPUT
189
#define	    ISTREAM				INPUT->istream
190
#define	    INDEX()				ISTREAM->index(INPUT->istream)
191
#define	    HASEXCEPTION()			(PSRSTATE->error == ANTLR3_TRUE)
192
#define	    EXCEPTION				PSRSTATE->exception
193
#define	    MATCHT(t, fs)			RECOGNIZER->match(RECOGNIZER, t, fs)
194
#define	    MATCHANYT()				RECOGNIZER->matchAny(RECOGNIZER)
195
#define	    FOLLOWSTACK				PSRSTATE->following
196
#ifdef  SKIP_FOLLOW_SETS
197
#define	    FOLLOWPUSH(x)
198
#define	    FOLLOWPOP()
199
#else
200
#define	    FOLLOWPUSH(x)			FOLLOWSTACK->push(FOLLOWSTACK, ((void *)(&(x))), NULL)
201
#define	    FOLLOWPOP()				FOLLOWSTACK->pop(FOLLOWSTACK)
202
#endif
203
#define	    PRECOVER()				RECOGNIZER->recover(RECOGNIZER)
204
#define	    PREPORTERROR()			RECOGNIZER->reportError(RECOGNIZER)
205
#define	    LA(n)				INPUT->istream->_LA(ISTREAM, n)
206
#define	    LT(n)				INPUT->_LT(INPUT, n)
207
#define	    CONSTRUCTEX()			RECOGNIZER->exConstruct(RECOGNIZER)
208
#define	    CONSUME()				ISTREAM->consume(ISTREAM)
209
#define	    MARK()				ISTREAM->mark(ISTREAM)
210
#define	    REWIND(m)				ISTREAM->rewind(ISTREAM, m)
211
#define	    REWINDLAST()			ISTREAM->rewindLast(ISTREAM)
212
#define	    SEEK(n)				ISTREAM->seek(ISTREAM, n)
213
#define	    PERRORRECOVERY			PSRSTATE->errorRecovery
214
#define	    FAILEDFLAG				PSRSTATE->failed
215
#define	    HASFAILED()				(FAILEDFLAG == ANTLR3_TRUE)
216
#define	    BACKTRACKING			PSRSTATE->backtracking
217
#define	    RECOVERFROMMISMATCHEDSET(s)		RECOGNIZER->recoverFromMismatchedSet(RECOGNIZER, s)
218
#define	    RECOVERFROMMISMATCHEDELEMENT(e)	RECOGNIZER->recoverFromMismatchedElement(RECOGNIZER, s)
219
#define     ADAPTOR                         ctx->adaptor
220
#define		RULEMEMO						PSRSTATE->ruleMemo
221
#define		DBG								RECOGNIZER->debugger
222
223
224
#define		TOKTEXT(tok, txt)				tok, (pANTLR3_UINT8)txt
225
226
/* The 4 tokens defined below may well clash with your own #defines or token types. If so
227
 * then for the present you must use different names for your defines as these are hard coded
228
 * in the code generator. It would be better not to use such names internally, and maybe
229
 * we can change this in a forthcoming release. I deliberately do not #undef these
230
 * here as this will at least give you a redefined error somewhere if they clash.
231
 */
232
#define	    UP	    ANTLR3_TOKEN_UP
233
#define	    DOWN    ANTLR3_TOKEN_DOWN
234
#define	    EOR	    ANTLR3_TOKEN_EOR
235
#define	    INVALID ANTLR3_TOKEN_INVALID
236
237
238
/* =============================================================================
239
 * Functions to create and destroy scopes. First come the rule scopes, followed
240
 * by the global declared scopes.
241
 */
242
243
244
245
/* ============================================================================= */
246
247
/* =============================================================================
248
 * Start of recognizer
249
 */
250
251
252
/** \brief Table of all token names in symbolic order, mainly used for
253
 *         error reporting.
254
 */
255
pANTLR3_UINT8   CvcParserTokenNames[205+4]
256
     = {
257
        (pANTLR3_UINT8) "<invalid>",       /* String to print to indicate an invalid token */
258
        (pANTLR3_UINT8) "<EOR>",
259
        (pANTLR3_UINT8) "<DOWN>",
260
        (pANTLR3_UINT8) "<UP>",
261
        (pANTLR3_UINT8) "ABS_TOK",
262
        (pANTLR3_UINT8) "ALPHA",
263
        (pANTLR3_UINT8) "AND_TOK",
264
        (pANTLR3_UINT8) "ARITH_VAR_ORDER_TOK",
265
        (pANTLR3_UINT8) "ARRAY_TOK",
266
        (pANTLR3_UINT8) "ARROW_TOK",
267
        (pANTLR3_UINT8) "ASSERTIONS_TOK",
268
        (pANTLR3_UINT8) "ASSERT_TOK",
269
        (pANTLR3_UINT8) "ASSIGN_TOK",
270
        (pANTLR3_UINT8) "ASSUMPTIONS_TOK",
271
        (pANTLR3_UINT8) "BAR",
272
        (pANTLR3_UINT8) "BINARY_LITERAL",
273
        (pANTLR3_UINT8) "BITVECTOR_TOK",
274
        (pANTLR3_UINT8) "BOOLEAN_TOK",
275
        (pANTLR3_UINT8) "BVAND_TOK",
276
        (pANTLR3_UINT8) "BVASHR_TOK",
277
        (pANTLR3_UINT8) "BVCOMP_TOK",
278
        (pANTLR3_UINT8) "BVGE_TOK",
279
        (pANTLR3_UINT8) "BVGT_TOK",
280
        (pANTLR3_UINT8) "BVLE_TOK",
281
        (pANTLR3_UINT8) "BVLSHR_TOK",
282
        (pANTLR3_UINT8) "BVLT_TOK",
283
        (pANTLR3_UINT8) "BVMULT_TOK",
284
        (pANTLR3_UINT8) "BVNAND_TOK",
285
        (pANTLR3_UINT8) "BVNEG_TOK",
286
        (pANTLR3_UINT8) "BVNOR_TOK",
287
        (pANTLR3_UINT8) "BVPLUS_TOK",
288
        (pANTLR3_UINT8) "BVREPEAT_TOK",
289
        (pANTLR3_UINT8) "BVROTL_TOK",
290
        (pANTLR3_UINT8) "BVROTR_TOK",
291
        (pANTLR3_UINT8) "BVSDIV_TOK",
292
        (pANTLR3_UINT8) "BVSGE_TOK",
293
        (pANTLR3_UINT8) "BVSGT_TOK",
294
        (pANTLR3_UINT8) "BVSHL_TOK",
295
        (pANTLR3_UINT8) "BVSLE_TOK",
296
        (pANTLR3_UINT8) "BVSLT_TOK",
297
        (pANTLR3_UINT8) "BVSMOD_TOK",
298
        (pANTLR3_UINT8) "BVSREM_TOK",
299
        (pANTLR3_UINT8) "BVSUB_TOK",
300
        (pANTLR3_UINT8) "BVUDIV_TOK",
301
        (pANTLR3_UINT8) "BVUMINUS_TOK",
302
        (pANTLR3_UINT8) "BVUREM_TOK",
303
        (pANTLR3_UINT8) "BVXNOR_TOK",
304
        (pANTLR3_UINT8) "BVXOR_TOK",
305
        (pANTLR3_UINT8) "BVZEROEXTEND_TOK",
306
        (pANTLR3_UINT8) "CALL_TOK",
307
        (pANTLR3_UINT8) "CHECKSAT_TOK",
308
        (pANTLR3_UINT8) "CHECK_TYPE_TOK",
309
        (pANTLR3_UINT8) "COLON",
310
        (pANTLR3_UINT8) "COMMA",
311
        (pANTLR3_UINT8) "COMMENT",
312
        (pANTLR3_UINT8) "CONCAT_TOK",
313
        (pANTLR3_UINT8) "CONTEXT_TOK",
314
        (pANTLR3_UINT8) "CONTINUE_TOK",
315
        (pANTLR3_UINT8) "COUNTEREXAMPLE_TOK",
316
        (pANTLR3_UINT8) "COUNTERMODEL_TOK",
317
        (pANTLR3_UINT8) "DATATYPE_TOK",
318
        (pANTLR3_UINT8) "DBG_TOK",
319
        (pANTLR3_UINT8) "DECIMAL_LITERAL",
320
        (pANTLR3_UINT8) "DIGIT",
321
        (pANTLR3_UINT8) "DISEQUAL_TOK",
322
        (pANTLR3_UINT8) "DISTINCT_TOK",
323
        (pANTLR3_UINT8) "DIVISIBLE_TOK",
324
        (pANTLR3_UINT8) "DIV_TOK",
325
        (pANTLR3_UINT8) "DOT",
326
        (pANTLR3_UINT8) "DOTDOT",
327
        (pANTLR3_UINT8) "DUMP_ASSUMPTIONS_TOK",
328
        (pANTLR3_UINT8) "DUMP_CLOSURE_PROOF_TOK",
329
        (pANTLR3_UINT8) "DUMP_CLOSURE_TOK",
330
        (pANTLR3_UINT8) "DUMP_PROOF_TOK",
331
        (pANTLR3_UINT8) "DUMP_SIG_TOK",
332
        (pANTLR3_UINT8) "DUMP_TCC_ASSUMPTIONS_TOK",
333
        (pANTLR3_UINT8) "DUMP_TCC_PROOF_TOK",
334
        (pANTLR3_UINT8) "DUMP_TCC_TOK",
335
        (pANTLR3_UINT8) "DUMP_UNSAT_CORE_TOK",
336
        (pANTLR3_UINT8) "ECHO_TOK",
337
        (pANTLR3_UINT8) "ELSEIF_TOK",
338
        (pANTLR3_UINT8) "ELSE_TOK",
339
        (pANTLR3_UINT8) "ENDIF_TOK",
340
        (pANTLR3_UINT8) "END_TOK",
341
        (pANTLR3_UINT8) "EQUAL_TOK",
342
        (pANTLR3_UINT8) "ESCAPE",
343
        (pANTLR3_UINT8) "EXISTS_TOK",
344
        (pANTLR3_UINT8) "EXIT_TOK",
345
        (pANTLR3_UINT8) "EXP_TOK",
346
        (pANTLR3_UINT8) "FALSE_TOK",
347
        (pANTLR3_UINT8) "FLOOR_TOK",
348
        (pANTLR3_UINT8) "FMF_CARD_TOK",
349
        (pANTLR3_UINT8) "FORALL_TOK",
350
        (pANTLR3_UINT8) "FORGET_TOK",
351
        (pANTLR3_UINT8) "GEQ_TOK",
352
        (pANTLR3_UINT8) "GET_CHILD_TOK",
353
        (pANTLR3_UINT8) "GET_OP_TOK",
354
        (pANTLR3_UINT8) "GET_TYPE_TOK",
355
        (pANTLR3_UINT8) "GET_VALUE_TOK",
356
        (pANTLR3_UINT8) "GT_TOK",
357
        (pANTLR3_UINT8) "HASHPAREN",
358
        (pANTLR3_UINT8) "HASHSQ",
359
        (pANTLR3_UINT8) "HELP_TOK",
360
        (pANTLR3_UINT8) "HEX_DIGIT",
361
        (pANTLR3_UINT8) "HEX_LITERAL",
362
        (pANTLR3_UINT8) "IDENTIFIER",
363
        (pANTLR3_UINT8) "IDEN_TOK",
364
        (pANTLR3_UINT8) "IFF_TOK",
365
        (pANTLR3_UINT8) "IF_TOK",
366
        (pANTLR3_UINT8) "IMPLIES_TOK",
367
        (pANTLR3_UINT8) "INCLUDE_TOK",
368
        (pANTLR3_UINT8) "INTDIV_TOK",
369
        (pANTLR3_UINT8) "INTEGER_LITERAL",
370
        (pANTLR3_UINT8) "INT_TOK",
371
        (pANTLR3_UINT8) "IN_TOK",
372
        (pANTLR3_UINT8) "IS_INTEGER_TOK",
373
        (pANTLR3_UINT8) "JOIN_IMAGE_TOK",
374
        (pANTLR3_UINT8) "JOIN_TOK",
375
        (pANTLR3_UINT8) "LAMBDA_TOK",
376
        (pANTLR3_UINT8) "LBRACE",
377
        (pANTLR3_UINT8) "LBRACKET",
378
        (pANTLR3_UINT8) "LEFTSHIFT_TOK",
379
        (pANTLR3_UINT8) "LEQ_TOK",
380
        (pANTLR3_UINT8) "LET_TOK",
381
        (pANTLR3_UINT8) "LPAREN",
382
        (pANTLR3_UINT8) "LT_TOK",
383
        (pANTLR3_UINT8) "MEMBER_TOK",
384
        (pANTLR3_UINT8) "MINUS_TOK",
385
        (pANTLR3_UINT8) "MOD_TOK",
386
        (pANTLR3_UINT8) "NOT_TOK",
387
        (pANTLR3_UINT8) "NUMBER_OR_RANGEOP",
388
        (pANTLR3_UINT8) "OF_TOK",
389
        (pANTLR3_UINT8) "OPTION_TOK",
390
        (pANTLR3_UINT8) "OR_TOK",
391
        (pANTLR3_UINT8) "PARENHASH",
392
        (pANTLR3_UINT8) "PATTERN_TOK",
393
        (pANTLR3_UINT8) "PLUS_TOK",
394
        (pANTLR3_UINT8) "POPTO_SCOPE_TOK",
395
        (pANTLR3_UINT8) "POPTO_TOK",
396
        (pANTLR3_UINT8) "POP_SCOPE_TOK",
397
        (pANTLR3_UINT8) "POP_TOK",
398
        (pANTLR3_UINT8) "PRINT_TOK",
399
        (pANTLR3_UINT8) "PRINT_TYPE_TOK",
400
        (pANTLR3_UINT8) "PRODUCT_TOK",
401
        (pANTLR3_UINT8) "PUSH_SCOPE_TOK",
402
        (pANTLR3_UINT8) "PUSH_TOK",
403
        (pANTLR3_UINT8) "QUERY_TOK",
404
        (pANTLR3_UINT8) "RBRACE",
405
        (pANTLR3_UINT8) "RBRACKET",
406
        (pANTLR3_UINT8) "REAL_TOK",
407
        (pANTLR3_UINT8) "RECURSIVE_FUNCTION_TOK",
408
        (pANTLR3_UINT8) "REGEXP_COMPLEMENT_TOK",
409
        (pANTLR3_UINT8) "REGEXP_CONCAT_TOK",
410
        (pANTLR3_UINT8) "REGEXP_EMPTY_TOK",
411
        (pANTLR3_UINT8) "REGEXP_INTER_TOK",
412
        (pANTLR3_UINT8) "REGEXP_LOOP_TOK",
413
        (pANTLR3_UINT8) "REGEXP_OPT_TOK",
414
        (pANTLR3_UINT8) "REGEXP_PLUS_TOK",
415
        (pANTLR3_UINT8) "REGEXP_RANGE_TOK",
416
        (pANTLR3_UINT8) "REGEXP_SIGMA_TOK",
417
        (pANTLR3_UINT8) "REGEXP_STAR_TOK",
418
        (pANTLR3_UINT8) "REGEXP_UNION_TOK",
419
        (pANTLR3_UINT8) "RESET_TOK",
420
        (pANTLR3_UINT8) "RESTART_TOK",
421
        (pANTLR3_UINT8) "RIGHTSHIFT_TOK",
422
        (pANTLR3_UINT8) "RPAREN",
423
        (pANTLR3_UINT8) "SEMICOLON",
424
        (pANTLR3_UINT8) "SEQ_UNIT_TOK",
425
        (pANTLR3_UINT8) "SETS_CARD_TOK",
426
        (pANTLR3_UINT8) "SETS_CHOOSE_TOK",
427
        (pANTLR3_UINT8) "SET_TOK",
428
        (pANTLR3_UINT8) "SQHASH",
429
        (pANTLR3_UINT8) "STAR_TOK",
430
        (pANTLR3_UINT8) "STRING_CHARAT_TOK",
431
        (pANTLR3_UINT8) "STRING_CONCAT_TOK",
432
        (pANTLR3_UINT8) "STRING_CONTAINS_TOK",
433
        (pANTLR3_UINT8) "STRING_INDEXOF_TOK",
434
        (pANTLR3_UINT8) "STRING_ITOS_TOK",
435
        (pANTLR3_UINT8) "STRING_LENGTH_TOK",
436
        (pANTLR3_UINT8) "STRING_LITERAL",
437
        (pANTLR3_UINT8) "STRING_PREFIXOF_TOK",
438
        (pANTLR3_UINT8) "STRING_REPLACE_ALL_TOK",
439
        (pANTLR3_UINT8) "STRING_REPLACE_TOK",
440
        (pANTLR3_UINT8) "STRING_REV_TOK",
441
        (pANTLR3_UINT8) "STRING_STOI_TOK",
442
        (pANTLR3_UINT8) "STRING_SUBSTR_TOK",
443
        (pANTLR3_UINT8) "STRING_SUFFIXOF_TOK",
444
        (pANTLR3_UINT8) "STRING_TOK",
445
        (pANTLR3_UINT8) "STRING_TOLOWER_TOK",
446
        (pANTLR3_UINT8) "STRING_TOUPPER_TOK",
447
        (pANTLR3_UINT8) "STRING_TO_REGEXP_TOK",
448
        (pANTLR3_UINT8) "SUBSTITUTE_TOK",
449
        (pANTLR3_UINT8) "SUBTYPE_TOK",
450
        (pANTLR3_UINT8) "SX_TOK",
451
        (pANTLR3_UINT8) "THEN_TOK",
452
        (pANTLR3_UINT8) "TRACE_TOK",
453
        (pANTLR3_UINT8) "TRANSCLOSURE_TOK",
454
        (pANTLR3_UINT8) "TRANSFORM_TOK",
455
        (pANTLR3_UINT8) "TRANSPOSE_TOK",
456
        (pANTLR3_UINT8) "TRUE_TOK",
457
        (pANTLR3_UINT8) "TUPLE_TOK",
458
        (pANTLR3_UINT8) "TYPE_TOK",
459
        (pANTLR3_UINT8) "UNDERSCORE",
460
        (pANTLR3_UINT8) "UNIVSET_TOK",
461
        (pANTLR3_UINT8) "UNTRACE_TOK",
462
        (pANTLR3_UINT8) "WHERE_TOK",
463
        (pANTLR3_UINT8) "WHITESPACE",
464
        (pANTLR3_UINT8) "WITH_TOK",
465
        (pANTLR3_UINT8) "XOR_TOK"
466
       };
467
468
469
470
// Forward declare the locally static matching functions we have generated.
471
//
472
static
473
 cvc5::api::Term
474
	parseExpr    (pCvcParser ctx);
475
static
476
 cvc5::Command*
477
	parseCommand    (pCvcParser ctx);
478
static
479
 void
480
	command    (pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd);
481
static
482
 void
483
	typeOrVarLetDecl    (pCvcParser ctx, cvc5::parser::DeclarationCheck check);
484
static
485
 void
486
	mainCommand    (pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd);
487
static
488
 void
489
	simpleSymbolicExpr    (pCvcParser ctx, std::string& s);
490
static
491
 void
492
	symbolicExpr    (pCvcParser ctx, cvc5::api::Term& sexpr);
493
static
494
 void
495
	toplevelDeclaration    (pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd);
496
static
497
 void
498
	boundVarDecl    (pCvcParser ctx, std::vector<std::string>& ids, cvc5::api::Sort& t);
499
static
500
 void
501
	boundVarDecls    (pCvcParser ctx);
502
static
503
 void
504
	boundVarDeclsReturn    (pCvcParser ctx, std::vector<cvc5::api::Term>& terms, std::vector<cvc5::api::Sort>& types);
505
static
506
 void
507
	boundVarDeclReturn    (pCvcParser ctx, std::vector<cvc5::api::Term>& terms, std::vector<cvc5::api::Sort>& types);
508
static
509
 void
510
	declareTypes    (pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd, const std::vector<std::string>& idList);
511
static
512
 void
513
	declareVariables    (pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd, cvc5::api::Sort& t, const std::vector<std::string>& idList, bool topLevel);
514
static
515
 void
516
	identifierList    (pCvcParser ctx, std::vector<std::string>& idList, cvc5::parser::DeclarationCheck check, cvc5::parser::SymbolType type);
517
static
518
 void
519
	identifier    (pCvcParser ctx, std::string& id, cvc5::parser::DeclarationCheck check, cvc5::parser::SymbolType type);
520
static
521
 void
522
	type    (pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check);
523
static
524
 void
525
	restrictedType    (pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check);
526
static
527
 void
528
	restrictedTypePossiblyFunctionLHS    (pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check, bool& lhs);
529
static
530
 void
531
	parameterization    (pCvcParser ctx, cvc5::parser::DeclarationCheck check, std::vector<cvc5::api::Sort>& params);
532
static
533
 void
534
	typeLetDecl    (pCvcParser ctx, cvc5::parser::DeclarationCheck check);
535
static
536
 void
537
	formula    (pCvcParser ctx, cvc5::api::Term& f);
538
static
539
 size_t
540
	morecomparisons    (pCvcParser ctx, std::vector<cvc5::api::Term>& expressions, std::vector<unsigned>& operators);
541
static
542
 size_t
543
	nots    (pCvcParser ctx);
544
static
545
 void
546
	prefixFormula    (pCvcParser ctx, cvc5::api::Term& f);
547
static
548
 void
549
	instantiationPatterns    (pCvcParser ctx, cvc5::api::Term& expr);
550
static
551
 void
552
	letDecl    (pCvcParser ctx);
553
static
554
 void
555
	booleanBinop    (pCvcParser ctx, unsigned& op);
556
static
557
 void
558
	comparison    (pCvcParser ctx, cvc5::api::Term& f);
559
static
560
 void
561
	comparisonBinop    (pCvcParser ctx, unsigned& op);
562
static
563
 void
564
	arithmeticBinop    (pCvcParser ctx, unsigned& op);
565
static
566
 void
567
	term    (pCvcParser ctx, cvc5::api::Term& f);
568
static
569
 void
570
	arrayStore    (pCvcParser ctx, cvc5::api::Term& f);
571
static
572
 void
573
	tupleStore    (pCvcParser ctx, cvc5::api::Term& f);
574
static
575
 void
576
	recordStore    (pCvcParser ctx, cvc5::api::Term& f);
577
static
578
 void
579
	uminusTerm    (pCvcParser ctx, cvc5::api::Term& f);
580
static
581
 void
582
	bvBinaryOpTerm    (pCvcParser ctx, cvc5::api::Term& f);
583
static
584
 void
585
	bvBinop    (pCvcParser ctx, unsigned& op);
586
static
587
 void
588
	bvNegTerm    (pCvcParser ctx, cvc5::api::Term& f);
589
static
590
 void
591
	relationBinop    (pCvcParser ctx, unsigned& op);
592
static
593
 void
594
	relationBinopTerm    (pCvcParser ctx, cvc5::api::Term& f);
595
static
596
 void
597
	postfixTerm    (pCvcParser ctx, cvc5::api::Term& f);
598
static
599
 void
600
	relationTerm    (pCvcParser ctx, cvc5::api::Term& f);
601
static
602
 void
603
	bvTerm    (pCvcParser ctx, cvc5::api::Term& f);
604
static
605
 void
606
	stringTerm    (pCvcParser ctx, cvc5::api::Term& f);
607
static
608
 void
609
	setsTerm    (pCvcParser ctx, cvc5::api::Term& f);
610
static
611
 void
612
	simpleTerm    (pCvcParser ctx, cvc5::api::Term& f);
613
static
614
 void
615
	typeAscription    (pCvcParser ctx, const cvc5::api::Term& f, cvc5::api::Sort& t);
616
static
617
 void
618
	recordEntry    (pCvcParser ctx, std::string& name, cvc5::api::Term& ex);
619
static
620
 void
621
	iteTerm    (pCvcParser ctx, cvc5::api::Term& f);
622
static
623
 void
624
	iteElseTerm    (pCvcParser ctx, cvc5::api::Term& f);
625
static
626
 void
627
	datatypeDef    (pCvcParser ctx, std::vector<cvc5::api::DatatypeDecl>& datatypes);
628
static
629
 void
630
	constructorDef    (pCvcParser ctx, cvc5::api::DatatypeDecl& type);
631
static
632
 void
633
	selector    (pCvcParser ctx, std::unique_ptr<cvc5::api::DatatypeConstructorDecl>* ctor);
634
static
635
 unsigned
636
	numeral    (pCvcParser ctx);
637
static
638
 void
639
	str    (pCvcParser ctx, std::string& s);
640
static
641
 ANTLR3_BOOLEAN
642
	synpred1_Cvc    (pCvcParser ctx);
643
static void	CvcParserFree(pCvcParser ctx);
644
static void     CvcParserReset (pCvcParser ctx);
645
646
/* For use in tree output where we are accumulating rule labels via label += ruleRef
647
 * we need a function that knows how to free a return scope when the list is destroyed.
648
 * We cannot just use ANTLR3_FREE because in debug tracking mode, this is a macro.
649
 */
650
static	void ANTLR3_CDECL freeScope(void * scope)
651
{
652
    ANTLR3_FREE(scope);
653
}
654
655
/** \brief Name of the grammar file that generated this code
656
 */
657
static const char fileName[] = "/barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g";
658
659
/** \brief Return the name of the grammar file that generated this code.
660
 */
661
static const char * getGrammarFileName()
662
{
663
	return fileName;
664
}
665
/** \brief Create a new CvcParser parser and return a context for it.
666
 *
667
 * \param[in] instream Pointer to an input stream interface.
668
 *
669
 * \return Pointer to new parser context upon success.
670
 */
671
ANTLR3_API pCvcParser
672
937
CvcParserNew   (pANTLR3_COMMON_TOKEN_STREAM instream)
673
{
674
	// See if we can create a new parser with the standard constructor
675
	//
676
937
	return CvcParserNewSSD(instream, NULL);
677
}
678
679
/** \brief Create a new CvcParser parser and return a context for it.
680
 *
681
 * \param[in] instream Pointer to an input stream interface.
682
 *
683
 * \return Pointer to new parser context upon success.
684
 */
685
ANTLR3_API pCvcParser
686
937
CvcParserNewSSD   (pANTLR3_COMMON_TOKEN_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)
687
{
688
    pCvcParser ctx;	    /* Context structure we will build and return   */
689
690
937
    ctx	= (pCvcParser) ANTLR3_CALLOC(1, sizeof(CvcParser));
691
692
937
    if	(ctx == NULL)
693
    {
694
		// Failed to allocate memory for parser context
695
		//
696
        return  NULL;
697
    }
698
699
    /* -------------------------------------------------------------------
700
     * Memory for basic structure is allocated, now to fill in
701
     * the base ANTLR3 structures. We initialize the function pointers
702
     * for the standard ANTLR3 parser function set, but upon return
703
     * from here, the programmer may set the pointers to provide custom
704
     * implementations of each function.
705
     *
706
     * We don't use the macros defined in CvcParser.h here, in order that you can get a sense
707
     * of what goes where.
708
     */
709
710
    /* Create a base parser/recognizer, using the supplied token stream
711
     */
712
937
    ctx->pParser	    = antlr3ParserNewStream(ANTLR3_SIZE_HINT, instream->tstream, state);
713
    /* Install the implementation of our CvcParser interface
714
     */
715
937
    ctx->parseExpr	= parseExpr;
716
937
    ctx->parseCommand	= parseCommand;
717
937
    ctx->command	= command;
718
937
    ctx->typeOrVarLetDecl	= typeOrVarLetDecl;
719
937
    ctx->mainCommand	= mainCommand;
720
937
    ctx->simpleSymbolicExpr	= simpleSymbolicExpr;
721
937
    ctx->symbolicExpr	= symbolicExpr;
722
937
    ctx->toplevelDeclaration	= toplevelDeclaration;
723
937
    ctx->boundVarDecl	= boundVarDecl;
724
937
    ctx->boundVarDecls	= boundVarDecls;
725
937
    ctx->boundVarDeclsReturn	= boundVarDeclsReturn;
726
937
    ctx->boundVarDeclReturn	= boundVarDeclReturn;
727
937
    ctx->declareTypes	= declareTypes;
728
937
    ctx->declareVariables	= declareVariables;
729
937
    ctx->identifierList	= identifierList;
730
937
    ctx->identifier	= identifier;
731
937
    ctx->type	= type;
732
937
    ctx->restrictedType	= restrictedType;
733
937
    ctx->restrictedTypePossiblyFunctionLHS	= restrictedTypePossiblyFunctionLHS;
734
937
    ctx->parameterization	= parameterization;
735
937
    ctx->typeLetDecl	= typeLetDecl;
736
937
    ctx->formula	= formula;
737
937
    ctx->morecomparisons	= morecomparisons;
738
937
    ctx->nots	= nots;
739
937
    ctx->prefixFormula	= prefixFormula;
740
937
    ctx->instantiationPatterns	= instantiationPatterns;
741
937
    ctx->letDecl	= letDecl;
742
937
    ctx->booleanBinop	= booleanBinop;
743
937
    ctx->comparison	= comparison;
744
937
    ctx->comparisonBinop	= comparisonBinop;
745
937
    ctx->arithmeticBinop	= arithmeticBinop;
746
937
    ctx->term	= term;
747
937
    ctx->arrayStore	= arrayStore;
748
937
    ctx->tupleStore	= tupleStore;
749
937
    ctx->recordStore	= recordStore;
750
937
    ctx->uminusTerm	= uminusTerm;
751
937
    ctx->bvBinaryOpTerm	= bvBinaryOpTerm;
752
937
    ctx->bvBinop	= bvBinop;
753
937
    ctx->bvNegTerm	= bvNegTerm;
754
937
    ctx->relationBinop	= relationBinop;
755
937
    ctx->relationBinopTerm	= relationBinopTerm;
756
937
    ctx->postfixTerm	= postfixTerm;
757
937
    ctx->relationTerm	= relationTerm;
758
937
    ctx->bvTerm	= bvTerm;
759
937
    ctx->stringTerm	= stringTerm;
760
937
    ctx->setsTerm	= setsTerm;
761
937
    ctx->simpleTerm	= simpleTerm;
762
937
    ctx->typeAscription	= typeAscription;
763
937
    ctx->recordEntry	= recordEntry;
764
937
    ctx->iteTerm	= iteTerm;
765
937
    ctx->iteElseTerm	= iteElseTerm;
766
937
    ctx->datatypeDef	= datatypeDef;
767
937
    ctx->constructorDef	= constructorDef;
768
937
    ctx->selector	= selector;
769
937
    ctx->numeral	= numeral;
770
937
    ctx->str	= str;
771
937
    ctx->synpred1_Cvc	= synpred1_Cvc;
772
937
    ctx->free			= CvcParserFree;
773
937
    ctx->reset			= CvcParserReset;
774
937
    ctx->getGrammarFileName	= getGrammarFileName;
775
776
    /* Install the scope pushing methods.
777
     */
778
779
    /* Install the token table
780
     */
781
937
    PSRSTATE->tokenNames   = CvcParserTokenNames;
782
783
784
    /* Return the newly built parser to the caller
785
     */
786
937
    return  ctx;
787
}
788
789
static void
790
CvcParserReset (pCvcParser ctx)
791
{
792
    RECOGNIZER->reset(RECOGNIZER);
793
}
794
795
/** Free the parser resources
796
 */
797
 static void
798
937
 CvcParserFree(pCvcParser ctx)
799
 {
800
    /* Free any scope memory
801
     */
802
803
	// Free this parser
804
	//
805
937
    ctx->pParser->free(ctx->pParser);
806
807
808
937
    ANTLR3_FREE(ctx);
809
810
    /* Everything is released, so we can return
811
     */
812
937
    return;
813
 }
814
815
/** Return token names used by this
816
parser
817
818
 *
819
 * The returned pointer is used as an index into the token names table (using the token
820
 * number as the index).
821
 *
822
 * \return Pointer to first char * in the table.
823
 */
824
static pANTLR3_UINT8    *getTokenNames()
825
{
826
        return CvcParserTokenNames;
827
}
828
829
830
831
    // Idea and code guidance from Sam Harwell,
832
    // http://www.antlr.org/wiki/display/ANTLR3/Operator+precedence+parser
833
834
22915260
    bool isRightToLeft(int type) {
835
      // return true here for any operators that are right-to-left associative
836
22915260
      switch(type) {
837
111
      case IMPLIES_TOK: return true;
838
22915149
      default: return false;
839
      }
840
    }/* isRightToLeft() */
841
842
22949272
    int getOperatorPrecedence(int type) {
843
22949272
      switch(type) {
844
      case BITVECTOR_TOK: return 1;
845
      //case DOT:
846
      case LPAREN:
847
      case LBRACE: return 2;
848
      case LBRACKET: return 3;
849
      case ARROW_TOK: return 4;
850
      case IS_INTEGER_TOK: return 5;
851
      case BVSLT_TOK:
852
      case BVSLE_TOK:
853
      case BVSGT_TOK:
854
      case BVSGE_TOK: return 6;
855
      case BVLT_TOK:
856
      case BVLE_TOK:
857
      case BVGT_TOK:
858
      case BVGE_TOK: return 7;
859
      case LEFTSHIFT_TOK:
860
      case RIGHTSHIFT_TOK: return 8;
861
      case SX_TOK:
862
      case BVZEROEXTEND_TOK:
863
      case BVREPEAT_TOK:
864
      case BVROTL_TOK:
865
      case BVROTR_TOK: return 9;
866
      case BVUDIV_TOK:
867
      case BVSDIV_TOK:
868
      case BVUREM_TOK:
869
      case BVSREM_TOK:
870
      case BVSMOD_TOK:
871
      case BVSHL_TOK:
872
      case BVASHR_TOK:
873
      case BVLSHR_TOK: return 10;
874
      case BVUMINUS_TOK:
875
      case BVPLUS_TOK:
876
      case BVSUB_TOK: return 11;
877
      case BVNEG_TOK: return 12;
878
      case BVXNOR_TOK: return 13;
879
      case BVNOR_TOK:
880
      case BVCOMP_TOK: return 14;
881
      case BVNAND_TOK: return 15;
882
      case BVXOR_TOK: return 16;
883
68
      case BVAND_TOK: return 17;
884
45
      case BAR: return 18;
885
42
      case CONCAT_TOK: return 19;
886
    //case UMINUS_TOK: return 20;
887
      case WITH_TOK: return 21;
888
5
      case EXP_TOK: return 22;
889
905
      case STAR_TOK:
890
      case INTDIV_TOK:
891
      case DIV_TOK:
892
      case TUPLE_TOK:
893
905
      case MOD_TOK: return 23;
894
1438
      case PLUS_TOK:
895
      case MINUS_TOK:
896
      case JOIN_TOK:
897
      case TRANSPOSE_TOK:
898
      case PRODUCT_TOK:
899
      case IDEN_TOK:
900
      case JOIN_IMAGE_TOK:
901
      case TRANSCLOSURE_TOK:
902
1438
      case SETS_CHOOSE_TOK: return 24;
903
2043
      case LEQ_TOK:
904
      case LT_TOK:
905
      case GEQ_TOK:
906
      case GT_TOK:
907
      case MEMBER_TOK:
908
      case SETS_CARD_TOK:
909
2043
      case FMF_CARD_TOK: return 25;
910
2457
      case EQUAL_TOK:
911
2457
      case DISEQUAL_TOK: return 26;
912
      case NOT_TOK: return 27;
913
22921690
      case AND_TOK: return 28;
914
20187
      case OR_TOK:
915
20187
      case XOR_TOK: return 29;
916
212
      case IMPLIES_TOK: return 30;// right-to-left
917
180
      case IFF_TOK: return 31;
918
      case FORALL_TOK:
919
      case EXISTS_TOK:return 32;
920
      case ASSIGN_TOK:
921
      case IN_TOK: return 33;
922
923
      default:
924
        std::stringstream ss;
925
        ss << "internal error: no entry in precedence table for operator " << CvcParserTokenNames[type];
926
        throw ParserException(ss.str());
927
      }
928
    }/* getOperatorPrecedence() */
929
930
34012
    api::Kind getOperatorKind(int type, bool& negate) {
931
34012
      negate = false;
932
933
34012
      switch(type) {
934
        // booleanBinop
935
177
      case IFF_TOK: return api::EQUAL;
936
203
      case IMPLIES_TOK: return api::IMPLIES;
937
16855
      case OR_TOK: return api::OR;
938
53
      case XOR_TOK: return api::XOR;
939
10402
      case AND_TOK: return api::AND;
940
941
      case SETS_CHOOSE_TOK: return api::CHOOSE;
942
33
      case PRODUCT_TOK: return api::PRODUCT;
943
318
      case JOIN_TOK: return api::JOIN;
944
55
      case JOIN_IMAGE_TOK: return api::JOIN_IMAGE;
945
946
947
        // comparisonBinop
948
2400
      case EQUAL_TOK: return api::EQUAL;
949
57
      case DISEQUAL_TOK: negate = true; return api::EQUAL;
950
80
      case GT_TOK: return api::GT;
951
39
      case GEQ_TOK: return api::GEQ;
952
88
      case LT_TOK: return api::LT;
953
116
      case LEQ_TOK: return api::LEQ;
954
1720
      case MEMBER_TOK: return api::MEMBER;
955
      case SETS_CARD_TOK: return api::CARD;
956
      case FMF_CARD_TOK: return api::CARDINALITY_CONSTRAINT;
957
958
        // arithmeticBinop
959
496
      case PLUS_TOK: return api::PLUS;
960
65
      case MINUS_TOK: return api::MINUS;
961
684
      case STAR_TOK: return api::MULT;
962
      case INTDIV_TOK: return api::INTS_DIVISION;
963
      case MOD_TOK: return api::INTS_MODULUS;
964
35
      case DIV_TOK: return api::DIVISION;
965
5
      case EXP_TOK: return api::POW;
966
967
        // bvBinop
968
36
      case CONCAT_TOK: return api::BITVECTOR_CONCAT;
969
45
      case BAR: return api::BITVECTOR_OR;
970
50
      case BVAND_TOK: return api::BITVECTOR_AND;
971
972
      }
973
974
      std::stringstream ss;
975
      ss << "internal error: no entry in operator-kind table for operator " << CvcParserTokenNames[type];
976
      throw ParserException(ss.str());
977
978
    }/* getOperatorKind() */
979
980
34012
    unsigned findPivot(const std::vector<unsigned>& operators,
981
                       unsigned startIndex, unsigned stopIndex) {
982
34012
      unsigned pivot = startIndex;
983
34012
      unsigned pivotRank = getOperatorPrecedence(operators[pivot]);
984
      /*Debug("prec") << "initial pivot at " << pivot
985
                    << "(" << CvcParserTokenNames[operators[pivot]] << ") "
986
                    << "level " << pivotRank << std::endl;*/
987
22949272
      for(unsigned i = startIndex + 1; i <= stopIndex; ++i) {
988
22915260
        unsigned current = getOperatorPrecedence(operators[i]);
989
22915260
        bool rtl = isRightToLeft(operators[i]);
990
22915260
        if(current > pivotRank || (current == pivotRank && !rtl)) {
991
          /*Debug("prec") << "new pivot at " << i
992
                        << "(" << CvcParserTokenNames[operators[i]] << ") "
993
                        << "level " << current << " rtl == " << rtl << std::endl;*/
994
22915135
          pivot = i;
995
22915135
          pivotRank = current;
996
        }
997
      }
998
34012
      return pivot;
999
    }/* findPivot() */
1000
1001
428865
    cvc5::api::Term createPrecedenceTree(Parser* parser, api::Solver* solver,
1002
                              const std::vector<cvc5::api::Term>& expressions,
1003
                              const std::vector<unsigned>& operators,
1004
                              unsigned startIndex, unsigned stopIndex) {
1005
428865
      Assert(expressions.size() == operators.size() + 1);
1006
428865
      Assert(startIndex < expressions.size());
1007
428865
      Assert(stopIndex < expressions.size());
1008
428865
      Assert(startIndex <= stopIndex);
1009
1010
428865
      if(stopIndex == startIndex) {
1011
394853
        return expressions[startIndex];
1012
      }
1013
1014
34012
      unsigned pivot = findPivot(operators, startIndex, stopIndex - 1);
1015
      //Debug("prec") << "pivot[" << startIndex << "," << stopIndex - 1 << "] at " << pivot << std::endl;
1016
      bool negate;
1017
34012
      api::Kind k = getOperatorKind(operators[pivot], negate);
1018
      cvc5::api::Term lhs = createPrecedenceTree(
1019
68024
          parser, solver, expressions, operators, startIndex, pivot);
1020
      cvc5::api::Term rhs = createPrecedenceTree(
1021
68024
          parser, solver, expressions, operators, pivot + 1, stopIndex);
1022
1023
34012
      if (lhs.getSort().isSet())
1024
      {
1025
930
        switch (k)
1026
        {
1027
46
          case api::LEQ: k = api::SUBSET; break;
1028
21
          case api::MINUS: k = api::SETMINUS; break;
1029
38
          case api::BITVECTOR_AND: k = api::INTERSECTION; break;
1030
42
          case api::BITVECTOR_OR: k = api::UNION; break;
1031
783
          default: break;
1032
        }
1033
      }
1034
33082
      else if (lhs.getSort().isString())
1035
      {
1036
20
        switch (k)
1037
        {
1038
4
          case api::MEMBER: k = api::STRING_IN_REGEXP; break;
1039
16
          default: break;
1040
        }
1041
      }
1042
1043
68024
      api::Term e = solver->mkTerm(k, lhs, rhs);
1044
34012
      return negate ? e.notTerm() : e;
1045
    }/* createPrecedenceTree() recursive variant */
1046
1047
360841
    api::Term createPrecedenceTree(Parser* parser, api::Solver* s,
1048
                              const std::vector<cvc5::api::Term>& expressions,
1049
                              const std::vector<unsigned>& operators) {
1050
360841
      if(Debug.isOn("prec") && operators.size() > 1) {
1051
        for(unsigned i = 0; i < expressions.size(); ++i) {
1052
          Debug("prec") << expressions[i];
1053
          if(operators.size() > i) {
1054
            Debug("prec") << ' ' << CvcParserTokenNames[operators[i]] << ' ';
1055
          }
1056
        }
1057
        Debug("prec") << std::endl;
1058
      }
1059
1060
      api::Term e = createPrecedenceTree(
1061
360841
          parser, s, expressions, operators, 0, expressions.size() - 1);
1062
360841
      if(Debug.isOn("prec") && operators.size() > 1) {
1063
        language::SetLanguage::Scope ls(Debug("prec"), Language::LANG_AST);
1064
        Debug("prec") << "=> " << e << std::endl;
1065
      }
1066
360841
      return e;
1067
    }/* createPrecedenceTree() base variant */
1068
1069
    /** Add n NOTs to the front of e and return the result. */
1070
97794
    api::Term addNots(api::Solver* s, size_t n, api::Term e) {
1071
120885
      while(n-- > 0) {
1072
23091
        e = e.notTerm();
1073
      }
1074
74703
      return e;
1075
    }/* addNots() */
1076
1077
1078
1079
/* Declare the bitsets
1080
 */
1081
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_parseExpr1906  */
1082
static	ANTLR3_BITWORD FOLLOW_formula_in_parseExpr1906_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1083
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_parseExpr1906	= { FOLLOW_formula_in_parseExpr1906_bits, 1	};
1084
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EOF_in_parseExpr1913  */
1085
static	ANTLR3_BITWORD FOLLOW_EOF_in_parseExpr1913_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1086
static  ANTLR3_BITSET_LIST FOLLOW_EOF_in_parseExpr1913	= { FOLLOW_EOF_in_parseExpr1913_bits, 1	};
1087
/** Bitset defining follow set for error recovery in rule state: FOLLOW_command_in_parseCommand1944  */
1088
static	ANTLR3_BITWORD FOLLOW_command_in_parseCommand1944_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1089
static  ANTLR3_BITSET_LIST FOLLOW_command_in_parseCommand1944	= { FOLLOW_command_in_parseCommand1944_bits, 1	};
1090
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_parseCommand1951  */
1091
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_parseCommand1951_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1092
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_parseCommand1951	= { FOLLOW_LPAREN_in_parseCommand1951_bits, 2	};
1093
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_parseCommand1953  */
1094
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_parseCommand1953_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1095
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_parseCommand1953	= { FOLLOW_IDENTIFIER_in_parseCommand1953_bits, 1	};
1096
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EOF_in_parseCommand1965  */
1097
static	ANTLR3_BITWORD FOLLOW_EOF_in_parseCommand1965_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1098
static  ANTLR3_BITSET_LIST FOLLOW_EOF_in_parseCommand1965	= { FOLLOW_EOF_in_parseCommand1965_bits, 1	};
1099
/** Bitset defining follow set for error recovery in rule state: FOLLOW_mainCommand_in_command1984  */
1100
static	ANTLR3_BITWORD FOLLOW_mainCommand_in_command1984_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000004000000000) };
1101
static  ANTLR3_BITSET_LIST FOLLOW_mainCommand_in_command1984	= { FOLLOW_mainCommand_in_command1984_bits, 3	};
1102
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMICOLON_in_command1987  */
1103
static	ANTLR3_BITWORD FOLLOW_SEMICOLON_in_command1987_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1104
static  ANTLR3_BITSET_LIST FOLLOW_SEMICOLON_in_command1987	= { FOLLOW_SEMICOLON_in_command1987_bits, 1	};
1105
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMICOLON_in_command1995  */
1106
static	ANTLR3_BITWORD FOLLOW_SEMICOLON_in_command1995_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1107
static  ANTLR3_BITSET_LIST FOLLOW_SEMICOLON_in_command1995	= { FOLLOW_SEMICOLON_in_command1995_bits, 1	};
1108
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LET_TOK_in_command2003  */
1109
static	ANTLR3_BITWORD FOLLOW_LET_TOK_in_command2003_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1110
static  ANTLR3_BITSET_LIST FOLLOW_LET_TOK_in_command2003	= { FOLLOW_LET_TOK_in_command2003_bits, 2	};
1111
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeOrVarLetDecl_in_command2013  */
1112
static	ANTLR3_BITWORD FOLLOW_typeOrVarLetDecl_in_command2013_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1113
static  ANTLR3_BITSET_LIST FOLLOW_typeOrVarLetDecl_in_command2013	= { FOLLOW_typeOrVarLetDecl_in_command2013_bits, 2	};
1114
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_command2028  */
1115
static	ANTLR3_BITWORD FOLLOW_COMMA_in_command2028_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1116
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_command2028	= { FOLLOW_COMMA_in_command2028_bits, 2	};
1117
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeOrVarLetDecl_in_command2030  */
1118
static	ANTLR3_BITWORD FOLLOW_typeOrVarLetDecl_in_command2030_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1119
static  ANTLR3_BITSET_LIST FOLLOW_typeOrVarLetDecl_in_command2030	= { FOLLOW_typeOrVarLetDecl_in_command2030_bits, 2	};
1120
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IN_TOK_in_command2042  */
1121
static	ANTLR3_BITWORD FOLLOW_IN_TOK_in_command2042_bits[]	= { ANTLR3_UINT64_LIT(0x3F0E000000002C80), ANTLR3_UINT64_LIT(0x08004247A080FFC0), ANTLR3_UINT64_LIT(0x8000004C00477E10), ANTLR3_UINT64_LIT(0x0000000000003028) };
1122
static  ANTLR3_BITSET_LIST FOLLOW_IN_TOK_in_command2042	= { FOLLOW_IN_TOK_in_command2042_bits, 4	};
1123
/** Bitset defining follow set for error recovery in rule state: FOLLOW_command_in_command2044  */
1124
static	ANTLR3_BITWORD FOLLOW_command_in_command2044_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1125
static  ANTLR3_BITSET_LIST FOLLOW_command_in_command2044	= { FOLLOW_command_in_command2044_bits, 1	};
1126
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_command2071  */
1127
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_command2071_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000004000000000) };
1128
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_command2071	= { FOLLOW_IDENTIFIER_in_command2071_bits, 3	};
1129
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEMICOLON_in_command2073  */
1130
static	ANTLR3_BITWORD FOLLOW_SEMICOLON_in_command2073_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1131
static  ANTLR3_BITSET_LIST FOLLOW_SEMICOLON_in_command2073	= { FOLLOW_SEMICOLON_in_command2073_bits, 1	};
1132
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letDecl_in_typeOrVarLetDecl2104  */
1133
static	ANTLR3_BITWORD FOLLOW_letDecl_in_typeOrVarLetDecl2104_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1134
static  ANTLR3_BITSET_LIST FOLLOW_letDecl_in_typeOrVarLetDecl2104	= { FOLLOW_letDecl_in_typeOrVarLetDecl2104_bits, 1	};
1135
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeLetDecl_in_typeOrVarLetDecl2108  */
1136
static	ANTLR3_BITWORD FOLLOW_typeLetDecl_in_typeOrVarLetDecl2108_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1137
static  ANTLR3_BITSET_LIST FOLLOW_typeLetDecl_in_typeOrVarLetDecl2108	= { FOLLOW_typeLetDecl_in_typeOrVarLetDecl2108_bits, 1	};
1138
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSERT_TOK_in_mainCommand2134  */
1139
static	ANTLR3_BITWORD FOLLOW_ASSERT_TOK_in_mainCommand2134_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1140
static  ANTLR3_BITSET_LIST FOLLOW_ASSERT_TOK_in_mainCommand2134	= { FOLLOW_ASSERT_TOK_in_mainCommand2134_bits, 4	};
1141
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2136  */
1142
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2136_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1143
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2136	= { FOLLOW_formula_in_mainCommand2136_bits, 1	};
1144
/** Bitset defining follow set for error recovery in rule state: FOLLOW_QUERY_TOK_in_mainCommand2146  */
1145
static	ANTLR3_BITWORD FOLLOW_QUERY_TOK_in_mainCommand2146_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1146
static  ANTLR3_BITSET_LIST FOLLOW_QUERY_TOK_in_mainCommand2146	= { FOLLOW_QUERY_TOK_in_mainCommand2146_bits, 4	};
1147
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2148  */
1148
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2148_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1149
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2148	= { FOLLOW_formula_in_mainCommand2148_bits, 1	};
1150
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CHECKSAT_TOK_in_mainCommand2157  */
1151
static	ANTLR3_BITWORD FOLLOW_CHECKSAT_TOK_in_mainCommand2157_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C112), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1152
static  ANTLR3_BITSET_LIST FOLLOW_CHECKSAT_TOK_in_mainCommand2157	= { FOLLOW_CHECKSAT_TOK_in_mainCommand2157_bits, 4	};
1153
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2159  */
1154
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2159_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1155
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2159	= { FOLLOW_formula_in_mainCommand2159_bits, 1	};
1156
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OPTION_TOK_in_mainCommand2179  */
1157
static	ANTLR3_BITWORD FOLLOW_OPTION_TOK_in_mainCommand2179_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1158
static  ANTLR3_BITSET_LIST FOLLOW_OPTION_TOK_in_mainCommand2179	= { FOLLOW_OPTION_TOK_in_mainCommand2179_bits, 3	};
1159
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2187  */
1160
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2187_bits[]	= { ANTLR3_UINT64_LIT(0x4000000000008002), ANTLR3_UINT64_LIT(0x9001030002000000), ANTLR3_UINT64_LIT(0x0008000000000000), ANTLR3_UINT64_LIT(0x0000000000000080) };
1161
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2187	= { FOLLOW_str_in_mainCommand2187_bits, 4	};
1162
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2192  */
1163
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2192_bits[]	= { ANTLR3_UINT64_LIT(0x4000000000008002), ANTLR3_UINT64_LIT(0x9001030002000000), ANTLR3_UINT64_LIT(0x0008000000000000), ANTLR3_UINT64_LIT(0x0000000000000080) };
1164
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2192	= { FOLLOW_IDENTIFIER_in_mainCommand2192_bits, 4	};
1165
/** Bitset defining follow set for error recovery in rule state: FOLLOW_symbolicExpr_in_mainCommand2204  */
1166
static	ANTLR3_BITWORD FOLLOW_symbolicExpr_in_mainCommand2204_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1167
static  ANTLR3_BITSET_LIST FOLLOW_symbolicExpr_in_mainCommand2204	= { FOLLOW_symbolicExpr_in_mainCommand2204_bits, 1	};
1168
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRUE_TOK_in_mainCommand2221  */
1169
static	ANTLR3_BITWORD FOLLOW_TRUE_TOK_in_mainCommand2221_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1170
static  ANTLR3_BITSET_LIST FOLLOW_TRUE_TOK_in_mainCommand2221	= { FOLLOW_TRUE_TOK_in_mainCommand2221_bits, 1	};
1171
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FALSE_TOK_in_mainCommand2231  */
1172
static	ANTLR3_BITWORD FOLLOW_FALSE_TOK_in_mainCommand2231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1173
static  ANTLR3_BITSET_LIST FOLLOW_FALSE_TOK_in_mainCommand2231	= { FOLLOW_FALSE_TOK_in_mainCommand2231_bits, 1	};
1174
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PUSH_TOK_in_mainCommand2260  */
1175
static	ANTLR3_BITWORD FOLLOW_PUSH_TOK_in_mainCommand2260_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1176
static  ANTLR3_BITSET_LIST FOLLOW_PUSH_TOK_in_mainCommand2260	= { FOLLOW_PUSH_TOK_in_mainCommand2260_bits, 2	};
1177
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2266  */
1178
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2266_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1179
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2266	= { FOLLOW_numeral_in_mainCommand2266_bits, 1	};
1180
/** Bitset defining follow set for error recovery in rule state: FOLLOW_POP_TOK_in_mainCommand2295  */
1181
static	ANTLR3_BITWORD FOLLOW_POP_TOK_in_mainCommand2295_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1182
static  ANTLR3_BITSET_LIST FOLLOW_POP_TOK_in_mainCommand2295	= { FOLLOW_POP_TOK_in_mainCommand2295_bits, 2	};
1183
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2301  */
1184
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2301_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1185
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2301	= { FOLLOW_numeral_in_mainCommand2301_bits, 1	};
1186
/** Bitset defining follow set for error recovery in rule state: FOLLOW_POPTO_TOK_in_mainCommand2329  */
1187
static	ANTLR3_BITWORD FOLLOW_POPTO_TOK_in_mainCommand2329_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1188
static  ANTLR3_BITSET_LIST FOLLOW_POPTO_TOK_in_mainCommand2329	= { FOLLOW_POPTO_TOK_in_mainCommand2329_bits, 2	};
1189
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2333  */
1190
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2333_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1191
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2333	= { FOLLOW_numeral_in_mainCommand2333_bits, 1	};
1192
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PUSH_SCOPE_TOK_in_mainCommand2353  */
1193
static	ANTLR3_BITWORD FOLLOW_PUSH_SCOPE_TOK_in_mainCommand2353_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1194
static  ANTLR3_BITSET_LIST FOLLOW_PUSH_SCOPE_TOK_in_mainCommand2353	= { FOLLOW_PUSH_SCOPE_TOK_in_mainCommand2353_bits, 2	};
1195
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2357  */
1196
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2357_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1197
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2357	= { FOLLOW_numeral_in_mainCommand2357_bits, 1	};
1198
/** Bitset defining follow set for error recovery in rule state: FOLLOW_POP_SCOPE_TOK_in_mainCommand2370  */
1199
static	ANTLR3_BITWORD FOLLOW_POP_SCOPE_TOK_in_mainCommand2370_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1200
static  ANTLR3_BITSET_LIST FOLLOW_POP_SCOPE_TOK_in_mainCommand2370	= { FOLLOW_POP_SCOPE_TOK_in_mainCommand2370_bits, 2	};
1201
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2374  */
1202
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2374_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1203
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2374	= { FOLLOW_numeral_in_mainCommand2374_bits, 1	};
1204
/** Bitset defining follow set for error recovery in rule state: FOLLOW_POPTO_SCOPE_TOK_in_mainCommand2387  */
1205
static	ANTLR3_BITWORD FOLLOW_POPTO_SCOPE_TOK_in_mainCommand2387_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0001000000000000) };
1206
static  ANTLR3_BITSET_LIST FOLLOW_POPTO_SCOPE_TOK_in_mainCommand2387	= { FOLLOW_POPTO_SCOPE_TOK_in_mainCommand2387_bits, 2	};
1207
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2391  */
1208
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2391_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1209
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2391	= { FOLLOW_numeral_in_mainCommand2391_bits, 1	};
1210
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RESET_TOK_in_mainCommand2405  */
1211
static	ANTLR3_BITWORD FOLLOW_RESET_TOK_in_mainCommand2405_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1212
static  ANTLR3_BITSET_LIST FOLLOW_RESET_TOK_in_mainCommand2405	= { FOLLOW_RESET_TOK_in_mainCommand2405_bits, 1	};
1213
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RESET_TOK_in_mainCommand2418  */
1214
static	ANTLR3_BITWORD FOLLOW_RESET_TOK_in_mainCommand2418_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1215
static  ANTLR3_BITSET_LIST FOLLOW_RESET_TOK_in_mainCommand2418	= { FOLLOW_RESET_TOK_in_mainCommand2418_bits, 1	};
1216
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSERTIONS_TOK_in_mainCommand2420  */
1217
static	ANTLR3_BITWORD FOLLOW_ASSERTIONS_TOK_in_mainCommand2420_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1218
static  ANTLR3_BITSET_LIST FOLLOW_ASSERTIONS_TOK_in_mainCommand2420	= { FOLLOW_ASSERTIONS_TOK_in_mainCommand2420_bits, 1	};
1219
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DATATYPE_TOK_in_mainCommand2448  */
1220
static	ANTLR3_BITWORD FOLLOW_DATATYPE_TOK_in_mainCommand2448_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1221
static  ANTLR3_BITSET_LIST FOLLOW_DATATYPE_TOK_in_mainCommand2448	= { FOLLOW_DATATYPE_TOK_in_mainCommand2448_bits, 2	};
1222
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatypeDef_in_mainCommand2460  */
1223
static	ANTLR3_BITWORD FOLLOW_datatypeDef_in_mainCommand2460_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
1224
static  ANTLR3_BITSET_LIST FOLLOW_datatypeDef_in_mainCommand2460	= { FOLLOW_datatypeDef_in_mainCommand2460_bits, 2	};
1225
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_mainCommand2469  */
1226
static	ANTLR3_BITWORD FOLLOW_COMMA_in_mainCommand2469_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1227
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_mainCommand2469	= { FOLLOW_COMMA_in_mainCommand2469_bits, 2	};
1228
/** Bitset defining follow set for error recovery in rule state: FOLLOW_datatypeDef_in_mainCommand2471  */
1229
static	ANTLR3_BITWORD FOLLOW_datatypeDef_in_mainCommand2471_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
1230
static  ANTLR3_BITSET_LIST FOLLOW_datatypeDef_in_mainCommand2471	= { FOLLOW_datatypeDef_in_mainCommand2471_bits, 2	};
1231
/** Bitset defining follow set for error recovery in rule state: FOLLOW_END_TOK_in_mainCommand2481  */
1232
static	ANTLR3_BITWORD FOLLOW_END_TOK_in_mainCommand2481_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1233
static  ANTLR3_BITSET_LIST FOLLOW_END_TOK_in_mainCommand2481	= { FOLLOW_END_TOK_in_mainCommand2481_bits, 1	};
1234
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CONTEXT_TOK_in_mainCommand2494  */
1235
static	ANTLR3_BITWORD FOLLOW_CONTEXT_TOK_in_mainCommand2494_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1236
static  ANTLR3_BITSET_LIST FOLLOW_CONTEXT_TOK_in_mainCommand2494	= { FOLLOW_CONTEXT_TOK_in_mainCommand2494_bits, 3	};
1237
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2504  */
1238
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2504_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1239
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2504	= { FOLLOW_str_in_mainCommand2504_bits, 1	};
1240
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2509  */
1241
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2509_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1242
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2509	= { FOLLOW_IDENTIFIER_in_mainCommand2509_bits, 1	};
1243
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORGET_TOK_in_mainCommand2542  */
1244
static	ANTLR3_BITWORD FOLLOW_FORGET_TOK_in_mainCommand2542_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1245
static  ANTLR3_BITSET_LIST FOLLOW_FORGET_TOK_in_mainCommand2542	= { FOLLOW_FORGET_TOK_in_mainCommand2542_bits, 2	};
1246
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_mainCommand2544  */
1247
static	ANTLR3_BITWORD FOLLOW_identifier_in_mainCommand2544_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1248
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_mainCommand2544	= { FOLLOW_identifier_in_mainCommand2544_bits, 1	};
1249
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GET_TYPE_TOK_in_mainCommand2558  */
1250
static	ANTLR3_BITWORD FOLLOW_GET_TYPE_TOK_in_mainCommand2558_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1251
static  ANTLR3_BITSET_LIST FOLLOW_GET_TYPE_TOK_in_mainCommand2558	= { FOLLOW_GET_TYPE_TOK_in_mainCommand2558_bits, 4	};
1252
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2560  */
1253
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2560_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1254
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2560	= { FOLLOW_formula_in_mainCommand2560_bits, 1	};
1255
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CHECK_TYPE_TOK_in_mainCommand2574  */
1256
static	ANTLR3_BITWORD FOLLOW_CHECK_TYPE_TOK_in_mainCommand2574_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1257
static  ANTLR3_BITSET_LIST FOLLOW_CHECK_TYPE_TOK_in_mainCommand2574	= { FOLLOW_CHECK_TYPE_TOK_in_mainCommand2574_bits, 4	};
1258
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2576  */
1259
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2576_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1260
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2576	= { FOLLOW_formula_in_mainCommand2576_bits, 1	};
1261
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_mainCommand2579  */
1262
static	ANTLR3_BITWORD FOLLOW_COLON_in_mainCommand2579_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1263
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_mainCommand2579	= { FOLLOW_COLON_in_mainCommand2579_bits, 4	};
1264
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_mainCommand2581  */
1265
static	ANTLR3_BITWORD FOLLOW_type_in_mainCommand2581_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1266
static  ANTLR3_BITSET_LIST FOLLOW_type_in_mainCommand2581	= { FOLLOW_type_in_mainCommand2581_bits, 1	};
1267
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GET_CHILD_TOK_in_mainCommand2595  */
1268
static	ANTLR3_BITWORD FOLLOW_GET_CHILD_TOK_in_mainCommand2595_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1269
static  ANTLR3_BITSET_LIST FOLLOW_GET_CHILD_TOK_in_mainCommand2595	= { FOLLOW_GET_CHILD_TOK_in_mainCommand2595_bits, 4	};
1270
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2597  */
1271
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2597_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
1272
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2597	= { FOLLOW_formula_in_mainCommand2597_bits, 2	};
1273
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_mainCommand2602  */
1274
static	ANTLR3_BITWORD FOLLOW_numeral_in_mainCommand2602_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1275
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_mainCommand2602	= { FOLLOW_numeral_in_mainCommand2602_bits, 1	};
1276
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GET_OP_TOK_in_mainCommand2615  */
1277
static	ANTLR3_BITWORD FOLLOW_GET_OP_TOK_in_mainCommand2615_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1278
static  ANTLR3_BITSET_LIST FOLLOW_GET_OP_TOK_in_mainCommand2615	= { FOLLOW_GET_OP_TOK_in_mainCommand2615_bits, 4	};
1279
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2617  */
1280
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2617_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1281
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2617	= { FOLLOW_formula_in_mainCommand2617_bits, 1	};
1282
/** Bitset defining follow set for error recovery in rule state: FOLLOW_GET_VALUE_TOK_in_mainCommand2631  */
1283
static	ANTLR3_BITWORD FOLLOW_GET_VALUE_TOK_in_mainCommand2631_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1284
static  ANTLR3_BITSET_LIST FOLLOW_GET_VALUE_TOK_in_mainCommand2631	= { FOLLOW_GET_VALUE_TOK_in_mainCommand2631_bits, 4	};
1285
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2633  */
1286
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1287
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2633	= { FOLLOW_formula_in_mainCommand2633_bits, 1	};
1288
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SUBSTITUTE_TOK_in_mainCommand2647  */
1289
static	ANTLR3_BITWORD FOLLOW_SUBSTITUTE_TOK_in_mainCommand2647_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1290
static  ANTLR3_BITSET_LIST FOLLOW_SUBSTITUTE_TOK_in_mainCommand2647	= { FOLLOW_SUBSTITUTE_TOK_in_mainCommand2647_bits, 2	};
1291
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_mainCommand2649  */
1292
static	ANTLR3_BITWORD FOLLOW_identifier_in_mainCommand2649_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1293
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_mainCommand2649	= { FOLLOW_identifier_in_mainCommand2649_bits, 1	};
1294
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_mainCommand2652  */
1295
static	ANTLR3_BITWORD FOLLOW_COLON_in_mainCommand2652_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1296
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_mainCommand2652	= { FOLLOW_COLON_in_mainCommand2652_bits, 4	};
1297
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_mainCommand2658  */
1298
static	ANTLR3_BITWORD FOLLOW_type_in_mainCommand2658_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1299
static  ANTLR3_BITSET_LIST FOLLOW_type_in_mainCommand2658	= { FOLLOW_type_in_mainCommand2658_bits, 2	};
1300
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_mainCommand2661  */
1301
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_mainCommand2661_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1302
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_mainCommand2661	= { FOLLOW_EQUAL_TOK_in_mainCommand2661_bits, 4	};
1303
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2663  */
1304
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2663_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
1305
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2663	= { FOLLOW_formula_in_mainCommand2663_bits, 2	};
1306
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_mainCommand2666  */
1307
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_mainCommand2666_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1308
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_mainCommand2666	= { FOLLOW_LBRACKET_in_mainCommand2666_bits, 2	};
1309
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_mainCommand2672  */
1310
static	ANTLR3_BITWORD FOLLOW_identifier_in_mainCommand2672_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000001000) };
1311
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_mainCommand2672	= { FOLLOW_identifier_in_mainCommand2672_bits, 1	};
1312
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_TOK_in_mainCommand2675  */
1313
static	ANTLR3_BITWORD FOLLOW_ASSIGN_TOK_in_mainCommand2675_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1314
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_TOK_in_mainCommand2675	= { FOLLOW_ASSIGN_TOK_in_mainCommand2675_bits, 4	};
1315
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2677  */
1316
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2677_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1317
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2677	= { FOLLOW_formula_in_mainCommand2677_bits, 3	};
1318
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_mainCommand2680  */
1319
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_mainCommand2680_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1320
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_mainCommand2680	= { FOLLOW_RBRACKET_in_mainCommand2680_bits, 1	};
1321
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DBG_TOK_in_mainCommand2699  */
1322
static	ANTLR3_BITWORD FOLLOW_DBG_TOK_in_mainCommand2699_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1323
static  ANTLR3_BITSET_LIST FOLLOW_DBG_TOK_in_mainCommand2699	= { FOLLOW_DBG_TOK_in_mainCommand2699_bits, 3	};
1324
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2709  */
1325
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2709_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1326
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2709	= { FOLLOW_str_in_mainCommand2709_bits, 1	};
1327
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2714  */
1328
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2714_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1329
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2714	= { FOLLOW_IDENTIFIER_in_mainCommand2714_bits, 1	};
1330
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRACE_TOK_in_mainCommand2747  */
1331
static	ANTLR3_BITWORD FOLLOW_TRACE_TOK_in_mainCommand2747_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1332
static  ANTLR3_BITSET_LIST FOLLOW_TRACE_TOK_in_mainCommand2747	= { FOLLOW_TRACE_TOK_in_mainCommand2747_bits, 3	};
1333
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2757  */
1334
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2757_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1335
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2757	= { FOLLOW_str_in_mainCommand2757_bits, 1	};
1336
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2762  */
1337
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2762_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1338
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2762	= { FOLLOW_IDENTIFIER_in_mainCommand2762_bits, 1	};
1339
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UNTRACE_TOK_in_mainCommand2794  */
1340
static	ANTLR3_BITWORD FOLLOW_UNTRACE_TOK_in_mainCommand2794_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1341
static  ANTLR3_BITSET_LIST FOLLOW_UNTRACE_TOK_in_mainCommand2794	= { FOLLOW_UNTRACE_TOK_in_mainCommand2794_bits, 3	};
1342
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2804  */
1343
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2804_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1344
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2804	= { FOLLOW_str_in_mainCommand2804_bits, 1	};
1345
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2809  */
1346
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2809_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1347
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2809	= { FOLLOW_IDENTIFIER_in_mainCommand2809_bits, 1	};
1348
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HELP_TOK_in_mainCommand2842  */
1349
static	ANTLR3_BITWORD FOLLOW_HELP_TOK_in_mainCommand2842_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1350
static  ANTLR3_BITSET_LIST FOLLOW_HELP_TOK_in_mainCommand2842	= { FOLLOW_HELP_TOK_in_mainCommand2842_bits, 3	};
1351
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand2852  */
1352
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand2852_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1353
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand2852	= { FOLLOW_str_in_mainCommand2852_bits, 1	};
1354
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand2857  */
1355
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand2857_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1356
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand2857	= { FOLLOW_IDENTIFIER_in_mainCommand2857_bits, 1	};
1357
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRANSFORM_TOK_in_mainCommand2898  */
1358
static	ANTLR3_BITWORD FOLLOW_TRANSFORM_TOK_in_mainCommand2898_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1359
static  ANTLR3_BITSET_LIST FOLLOW_TRANSFORM_TOK_in_mainCommand2898	= { FOLLOW_TRANSFORM_TOK_in_mainCommand2898_bits, 4	};
1360
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2900  */
1361
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2900_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1362
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2900	= { FOLLOW_formula_in_mainCommand2900_bits, 1	};
1363
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PRINT_TOK_in_mainCommand2914  */
1364
static	ANTLR3_BITWORD FOLLOW_PRINT_TOK_in_mainCommand2914_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1365
static  ANTLR3_BITSET_LIST FOLLOW_PRINT_TOK_in_mainCommand2914	= { FOLLOW_PRINT_TOK_in_mainCommand2914_bits, 4	};
1366
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2916  */
1367
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2916_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1368
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2916	= { FOLLOW_formula_in_mainCommand2916_bits, 1	};
1369
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PRINT_TYPE_TOK_in_mainCommand2929  */
1370
static	ANTLR3_BITWORD FOLLOW_PRINT_TYPE_TOK_in_mainCommand2929_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1371
static  ANTLR3_BITSET_LIST FOLLOW_PRINT_TYPE_TOK_in_mainCommand2929	= { FOLLOW_PRINT_TYPE_TOK_in_mainCommand2929_bits, 4	};
1372
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_mainCommand2931  */
1373
static	ANTLR3_BITWORD FOLLOW_type_in_mainCommand2931_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1374
static  ANTLR3_BITSET_LIST FOLLOW_type_in_mainCommand2931	= { FOLLOW_type_in_mainCommand2931_bits, 1	};
1375
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CALL_TOK_in_mainCommand2945  */
1376
static	ANTLR3_BITWORD FOLLOW_CALL_TOK_in_mainCommand2945_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1377
static  ANTLR3_BITSET_LIST FOLLOW_CALL_TOK_in_mainCommand2945	= { FOLLOW_CALL_TOK_in_mainCommand2945_bits, 2	};
1378
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_mainCommand2947  */
1379
static	ANTLR3_BITWORD FOLLOW_identifier_in_mainCommand2947_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1380
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_mainCommand2947	= { FOLLOW_identifier_in_mainCommand2947_bits, 4	};
1381
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand2950  */
1382
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand2950_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1383
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand2950	= { FOLLOW_formula_in_mainCommand2950_bits, 1	};
1384
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ECHO_TOK_in_mainCommand2964  */
1385
static	ANTLR3_BITWORD FOLLOW_ECHO_TOK_in_mainCommand2964_bits[]	= { ANTLR3_UINT64_LIT(0x4000000000008002), ANTLR3_UINT64_LIT(0x8001030000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1386
static  ANTLR3_BITSET_LIST FOLLOW_ECHO_TOK_in_mainCommand2964	= { FOLLOW_ECHO_TOK_in_mainCommand2964_bits, 3	};
1387
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleSymbolicExpr_in_mainCommand2972  */
1388
static	ANTLR3_BITWORD FOLLOW_simpleSymbolicExpr_in_mainCommand2972_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1389
static  ANTLR3_BITSET_LIST FOLLOW_simpleSymbolicExpr_in_mainCommand2972	= { FOLLOW_simpleSymbolicExpr_in_mainCommand2972_bits, 1	};
1390
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EXIT_TOK_in_mainCommand3002  */
1391
static	ANTLR3_BITWORD FOLLOW_EXIT_TOK_in_mainCommand3002_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1392
static  ANTLR3_BITSET_LIST FOLLOW_EXIT_TOK_in_mainCommand3002	= { FOLLOW_EXIT_TOK_in_mainCommand3002_bits, 1	};
1393
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INCLUDE_TOK_in_mainCommand3015  */
1394
static	ANTLR3_BITWORD FOLLOW_INCLUDE_TOK_in_mainCommand3015_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000020000000000), ANTLR3_UINT64_LIT(0x0008000000000000) };
1395
static  ANTLR3_BITSET_LIST FOLLOW_INCLUDE_TOK_in_mainCommand3015	= { FOLLOW_INCLUDE_TOK_in_mainCommand3015_bits, 3	};
1396
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_mainCommand3025  */
1397
static	ANTLR3_BITWORD FOLLOW_str_in_mainCommand3025_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1398
static  ANTLR3_BITSET_LIST FOLLOW_str_in_mainCommand3025	= { FOLLOW_str_in_mainCommand3025_bits, 1	};
1399
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_mainCommand3030  */
1400
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_mainCommand3030_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1401
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_mainCommand3030	= { FOLLOW_IDENTIFIER_in_mainCommand3030_bits, 1	};
1402
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DUMP_PROOF_TOK_in_mainCommand3063  */
1403
static	ANTLR3_BITWORD FOLLOW_DUMP_PROOF_TOK_in_mainCommand3063_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1404
static  ANTLR3_BITSET_LIST FOLLOW_DUMP_PROOF_TOK_in_mainCommand3063	= { FOLLOW_DUMP_PROOF_TOK_in_mainCommand3063_bits, 1	};
1405
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DUMP_UNSAT_CORE_TOK_in_mainCommand3076  */
1406
static	ANTLR3_BITWORD FOLLOW_DUMP_UNSAT_CORE_TOK_in_mainCommand3076_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1407
static  ANTLR3_BITSET_LIST FOLLOW_DUMP_UNSAT_CORE_TOK_in_mainCommand3076	= { FOLLOW_DUMP_UNSAT_CORE_TOK_in_mainCommand3076_bits, 1	};
1408
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_mainCommand3089  */
1409
static	ANTLR3_BITWORD FOLLOW_set_in_mainCommand3089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1410
static  ANTLR3_BITSET_LIST FOLLOW_set_in_mainCommand3089	= { FOLLOW_set_in_mainCommand3089_bits, 1	};
1411
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_mainCommand3160  */
1412
static	ANTLR3_BITWORD FOLLOW_set_in_mainCommand3160_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1413
static  ANTLR3_BITSET_LIST FOLLOW_set_in_mainCommand3160	= { FOLLOW_set_in_mainCommand3160_bits, 1	};
1414
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COUNTEREXAMPLE_TOK_in_mainCommand3185  */
1415
static	ANTLR3_BITWORD FOLLOW_COUNTEREXAMPLE_TOK_in_mainCommand3185_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1416
static  ANTLR3_BITSET_LIST FOLLOW_COUNTEREXAMPLE_TOK_in_mainCommand3185	= { FOLLOW_COUNTEREXAMPLE_TOK_in_mainCommand3185_bits, 1	};
1417
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COUNTERMODEL_TOK_in_mainCommand3197  */
1418
static	ANTLR3_BITWORD FOLLOW_COUNTERMODEL_TOK_in_mainCommand3197_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1419
static  ANTLR3_BITSET_LIST FOLLOW_COUNTERMODEL_TOK_in_mainCommand3197	= { FOLLOW_COUNTERMODEL_TOK_in_mainCommand3197_bits, 1	};
1420
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARITH_VAR_ORDER_TOK_in_mainCommand3210  */
1421
static	ANTLR3_BITWORD FOLLOW_ARITH_VAR_ORDER_TOK_in_mainCommand3210_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1422
static  ANTLR3_BITSET_LIST FOLLOW_ARITH_VAR_ORDER_TOK_in_mainCommand3210	= { FOLLOW_ARITH_VAR_ORDER_TOK_in_mainCommand3210_bits, 2	};
1423
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_mainCommand3212  */
1424
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_mainCommand3212_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1425
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_mainCommand3212	= { FOLLOW_LPAREN_in_mainCommand3212_bits, 4	};
1426
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand3214  */
1427
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand3214_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1428
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand3214	= { FOLLOW_formula_in_mainCommand3214_bits, 3	};
1429
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_mainCommand3219  */
1430
static	ANTLR3_BITWORD FOLLOW_COMMA_in_mainCommand3219_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1431
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_mainCommand3219	= { FOLLOW_COMMA_in_mainCommand3219_bits, 4	};
1432
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand3221  */
1433
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand3221_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1434
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand3221	= { FOLLOW_formula_in_mainCommand3221_bits, 3	};
1435
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_mainCommand3227  */
1436
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_mainCommand3227_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1437
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_mainCommand3227	= { FOLLOW_RPAREN_in_mainCommand3227_bits, 1	};
1438
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CONTINUE_TOK_in_mainCommand3240  */
1439
static	ANTLR3_BITWORD FOLLOW_CONTINUE_TOK_in_mainCommand3240_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1440
static  ANTLR3_BITSET_LIST FOLLOW_CONTINUE_TOK_in_mainCommand3240	= { FOLLOW_CONTINUE_TOK_in_mainCommand3240_bits, 1	};
1441
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RESTART_TOK_in_mainCommand3252  */
1442
static	ANTLR3_BITWORD FOLLOW_RESTART_TOK_in_mainCommand3252_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1443
static  ANTLR3_BITSET_LIST FOLLOW_RESTART_TOK_in_mainCommand3252	= { FOLLOW_RESTART_TOK_in_mainCommand3252_bits, 4	};
1444
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand3254  */
1445
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand3254_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1446
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand3254	= { FOLLOW_formula_in_mainCommand3254_bits, 1	};
1447
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RECURSIVE_FUNCTION_TOK_in_mainCommand3263  */
1448
static	ANTLR3_BITWORD FOLLOW_RECURSIVE_FUNCTION_TOK_in_mainCommand3263_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1449
static  ANTLR3_BITSET_LIST FOLLOW_RECURSIVE_FUNCTION_TOK_in_mainCommand3263	= { FOLLOW_RECURSIVE_FUNCTION_TOK_in_mainCommand3263_bits, 2	};
1450
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_mainCommand3266  */
1451
static	ANTLR3_BITWORD FOLLOW_identifier_in_mainCommand3266_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1452
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_mainCommand3266	= { FOLLOW_identifier_in_mainCommand3266_bits, 1	};
1453
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_mainCommand3279  */
1454
static	ANTLR3_BITWORD FOLLOW_COLON_in_mainCommand3279_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1455
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_mainCommand3279	= { FOLLOW_COLON_in_mainCommand3279_bits, 4	};
1456
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_mainCommand3281  */
1457
static	ANTLR3_BITWORD FOLLOW_type_in_mainCommand3281_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000020000100000) };
1458
static  ANTLR3_BITSET_LIST FOLLOW_type_in_mainCommand3281	= { FOLLOW_type_in_mainCommand3281_bits, 2	};
1459
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_mainCommand3285  */
1460
static	ANTLR3_BITWORD FOLLOW_COMMA_in_mainCommand3285_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000100000) };
1461
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_mainCommand3285	= { FOLLOW_COMMA_in_mainCommand3285_bits, 2	};
1462
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_mainCommand3303  */
1463
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_mainCommand3303_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1464
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_mainCommand3303	= { FOLLOW_EQUAL_TOK_in_mainCommand3303_bits, 4	};
1465
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_mainCommand3306  */
1466
static	ANTLR3_BITWORD FOLLOW_formula_in_mainCommand3306_bits[]	= { ANTLR3_UINT64_LIT(0x4021FFFFFFF8C112), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1467
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_mainCommand3306	= { FOLLOW_formula_in_mainCommand3306_bits, 4	};
1468
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_mainCommand3320  */
1469
static	ANTLR3_BITWORD FOLLOW_COMMA_in_mainCommand3320_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C112), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1470
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_mainCommand3320	= { FOLLOW_COMMA_in_mainCommand3320_bits, 4	};
1471
/** Bitset defining follow set for error recovery in rule state: FOLLOW_toplevelDeclaration_in_mainCommand3343  */
1472
static	ANTLR3_BITWORD FOLLOW_toplevelDeclaration_in_mainCommand3343_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1473
static  ANTLR3_BITSET_LIST FOLLOW_toplevelDeclaration_in_mainCommand3343	= { FOLLOW_toplevelDeclaration_in_mainCommand3343_bits, 1	};
1474
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3358  */
1475
static	ANTLR3_BITWORD FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3358_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1476
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3358	= { FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3358_bits, 1	};
1477
/** Bitset defining follow set for error recovery in rule state: FOLLOW_MINUS_TOK_in_simpleSymbolicExpr3370  */
1478
static	ANTLR3_BITWORD FOLLOW_MINUS_TOK_in_simpleSymbolicExpr3370_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
1479
static  ANTLR3_BITSET_LIST FOLLOW_MINUS_TOK_in_simpleSymbolicExpr3370	= { FOLLOW_MINUS_TOK_in_simpleSymbolicExpr3370_bits, 2	};
1480
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3372  */
1481
static	ANTLR3_BITWORD FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3372_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1482
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3372	= { FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3372_bits, 1	};
1483
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DECIMAL_LITERAL_in_simpleSymbolicExpr3384  */
1484
static	ANTLR3_BITWORD FOLLOW_DECIMAL_LITERAL_in_simpleSymbolicExpr3384_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1485
static  ANTLR3_BITSET_LIST FOLLOW_DECIMAL_LITERAL_in_simpleSymbolicExpr3384	= { FOLLOW_DECIMAL_LITERAL_in_simpleSymbolicExpr3384_bits, 1	};
1486
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HEX_LITERAL_in_simpleSymbolicExpr3396  */
1487
static	ANTLR3_BITWORD FOLLOW_HEX_LITERAL_in_simpleSymbolicExpr3396_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1488
static  ANTLR3_BITSET_LIST FOLLOW_HEX_LITERAL_in_simpleSymbolicExpr3396	= { FOLLOW_HEX_LITERAL_in_simpleSymbolicExpr3396_bits, 1	};
1489
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BINARY_LITERAL_in_simpleSymbolicExpr3408  */
1490
static	ANTLR3_BITWORD FOLLOW_BINARY_LITERAL_in_simpleSymbolicExpr3408_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1491
static  ANTLR3_BITSET_LIST FOLLOW_BINARY_LITERAL_in_simpleSymbolicExpr3408	= { FOLLOW_BINARY_LITERAL_in_simpleSymbolicExpr3408_bits, 1	};
1492
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_simpleSymbolicExpr3420  */
1493
static	ANTLR3_BITWORD FOLLOW_str_in_simpleSymbolicExpr3420_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1494
static  ANTLR3_BITSET_LIST FOLLOW_str_in_simpleSymbolicExpr3420	= { FOLLOW_str_in_simpleSymbolicExpr3420_bits, 1	};
1495
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_simpleSymbolicExpr3427  */
1496
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_simpleSymbolicExpr3427_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1497
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_simpleSymbolicExpr3427	= { FOLLOW_IDENTIFIER_in_simpleSymbolicExpr3427_bits, 1	};
1498
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleSymbolicExpr_in_symbolicExpr3452  */
1499
static	ANTLR3_BITWORD FOLLOW_simpleSymbolicExpr_in_symbolicExpr3452_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1500
static  ANTLR3_BITSET_LIST FOLLOW_simpleSymbolicExpr_in_symbolicExpr3452	= { FOLLOW_simpleSymbolicExpr_in_symbolicExpr3452_bits, 1	};
1501
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_symbolicExpr3465  */
1502
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_symbolicExpr3465_bits[]	= { ANTLR3_UINT64_LIT(0x4000000000008000), ANTLR3_UINT64_LIT(0x9001030000000000), ANTLR3_UINT64_LIT(0x0008002000000000) };
1503
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_symbolicExpr3465	= { FOLLOW_LPAREN_in_symbolicExpr3465_bits, 3	};
1504
/** Bitset defining follow set for error recovery in rule state: FOLLOW_symbolicExpr_in_symbolicExpr3468  */
1505
static	ANTLR3_BITWORD FOLLOW_symbolicExpr_in_symbolicExpr3468_bits[]	= { ANTLR3_UINT64_LIT(0x4000000000008000), ANTLR3_UINT64_LIT(0x9001030000000000), ANTLR3_UINT64_LIT(0x0008002000000000) };
1506
static  ANTLR3_BITSET_LIST FOLLOW_symbolicExpr_in_symbolicExpr3468	= { FOLLOW_symbolicExpr_in_symbolicExpr3468_bits, 3	};
1507
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_symbolicExpr3476  */
1508
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_symbolicExpr3476_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1509
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_symbolicExpr3476	= { FOLLOW_RPAREN_in_symbolicExpr3476_bits, 1	};
1510
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifierList_in_toplevelDeclaration3503  */
1511
static	ANTLR3_BITWORD FOLLOW_identifierList_in_toplevelDeclaration3503_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1512
static  ANTLR3_BITSET_LIST FOLLOW_identifierList_in_toplevelDeclaration3503	= { FOLLOW_identifierList_in_toplevelDeclaration3503_bits, 1	};
1513
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_toplevelDeclaration3506  */
1514
static	ANTLR3_BITWORD FOLLOW_COLON_in_toplevelDeclaration3506_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000201) };
1515
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_toplevelDeclaration3506	= { FOLLOW_COLON_in_toplevelDeclaration3506_bits, 4	};
1516
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declareVariables_in_toplevelDeclaration3514  */
1517
static	ANTLR3_BITWORD FOLLOW_declareVariables_in_toplevelDeclaration3514_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1518
static  ANTLR3_BITSET_LIST FOLLOW_declareVariables_in_toplevelDeclaration3514	= { FOLLOW_declareVariables_in_toplevelDeclaration3514_bits, 1	};
1519
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declareTypes_in_toplevelDeclaration3523  */
1520
static	ANTLR3_BITWORD FOLLOW_declareTypes_in_toplevelDeclaration3523_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1521
static  ANTLR3_BITSET_LIST FOLLOW_declareTypes_in_toplevelDeclaration3523	= { FOLLOW_declareTypes_in_toplevelDeclaration3523_bits, 1	};
1522
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifierList_in_boundVarDecl3547  */
1523
static	ANTLR3_BITWORD FOLLOW_identifierList_in_boundVarDecl3547_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1524
static  ANTLR3_BITSET_LIST FOLLOW_identifierList_in_boundVarDecl3547	= { FOLLOW_identifierList_in_boundVarDecl3547_bits, 1	};
1525
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_boundVarDecl3550  */
1526
static	ANTLR3_BITWORD FOLLOW_COLON_in_boundVarDecl3550_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1527
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_boundVarDecl3550	= { FOLLOW_COLON_in_boundVarDecl3550_bits, 4	};
1528
/** Bitset defining follow set for error recovery in rule state: FOLLOW_declareVariables_in_boundVarDecl3556  */
1529
static	ANTLR3_BITWORD FOLLOW_declareVariables_in_boundVarDecl3556_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1530
static  ANTLR3_BITSET_LIST FOLLOW_declareVariables_in_boundVarDecl3556	= { FOLLOW_declareVariables_in_boundVarDecl3556_bits, 1	};
1531
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDecl_in_boundVarDecls3577  */
1532
static	ANTLR3_BITWORD FOLLOW_boundVarDecl_in_boundVarDecls3577_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1533
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDecl_in_boundVarDecls3577	= { FOLLOW_boundVarDecl_in_boundVarDecls3577_bits, 1	};
1534
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_boundVarDecls3582  */
1535
static	ANTLR3_BITWORD FOLLOW_COMMA_in_boundVarDecls3582_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1536
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_boundVarDecls3582	= { FOLLOW_COMMA_in_boundVarDecls3582_bits, 2	};
1537
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDecl_in_boundVarDecls3584  */
1538
static	ANTLR3_BITWORD FOLLOW_boundVarDecl_in_boundVarDecls3584_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1539
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDecl_in_boundVarDecls3584	= { FOLLOW_boundVarDecl_in_boundVarDecls3584_bits, 1	};
1540
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3607  */
1541
static	ANTLR3_BITWORD FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3607_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1542
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3607	= { FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3607_bits, 1	};
1543
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_boundVarDeclsReturn3612  */
1544
static	ANTLR3_BITWORD FOLLOW_COMMA_in_boundVarDeclsReturn3612_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1545
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_boundVarDeclsReturn3612	= { FOLLOW_COMMA_in_boundVarDeclsReturn3612_bits, 2	};
1546
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3614  */
1547
static	ANTLR3_BITWORD FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3614_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1548
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3614	= { FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3614_bits, 1	};
1549
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifierList_in_boundVarDeclReturn3637  */
1550
static	ANTLR3_BITWORD FOLLOW_identifierList_in_boundVarDeclReturn3637_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1551
static  ANTLR3_BITSET_LIST FOLLOW_identifierList_in_boundVarDeclReturn3637	= { FOLLOW_identifierList_in_boundVarDeclReturn3637_bits, 1	};
1552
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_boundVarDeclReturn3640  */
1553
static	ANTLR3_BITWORD FOLLOW_COLON_in_boundVarDeclReturn3640_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1554
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_boundVarDeclReturn3640	= { FOLLOW_COLON_in_boundVarDeclReturn3640_bits, 4	};
1555
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_boundVarDeclReturn3642  */
1556
static	ANTLR3_BITWORD FOLLOW_type_in_boundVarDeclReturn3642_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1557
static  ANTLR3_BITSET_LIST FOLLOW_type_in_boundVarDeclReturn3642	= { FOLLOW_type_in_boundVarDeclReturn3642_bits, 1	};
1558
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_declareTypes3676  */
1559
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_declareTypes3676_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1560
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_declareTypes3676	= { FOLLOW_TYPE_TOK_in_declareTypes3676_bits, 1	};
1561
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_declareTypes3695  */
1562
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_declareTypes3695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1563
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_declareTypes3695	= { FOLLOW_TYPE_TOK_in_declareTypes3695_bits, 2	};
1564
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_declareTypes3697  */
1565
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_declareTypes3697_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1566
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_declareTypes3697	= { FOLLOW_EQUAL_TOK_in_declareTypes3697_bits, 4	};
1567
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_declareTypes3699  */
1568
static	ANTLR3_BITWORD FOLLOW_type_in_declareTypes3699_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1569
static  ANTLR3_BITSET_LIST FOLLOW_type_in_declareTypes3699	= { FOLLOW_type_in_declareTypes3699_bits, 1	};
1570
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_declareVariables3733  */
1571
static	ANTLR3_BITWORD FOLLOW_type_in_declareVariables3733_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000100000) };
1572
static  ANTLR3_BITSET_LIST FOLLOW_type_in_declareVariables3733	= { FOLLOW_type_in_declareVariables3733_bits, 2	};
1573
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_declareVariables3738  */
1574
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_declareVariables3738_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1575
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_declareVariables3738	= { FOLLOW_EQUAL_TOK_in_declareVariables3738_bits, 4	};
1576
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_declareVariables3740  */
1577
static	ANTLR3_BITWORD FOLLOW_formula_in_declareVariables3740_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1578
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_declareVariables3740	= { FOLLOW_formula_in_declareVariables3740_bits, 1	};
1579
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_identifierList3771  */
1580
static	ANTLR3_BITWORD FOLLOW_identifier_in_identifierList3771_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1581
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_identifierList3771	= { FOLLOW_identifier_in_identifierList3771_bits, 1	};
1582
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_identifierList3782  */
1583
static	ANTLR3_BITWORD FOLLOW_COMMA_in_identifierList3782_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1584
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_identifierList3782	= { FOLLOW_COMMA_in_identifierList3782_bits, 2	};
1585
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_identifierList3784  */
1586
static	ANTLR3_BITWORD FOLLOW_identifier_in_identifierList3784_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1587
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_identifierList3784	= { FOLLOW_identifier_in_identifierList3784_bits, 1	};
1588
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDENTIFIER_in_identifier3806  */
1589
static	ANTLR3_BITWORD FOLLOW_IDENTIFIER_in_identifier3806_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1590
static  ANTLR3_BITSET_LIST FOLLOW_IDENTIFIER_in_identifier3806	= { FOLLOW_IDENTIFIER_in_identifier3806_bits, 1	};
1591
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedTypePossiblyFunctionLHS_in_type3839  */
1592
static	ANTLR3_BITWORD FOLLOW_restrictedTypePossiblyFunctionLHS_in_type3839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000202) };
1593
static  ANTLR3_BITSET_LIST FOLLOW_restrictedTypePossiblyFunctionLHS_in_type3839	= { FOLLOW_restrictedTypePossiblyFunctionLHS_in_type3839_bits, 1	};
1594
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARROW_TOK_in_type3854  */
1595
static	ANTLR3_BITWORD FOLLOW_ARROW_TOK_in_type3854_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1596
static  ANTLR3_BITSET_LIST FOLLOW_ARROW_TOK_in_type3854	= { FOLLOW_ARROW_TOK_in_type3854_bits, 4	};
1597
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_type3856  */
1598
static	ANTLR3_BITWORD FOLLOW_type_in_type3856_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1599
static  ANTLR3_BITSET_LIST FOLLOW_type_in_type3856	= { FOLLOW_type_in_type3856_bits, 1	};
1600
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LET_TOK_in_type3879  */
1601
static	ANTLR3_BITWORD FOLLOW_LET_TOK_in_type3879_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1602
static  ANTLR3_BITSET_LIST FOLLOW_LET_TOK_in_type3879	= { FOLLOW_LET_TOK_in_type3879_bits, 2	};
1603
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeLetDecl_in_type3887  */
1604
static	ANTLR3_BITWORD FOLLOW_typeLetDecl_in_type3887_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1605
static  ANTLR3_BITSET_LIST FOLLOW_typeLetDecl_in_type3887	= { FOLLOW_typeLetDecl_in_type3887_bits, 2	};
1606
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_type3892  */
1607
static	ANTLR3_BITWORD FOLLOW_COMMA_in_type3892_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1608
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_type3892	= { FOLLOW_COMMA_in_type3892_bits, 2	};
1609
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeLetDecl_in_type3894  */
1610
static	ANTLR3_BITWORD FOLLOW_typeLetDecl_in_type3894_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1611
static  ANTLR3_BITSET_LIST FOLLOW_typeLetDecl_in_type3894	= { FOLLOW_typeLetDecl_in_type3894_bits, 2	};
1612
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IN_TOK_in_type3900  */
1613
static	ANTLR3_BITWORD FOLLOW_IN_TOK_in_type3900_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1614
static  ANTLR3_BITSET_LIST FOLLOW_IN_TOK_in_type3900	= { FOLLOW_IN_TOK_in_type3900_bits, 4	};
1615
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_type3902  */
1616
static	ANTLR3_BITWORD FOLLOW_type_in_type3902_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1617
static  ANTLR3_BITSET_LIST FOLLOW_type_in_type3902	= { FOLLOW_type_in_type3902_bits, 1	};
1618
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedTypePossiblyFunctionLHS_in_restrictedType3938  */
1619
static	ANTLR3_BITWORD FOLLOW_restrictedTypePossiblyFunctionLHS_in_restrictedType3938_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1620
static  ANTLR3_BITSET_LIST FOLLOW_restrictedTypePossiblyFunctionLHS_in_restrictedType3938	= { FOLLOW_restrictedTypePossiblyFunctionLHS_in_restrictedType3938_bits, 1	};
1621
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS3972  */
1622
static	ANTLR3_BITWORD FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS3972_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0100000000000000) };
1623
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS3972	= { FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS3972_bits, 2	};
1624
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parameterization_in_restrictedTypePossiblyFunctionLHS3979  */
1625
static	ANTLR3_BITWORD FOLLOW_parameterization_in_restrictedTypePossiblyFunctionLHS3979_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1626
static  ANTLR3_BITSET_LIST FOLLOW_parameterization_in_restrictedTypePossiblyFunctionLHS3979	= { FOLLOW_parameterization_in_restrictedTypePossiblyFunctionLHS3979_bits, 1	};
1627
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARRAY_TOK_in_restrictedTypePossiblyFunctionLHS4000  */
1628
static	ANTLR3_BITWORD FOLLOW_ARRAY_TOK_in_restrictedTypePossiblyFunctionLHS4000_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1629
static  ANTLR3_BITSET_LIST FOLLOW_ARRAY_TOK_in_restrictedTypePossiblyFunctionLHS4000	= { FOLLOW_ARRAY_TOK_in_restrictedTypePossiblyFunctionLHS4000_bits, 4	};
1630
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4002  */
1631
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4002_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
1632
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4002	= { FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4002_bits, 3	};
1633
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4005  */
1634
static	ANTLR3_BITWORD FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4005_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1635
static  ANTLR3_BITSET_LIST FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4005	= { FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4005_bits, 4	};
1636
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4007  */
1637
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4007_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1638
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4007	= { FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4007_bits, 1	};
1639
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SET_TOK_in_restrictedTypePossiblyFunctionLHS4020  */
1640
static	ANTLR3_BITWORD FOLLOW_SET_TOK_in_restrictedTypePossiblyFunctionLHS4020_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
1641
static  ANTLR3_BITSET_LIST FOLLOW_SET_TOK_in_restrictedTypePossiblyFunctionLHS4020	= { FOLLOW_SET_TOK_in_restrictedTypePossiblyFunctionLHS4020_bits, 3	};
1642
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4022  */
1643
static	ANTLR3_BITWORD FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4022_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1644
static  ANTLR3_BITSET_LIST FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4022	= { FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4022_bits, 4	};
1645
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4024  */
1646
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4024_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1647
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4024	= { FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4024_bits, 1	};
1648
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SUBTYPE_TOK_in_restrictedTypePossiblyFunctionLHS4044  */
1649
static	ANTLR3_BITWORD FOLLOW_SUBTYPE_TOK_in_restrictedTypePossiblyFunctionLHS4044_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1650
static  ANTLR3_BITSET_LIST FOLLOW_SUBTYPE_TOK_in_restrictedTypePossiblyFunctionLHS4044	= { FOLLOW_SUBTYPE_TOK_in_restrictedTypePossiblyFunctionLHS4044_bits, 2	};
1651
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4046  */
1652
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4046_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1653
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4046	= { FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4046_bits, 4	};
1654
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4058  */
1655
static	ANTLR3_BITWORD FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4058_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1656
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4058	= { FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4058_bits, 3	};
1657
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4063  */
1658
static	ANTLR3_BITWORD FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4063_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1659
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4063	= { FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4063_bits, 4	};
1660
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4065  */
1661
static	ANTLR3_BITWORD FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4065_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1662
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4065	= { FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4065_bits, 3	};
1663
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4071  */
1664
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4071_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1665
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4071	= { FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4071_bits, 1	};
1666
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_restrictedTypePossiblyFunctionLHS4090  */
1667
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_restrictedTypePossiblyFunctionLHS4090_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000300000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1668
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_restrictedTypePossiblyFunctionLHS4090	= { FOLLOW_LBRACKET_in_restrictedTypePossiblyFunctionLHS4090_bits, 4	};
1669
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4094  */
1670
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4094_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1671
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4094	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4094_bits, 3	};
1672
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4105  */
1673
static	ANTLR3_BITWORD FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4105_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1674
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4105	= { FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4105_bits, 4	};
1675
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4107  */
1676
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4107_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1677
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4107	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4107_bits, 3	};
1678
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_restrictedTypePossiblyFunctionLHS4118  */
1679
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_restrictedTypePossiblyFunctionLHS4118_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1680
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_restrictedTypePossiblyFunctionLHS4118	= { FOLLOW_RBRACKET_in_restrictedTypePossiblyFunctionLHS4118_bits, 1	};
1681
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SQHASH_in_restrictedTypePossiblyFunctionLHS4137  */
1682
static	ANTLR3_BITWORD FOLLOW_SQHASH_in_restrictedTypePossiblyFunctionLHS4137_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000022000000000) };
1683
static  ANTLR3_BITSET_LIST FOLLOW_SQHASH_in_restrictedTypePossiblyFunctionLHS4137	= { FOLLOW_SQHASH_in_restrictedTypePossiblyFunctionLHS4137_bits, 2	};
1684
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4141  */
1685
static	ANTLR3_BITWORD FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4141_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1686
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4141	= { FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4141_bits, 1	};
1687
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4144  */
1688
static	ANTLR3_BITWORD FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4144_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1689
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4144	= { FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4144_bits, 4	};
1690
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4146  */
1691
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4146_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1692
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4146	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4146_bits, 2	};
1693
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4157  */
1694
static	ANTLR3_BITWORD FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4157_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1695
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4157	= { FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4157_bits, 2	};
1696
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4159  */
1697
static	ANTLR3_BITWORD FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4159_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1698
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4159	= { FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4159_bits, 1	};
1699
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4162  */
1700
static	ANTLR3_BITWORD FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4162_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1701
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4162	= { FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4162_bits, 4	};
1702
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4164  */
1703
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4164_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1704
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4164	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4164_bits, 2	};
1705
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HASHSQ_in_restrictedTypePossiblyFunctionLHS4175  */
1706
static	ANTLR3_BITWORD FOLLOW_HASHSQ_in_restrictedTypePossiblyFunctionLHS4175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1707
static  ANTLR3_BITSET_LIST FOLLOW_HASHSQ_in_restrictedTypePossiblyFunctionLHS4175	= { FOLLOW_HASHSQ_in_restrictedTypePossiblyFunctionLHS4175_bits, 1	};
1708
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BITVECTOR_TOK_in_restrictedTypePossiblyFunctionLHS4194  */
1709
static	ANTLR3_BITWORD FOLLOW_BITVECTOR_TOK_in_restrictedTypePossiblyFunctionLHS4194_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1710
static  ANTLR3_BITSET_LIST FOLLOW_BITVECTOR_TOK_in_restrictedTypePossiblyFunctionLHS4194	= { FOLLOW_BITVECTOR_TOK_in_restrictedTypePossiblyFunctionLHS4194_bits, 2	};
1711
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4196  */
1712
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4196_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
1713
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4196	= { FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4196_bits, 2	};
1714
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_restrictedTypePossiblyFunctionLHS4200  */
1715
static	ANTLR3_BITWORD FOLLOW_numeral_in_restrictedTypePossiblyFunctionLHS4200_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1716
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_restrictedTypePossiblyFunctionLHS4200	= { FOLLOW_numeral_in_restrictedTypePossiblyFunctionLHS4200_bits, 3	};
1717
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4202  */
1718
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4202_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1719
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4202	= { FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4202_bits, 1	};
1720
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_TOK_in_restrictedTypePossiblyFunctionLHS4221  */
1721
static	ANTLR3_BITWORD FOLLOW_STRING_TOK_in_restrictedTypePossiblyFunctionLHS4221_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1722
static  ANTLR3_BITSET_LIST FOLLOW_STRING_TOK_in_restrictedTypePossiblyFunctionLHS4221	= { FOLLOW_STRING_TOK_in_restrictedTypePossiblyFunctionLHS4221_bits, 1	};
1723
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BOOLEAN_TOK_in_restrictedTypePossiblyFunctionLHS4236  */
1724
static	ANTLR3_BITWORD FOLLOW_BOOLEAN_TOK_in_restrictedTypePossiblyFunctionLHS4236_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1725
static  ANTLR3_BITSET_LIST FOLLOW_BOOLEAN_TOK_in_restrictedTypePossiblyFunctionLHS4236	= { FOLLOW_BOOLEAN_TOK_in_restrictedTypePossiblyFunctionLHS4236_bits, 1	};
1726
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REAL_TOK_in_restrictedTypePossiblyFunctionLHS4244  */
1727
static	ANTLR3_BITWORD FOLLOW_REAL_TOK_in_restrictedTypePossiblyFunctionLHS4244_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1728
static  ANTLR3_BITSET_LIST FOLLOW_REAL_TOK_in_restrictedTypePossiblyFunctionLHS4244	= { FOLLOW_REAL_TOK_in_restrictedTypePossiblyFunctionLHS4244_bits, 1	};
1729
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INT_TOK_in_restrictedTypePossiblyFunctionLHS4252  */
1730
static	ANTLR3_BITWORD FOLLOW_INT_TOK_in_restrictedTypePossiblyFunctionLHS4252_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1731
static  ANTLR3_BITSET_LIST FOLLOW_INT_TOK_in_restrictedTypePossiblyFunctionLHS4252	= { FOLLOW_INT_TOK_in_restrictedTypePossiblyFunctionLHS4252_bits, 1	};
1732
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4267  */
1733
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4267_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1734
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4267	= { FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4267_bits, 4	};
1735
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4269  */
1736
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4269_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1737
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4269	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4269_bits, 3	};
1738
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4280  */
1739
static	ANTLR3_BITWORD FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4280_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1740
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4280	= { FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4280_bits, 4	};
1741
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4282  */
1742
static	ANTLR3_BITWORD FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4282_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1743
static  ANTLR3_BITSET_LIST FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4282	= { FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4282_bits, 3	};
1744
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4290  */
1745
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4290_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1746
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4290	= { FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4290_bits, 1	};
1747
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_parameterization4315  */
1748
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_parameterization4315_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1749
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_parameterization4315	= { FOLLOW_LBRACKET_in_parameterization4315_bits, 4	};
1750
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_parameterization4317  */
1751
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_parameterization4317_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1752
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_parameterization4317	= { FOLLOW_restrictedType_in_parameterization4317_bits, 3	};
1753
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_parameterization4328  */
1754
static	ANTLR3_BITWORD FOLLOW_COMMA_in_parameterization4328_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1755
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_parameterization4328	= { FOLLOW_COMMA_in_parameterization4328_bits, 4	};
1756
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_parameterization4330  */
1757
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_parameterization4330_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1758
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_parameterization4330	= { FOLLOW_restrictedType_in_parameterization4330_bits, 3	};
1759
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_parameterization4338  */
1760
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_parameterization4338_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1761
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_parameterization4338	= { FOLLOW_RBRACKET_in_parameterization4338_bits, 1	};
1762
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_typeLetDecl4357  */
1763
static	ANTLR3_BITWORD FOLLOW_identifier_in_typeLetDecl4357_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1764
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_typeLetDecl4357	= { FOLLOW_identifier_in_typeLetDecl4357_bits, 2	};
1765
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_typeLetDecl4361  */
1766
static	ANTLR3_BITWORD FOLLOW_COLON_in_typeLetDecl4361_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000200) };
1767
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_typeLetDecl4361	= { FOLLOW_COLON_in_typeLetDecl4361_bits, 4	};
1768
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_typeLetDecl4363  */
1769
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_typeLetDecl4363_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1770
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_typeLetDecl4363	= { FOLLOW_TYPE_TOK_in_typeLetDecl4363_bits, 2	};
1771
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_typeLetDecl4367  */
1772
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_typeLetDecl4367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
1773
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_typeLetDecl4367	= { FOLLOW_EQUAL_TOK_in_typeLetDecl4367_bits, 4	};
1774
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_typeLetDecl4369  */
1775
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_typeLetDecl4369_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1776
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_typeLetDecl4369	= { FOLLOW_restrictedType_in_typeLetDecl4369_bits, 1	};
1777
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nots_in_formula4399  */
1778
static	ANTLR3_BITWORD FOLLOW_nots_in_formula4399_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1779
static  ANTLR3_BITSET_LIST FOLLOW_nots_in_formula4399	= { FOLLOW_nots_in_formula4399_bits, 4	};
1780
/** Bitset defining follow set for error recovery in rule state: FOLLOW_prefixFormula_in_formula4407  */
1781
static	ANTLR3_BITWORD FOLLOW_prefixFormula_in_formula4407_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1782
static  ANTLR3_BITSET_LIST FOLLOW_prefixFormula_in_formula4407	= { FOLLOW_prefixFormula_in_formula4407_bits, 1	};
1783
/** Bitset defining follow set for error recovery in rule state: FOLLOW_comparison_in_formula4424  */
1784
static	ANTLR3_BITWORD FOLLOW_comparison_in_formula4424_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000042), ANTLR3_UINT64_LIT(0x0000280000000000), ANTLR3_UINT64_LIT(0x0000000000000020), ANTLR3_UINT64_LIT(0x0000000000010000) };
1785
static  ANTLR3_BITSET_LIST FOLLOW_comparison_in_formula4424	= { FOLLOW_comparison_in_formula4424_bits, 4	};
1786
/** Bitset defining follow set for error recovery in rule state: FOLLOW_morecomparisons_in_formula4441  */
1787
static	ANTLR3_BITWORD FOLLOW_morecomparisons_in_formula4441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1788
static  ANTLR3_BITSET_LIST FOLLOW_morecomparisons_in_formula4441	= { FOLLOW_morecomparisons_in_formula4441_bits, 1	};
1789
/** Bitset defining follow set for error recovery in rule state: FOLLOW_booleanBinop_in_morecomparisons4480  */
1790
static	ANTLR3_BITWORD FOLLOW_booleanBinop_in_morecomparisons4480_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1791
static  ANTLR3_BITSET_LIST FOLLOW_booleanBinop_in_morecomparisons4480	= { FOLLOW_booleanBinop_in_morecomparisons4480_bits, 4	};
1792
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nots_in_morecomparisons4491  */
1793
static	ANTLR3_BITWORD FOLLOW_nots_in_morecomparisons4491_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1794
static  ANTLR3_BITSET_LIST FOLLOW_nots_in_morecomparisons4491	= { FOLLOW_nots_in_morecomparisons4491_bits, 4	};
1795
/** Bitset defining follow set for error recovery in rule state: FOLLOW_prefixFormula_in_morecomparisons4499  */
1796
static	ANTLR3_BITWORD FOLLOW_prefixFormula_in_morecomparisons4499_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1797
static  ANTLR3_BITSET_LIST FOLLOW_prefixFormula_in_morecomparisons4499	= { FOLLOW_prefixFormula_in_morecomparisons4499_bits, 1	};
1798
/** Bitset defining follow set for error recovery in rule state: FOLLOW_comparison_in_morecomparisons4516  */
1799
static	ANTLR3_BITWORD FOLLOW_comparison_in_morecomparisons4516_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000042), ANTLR3_UINT64_LIT(0x0000280000000000), ANTLR3_UINT64_LIT(0x0000000000000020), ANTLR3_UINT64_LIT(0x0000000000010000) };
1800
static  ANTLR3_BITSET_LIST FOLLOW_comparison_in_morecomparisons4516	= { FOLLOW_comparison_in_morecomparisons4516_bits, 4	};
1801
/** Bitset defining follow set for error recovery in rule state: FOLLOW_morecomparisons_in_morecomparisons4533  */
1802
static	ANTLR3_BITWORD FOLLOW_morecomparisons_in_morecomparisons4533_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1803
static  ANTLR3_BITSET_LIST FOLLOW_morecomparisons_in_morecomparisons4533	= { FOLLOW_morecomparisons_in_morecomparisons4533_bits, 1	};
1804
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_nots4562  */
1805
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_nots4562_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000002) };
1806
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_nots4562	= { FOLLOW_NOT_TOK_in_nots4562_bits, 3	};
1807
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_prefixFormula4594  */
1808
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_prefixFormula4594_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1809
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_prefixFormula4594	= { FOLLOW_FORALL_TOK_in_prefixFormula4594_bits, 2	};
1810
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EXISTS_TOK_in_prefixFormula4600  */
1811
static	ANTLR3_BITWORD FOLLOW_EXISTS_TOK_in_prefixFormula4600_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1812
static  ANTLR3_BITSET_LIST FOLLOW_EXISTS_TOK_in_prefixFormula4600	= { FOLLOW_EXISTS_TOK_in_prefixFormula4600_bits, 2	};
1813
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_prefixFormula4612  */
1814
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_prefixFormula4612_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1815
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_prefixFormula4612	= { FOLLOW_LPAREN_in_prefixFormula4612_bits, 2	};
1816
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDecl_in_prefixFormula4618  */
1817
static	ANTLR3_BITWORD FOLLOW_boundVarDecl_in_prefixFormula4618_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1818
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDecl_in_prefixFormula4618	= { FOLLOW_boundVarDecl_in_prefixFormula4618_bits, 3	};
1819
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_prefixFormula4633  */
1820
static	ANTLR3_BITWORD FOLLOW_COMMA_in_prefixFormula4633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1821
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_prefixFormula4633	= { FOLLOW_COMMA_in_prefixFormula4633_bits, 2	};
1822
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDecl_in_prefixFormula4635  */
1823
static	ANTLR3_BITWORD FOLLOW_boundVarDecl_in_prefixFormula4635_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1824
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDecl_in_prefixFormula4635	= { FOLLOW_boundVarDecl_in_prefixFormula4635_bits, 3	};
1825
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_prefixFormula4653  */
1826
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_prefixFormula4653_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1827
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_prefixFormula4653	= { FOLLOW_RPAREN_in_prefixFormula4653_bits, 1	};
1828
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_prefixFormula4661  */
1829
static	ANTLR3_BITWORD FOLLOW_COLON_in_prefixFormula4661_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF8000C2), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1830
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_prefixFormula4661	= { FOLLOW_COLON_in_prefixFormula4661_bits, 4	};
1831
/** Bitset defining follow set for error recovery in rule state: FOLLOW_instantiationPatterns_in_prefixFormula4663  */
1832
static	ANTLR3_BITWORD FOLLOW_instantiationPatterns_in_prefixFormula4663_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1833
static  ANTLR3_BITSET_LIST FOLLOW_instantiationPatterns_in_prefixFormula4663	= { FOLLOW_instantiationPatterns_in_prefixFormula4663_bits, 4	};
1834
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_prefixFormula4667  */
1835
static	ANTLR3_BITWORD FOLLOW_formula_in_prefixFormula4667_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1836
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_prefixFormula4667	= { FOLLOW_formula_in_prefixFormula4667_bits, 1	};
1837
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LET_TOK_in_prefixFormula4686  */
1838
static	ANTLR3_BITWORD FOLLOW_LET_TOK_in_prefixFormula4686_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1839
static  ANTLR3_BITSET_LIST FOLLOW_LET_TOK_in_prefixFormula4686	= { FOLLOW_LET_TOK_in_prefixFormula4686_bits, 2	};
1840
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letDecl_in_prefixFormula4694  */
1841
static	ANTLR3_BITWORD FOLLOW_letDecl_in_prefixFormula4694_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1842
static  ANTLR3_BITSET_LIST FOLLOW_letDecl_in_prefixFormula4694	= { FOLLOW_letDecl_in_prefixFormula4694_bits, 2	};
1843
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_prefixFormula4698  */
1844
static	ANTLR3_BITWORD FOLLOW_COMMA_in_prefixFormula4698_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1845
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_prefixFormula4698	= { FOLLOW_COMMA_in_prefixFormula4698_bits, 2	};
1846
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letDecl_in_prefixFormula4700  */
1847
static	ANTLR3_BITWORD FOLLOW_letDecl_in_prefixFormula4700_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0004000000000000) };
1848
static  ANTLR3_BITSET_LIST FOLLOW_letDecl_in_prefixFormula4700	= { FOLLOW_letDecl_in_prefixFormula4700_bits, 2	};
1849
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IN_TOK_in_prefixFormula4709  */
1850
static	ANTLR3_BITWORD FOLLOW_IN_TOK_in_prefixFormula4709_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1851
static  ANTLR3_BITSET_LIST FOLLOW_IN_TOK_in_prefixFormula4709	= { FOLLOW_IN_TOK_in_prefixFormula4709_bits, 4	};
1852
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_prefixFormula4711  */
1853
static	ANTLR3_BITWORD FOLLOW_formula_in_prefixFormula4711_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1854
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_prefixFormula4711	= { FOLLOW_formula_in_prefixFormula4711_bits, 1	};
1855
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LAMBDA_TOK_in_prefixFormula4726  */
1856
static	ANTLR3_BITWORD FOLLOW_LAMBDA_TOK_in_prefixFormula4726_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1857
static  ANTLR3_BITSET_LIST FOLLOW_LAMBDA_TOK_in_prefixFormula4726	= { FOLLOW_LAMBDA_TOK_in_prefixFormula4726_bits, 2	};
1858
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_prefixFormula4730  */
1859
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_prefixFormula4730_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1860
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_prefixFormula4730	= { FOLLOW_LPAREN_in_prefixFormula4730_bits, 2	};
1861
/** Bitset defining follow set for error recovery in rule state: FOLLOW_boundVarDeclsReturn_in_prefixFormula4736  */
1862
static	ANTLR3_BITWORD FOLLOW_boundVarDeclsReturn_in_prefixFormula4736_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1863
static  ANTLR3_BITSET_LIST FOLLOW_boundVarDeclsReturn_in_prefixFormula4736	= { FOLLOW_boundVarDeclsReturn_in_prefixFormula4736_bits, 3	};
1864
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_prefixFormula4743  */
1865
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_prefixFormula4743_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1866
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_prefixFormula4743	= { FOLLOW_RPAREN_in_prefixFormula4743_bits, 1	};
1867
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_prefixFormula4745  */
1868
static	ANTLR3_BITWORD FOLLOW_COLON_in_prefixFormula4745_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1869
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_prefixFormula4745	= { FOLLOW_COLON_in_prefixFormula4745_bits, 4	};
1870
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_prefixFormula4747  */
1871
static	ANTLR3_BITWORD FOLLOW_formula_in_prefixFormula4747_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1872
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_prefixFormula4747	= { FOLLOW_formula_in_prefixFormula4747_bits, 1	};
1873
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PATTERN_TOK_in_instantiationPatterns4775  */
1874
static	ANTLR3_BITWORD FOLLOW_PATTERN_TOK_in_instantiationPatterns4775_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
1875
static  ANTLR3_BITSET_LIST FOLLOW_PATTERN_TOK_in_instantiationPatterns4775	= { FOLLOW_PATTERN_TOK_in_instantiationPatterns4775_bits, 2	};
1876
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_instantiationPatterns4777  */
1877
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_instantiationPatterns4777_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1878
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_instantiationPatterns4777	= { FOLLOW_LPAREN_in_instantiationPatterns4777_bits, 4	};
1879
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_instantiationPatterns4779  */
1880
static	ANTLR3_BITWORD FOLLOW_formula_in_instantiationPatterns4779_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1881
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_instantiationPatterns4779	= { FOLLOW_formula_in_instantiationPatterns4779_bits, 3	};
1882
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_instantiationPatterns4785  */
1883
static	ANTLR3_BITWORD FOLLOW_COMMA_in_instantiationPatterns4785_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1884
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_instantiationPatterns4785	= { FOLLOW_COMMA_in_instantiationPatterns4785_bits, 4	};
1885
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_instantiationPatterns4787  */
1886
static	ANTLR3_BITWORD FOLLOW_formula_in_instantiationPatterns4787_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
1887
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_instantiationPatterns4787	= { FOLLOW_formula_in_instantiationPatterns4787_bits, 3	};
1888
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_instantiationPatterns4795  */
1889
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_instantiationPatterns4795_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
1890
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_instantiationPatterns4795	= { FOLLOW_RPAREN_in_instantiationPatterns4795_bits, 1	};
1891
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_instantiationPatterns4797  */
1892
static	ANTLR3_BITWORD FOLLOW_COLON_in_instantiationPatterns4797_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000080) };
1893
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_instantiationPatterns4797	= { FOLLOW_COLON_in_instantiationPatterns4797_bits, 3	};
1894
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_letDecl4834  */
1895
static	ANTLR3_BITWORD FOLLOW_identifier_in_letDecl4834_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1896
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_letDecl4834	= { FOLLOW_identifier_in_letDecl4834_bits, 2	};
1897
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_letDecl4837  */
1898
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_letDecl4837_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1899
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_letDecl4837	= { FOLLOW_EQUAL_TOK_in_letDecl4837_bits, 4	};
1900
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_letDecl4839  */
1901
static	ANTLR3_BITWORD FOLLOW_formula_in_letDecl4839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1902
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_letDecl4839	= { FOLLOW_formula_in_letDecl4839_bits, 1	};
1903
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_comparison4908  */
1904
static	ANTLR3_BITWORD FOLLOW_term_in_comparison4908_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x6400000848100001) };
1905
static  ANTLR3_BITSET_LIST FOLLOW_term_in_comparison4908	= { FOLLOW_term_in_comparison4908_bits, 2	};
1906
/** Bitset defining follow set for error recovery in rule state: FOLLOW_comparisonBinop_in_comparison4919  */
1907
static	ANTLR3_BITWORD FOLLOW_comparisonBinop_in_comparison4919_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1908
static  ANTLR3_BITSET_LIST FOLLOW_comparisonBinop_in_comparison4919	= { FOLLOW_comparisonBinop_in_comparison4919_bits, 4	};
1909
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_comparison4922  */
1910
static	ANTLR3_BITWORD FOLLOW_term_in_comparison4922_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x6400000848100001) };
1911
static  ANTLR3_BITSET_LIST FOLLOW_term_in_comparison4922	= { FOLLOW_term_in_comparison4922_bits, 2	};
1912
/** Bitset defining follow set for error recovery in rule state: FOLLOW_uminusTerm_in_term5077  */
1913
static	ANTLR3_BITWORD FOLLOW_uminusTerm_in_term5077_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800001000008), ANTLR3_UINT64_LIT(0x0000100000000101), ANTLR3_UINT64_LIT(0x0000000000008000) };
1914
static  ANTLR3_BITSET_LIST FOLLOW_uminusTerm_in_term5077	= { FOLLOW_uminusTerm_in_term5077_bits, 4	};
1915
/** Bitset defining follow set for error recovery in rule state: FOLLOW_WITH_TOK_in_term5086  */
1916
static	ANTLR3_BITWORD FOLLOW_WITH_TOK_in_term5086_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000010) };
1917
static  ANTLR3_BITSET_LIST FOLLOW_WITH_TOK_in_term5086	= { FOLLOW_WITH_TOK_in_term5086_bits, 2	};
1918
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayStore_in_term5096  */
1919
static	ANTLR3_BITWORD FOLLOW_arrayStore_in_term5096_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1920
static  ANTLR3_BITSET_LIST FOLLOW_arrayStore_in_term5096	= { FOLLOW_arrayStore_in_term5096_bits, 1	};
1921
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_term5101  */
1922
static	ANTLR3_BITWORD FOLLOW_COMMA_in_term5101_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000000000) };
1923
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_term5101	= { FOLLOW_COMMA_in_term5101_bits, 2	};
1924
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayStore_in_term5103  */
1925
static	ANTLR3_BITWORD FOLLOW_arrayStore_in_term5103_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1926
static  ANTLR3_BITSET_LIST FOLLOW_arrayStore_in_term5103	= { FOLLOW_arrayStore_in_term5103_bits, 1	};
1927
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_term5117  */
1928
static	ANTLR3_BITWORD FOLLOW_DOT_in_term5117_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001020000000000) };
1929
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_term5117	= { FOLLOW_DOT_in_term5117_bits, 2	};
1930
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleStore_in_term5121  */
1931
static	ANTLR3_BITWORD FOLLOW_tupleStore_in_term5121_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1932
static  ANTLR3_BITSET_LIST FOLLOW_tupleStore_in_term5121	= { FOLLOW_tupleStore_in_term5121_bits, 1	};
1933
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_term5126  */
1934
static	ANTLR3_BITWORD FOLLOW_COMMA_in_term5126_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
1935
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_term5126	= { FOLLOW_COMMA_in_term5126_bits, 2	};
1936
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_term5128  */
1937
static	ANTLR3_BITWORD FOLLOW_DOT_in_term5128_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
1938
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_term5128	= { FOLLOW_DOT_in_term5128_bits, 2	};
1939
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleStore_in_term5130  */
1940
static	ANTLR3_BITWORD FOLLOW_tupleStore_in_term5130_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1941
static  ANTLR3_BITSET_LIST FOLLOW_tupleStore_in_term5130	= { FOLLOW_tupleStore_in_term5130_bits, 1	};
1942
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordStore_in_term5150  */
1943
static	ANTLR3_BITWORD FOLLOW_recordStore_in_term5150_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1944
static  ANTLR3_BITSET_LIST FOLLOW_recordStore_in_term5150	= { FOLLOW_recordStore_in_term5150_bits, 1	};
1945
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_term5155  */
1946
static	ANTLR3_BITWORD FOLLOW_COMMA_in_term5155_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000010) };
1947
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_term5155	= { FOLLOW_COMMA_in_term5155_bits, 2	};
1948
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_term5157  */
1949
static	ANTLR3_BITWORD FOLLOW_DOT_in_term5157_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
1950
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_term5157	= { FOLLOW_DOT_in_term5157_bits, 2	};
1951
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordStore_in_term5159  */
1952
static	ANTLR3_BITWORD FOLLOW_recordStore_in_term5159_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000002) };
1953
static  ANTLR3_BITSET_LIST FOLLOW_recordStore_in_term5159	= { FOLLOW_recordStore_in_term5159_bits, 1	};
1954
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arithmeticBinop_in_term5185  */
1955
static	ANTLR3_BITWORD FOLLOW_arithmeticBinop_in_term5185_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1956
static  ANTLR3_BITSET_LIST FOLLOW_arithmeticBinop_in_term5185	= { FOLLOW_arithmeticBinop_in_term5185_bits, 4	};
1957
/** Bitset defining follow set for error recovery in rule state: FOLLOW_uminusTerm_in_term5188  */
1958
static	ANTLR3_BITWORD FOLLOW_uminusTerm_in_term5188_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x8000800001000008), ANTLR3_UINT64_LIT(0x0000100000000101) };
1959
static  ANTLR3_BITSET_LIST FOLLOW_uminusTerm_in_term5188	= { FOLLOW_uminusTerm_in_term5188_bits, 3	};
1960
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_arrayStore5229  */
1961
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_arrayStore5229_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1962
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_arrayStore5229	= { FOLLOW_LBRACKET_in_arrayStore5229_bits, 4	};
1963
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_arrayStore5231  */
1964
static	ANTLR3_BITWORD FOLLOW_formula_in_arrayStore5231_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
1965
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_arrayStore5231	= { FOLLOW_formula_in_arrayStore5231_bits, 3	};
1966
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_arrayStore5234  */
1967
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_arrayStore5234_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0100000000000010) };
1968
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_arrayStore5234	= { FOLLOW_RBRACKET_in_arrayStore5234_bits, 2	};
1969
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayStore_in_arrayStore5250  */
1970
static	ANTLR3_BITWORD FOLLOW_arrayStore_in_arrayStore5250_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1971
static  ANTLR3_BITSET_LIST FOLLOW_arrayStore_in_arrayStore5250	= { FOLLOW_arrayStore_in_arrayStore5250_bits, 1	};
1972
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_arrayStore5261  */
1973
static	ANTLR3_BITWORD FOLLOW_DOT_in_arrayStore5261_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001020000000000) };
1974
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_arrayStore5261	= { FOLLOW_DOT_in_arrayStore5261_bits, 2	};
1975
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleStore_in_arrayStore5265  */
1976
static	ANTLR3_BITWORD FOLLOW_tupleStore_in_arrayStore5265_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1977
static  ANTLR3_BITSET_LIST FOLLOW_tupleStore_in_arrayStore5265	= { FOLLOW_tupleStore_in_arrayStore5265_bits, 1	};
1978
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordStore_in_arrayStore5282  */
1979
static	ANTLR3_BITWORD FOLLOW_recordStore_in_arrayStore5282_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1980
static  ANTLR3_BITSET_LIST FOLLOW_recordStore_in_arrayStore5282	= { FOLLOW_recordStore_in_arrayStore5282_bits, 1	};
1981
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_TOK_in_arrayStore5295  */
1982
static	ANTLR3_BITWORD FOLLOW_ASSIGN_TOK_in_arrayStore5295_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
1983
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_TOK_in_arrayStore5295	= { FOLLOW_ASSIGN_TOK_in_arrayStore5295_bits, 4	};
1984
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_arrayStore5297  */
1985
static	ANTLR3_BITWORD FOLLOW_term_in_arrayStore5297_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1986
static  ANTLR3_BITSET_LIST FOLLOW_term_in_arrayStore5297	= { FOLLOW_term_in_arrayStore5297_bits, 1	};
1987
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_tupleStore5329  */
1988
static	ANTLR3_BITWORD FOLLOW_numeral_in_tupleStore5329_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0100000000000010) };
1989
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_tupleStore5329	= { FOLLOW_numeral_in_tupleStore5329_bits, 2	};
1990
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayStore_in_tupleStore5345  */
1991
static	ANTLR3_BITWORD FOLLOW_arrayStore_in_tupleStore5345_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1992
static  ANTLR3_BITSET_LIST FOLLOW_arrayStore_in_tupleStore5345	= { FOLLOW_arrayStore_in_tupleStore5345_bits, 1	};
1993
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_tupleStore5356  */
1994
static	ANTLR3_BITWORD FOLLOW_DOT_in_tupleStore5356_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001020000000000) };
1995
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_tupleStore5356	= { FOLLOW_DOT_in_tupleStore5356_bits, 2	};
1996
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleStore_in_tupleStore5360  */
1997
static	ANTLR3_BITWORD FOLLOW_tupleStore_in_tupleStore5360_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1998
static  ANTLR3_BITSET_LIST FOLLOW_tupleStore_in_tupleStore5360	= { FOLLOW_tupleStore_in_tupleStore5360_bits, 1	};
1999
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordStore_in_tupleStore5377  */
2000
static	ANTLR3_BITWORD FOLLOW_recordStore_in_tupleStore5377_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2001
static  ANTLR3_BITSET_LIST FOLLOW_recordStore_in_tupleStore5377	= { FOLLOW_recordStore_in_tupleStore5377_bits, 1	};
2002
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_TOK_in_tupleStore5390  */
2003
static	ANTLR3_BITWORD FOLLOW_ASSIGN_TOK_in_tupleStore5390_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2004
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_TOK_in_tupleStore5390	= { FOLLOW_ASSIGN_TOK_in_tupleStore5390_bits, 4	};
2005
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_tupleStore5392  */
2006
static	ANTLR3_BITWORD FOLLOW_term_in_tupleStore5392_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2007
static  ANTLR3_BITSET_LIST FOLLOW_term_in_tupleStore5392	= { FOLLOW_term_in_tupleStore5392_bits, 1	};
2008
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_recordStore5422  */
2009
static	ANTLR3_BITWORD FOLLOW_identifier_in_recordStore5422_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000001000), ANTLR3_UINT64_LIT(0x0100000000000010) };
2010
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_recordStore5422	= { FOLLOW_identifier_in_recordStore5422_bits, 2	};
2011
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arrayStore_in_recordStore5439  */
2012
static	ANTLR3_BITWORD FOLLOW_arrayStore_in_recordStore5439_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2013
static  ANTLR3_BITSET_LIST FOLLOW_arrayStore_in_recordStore5439	= { FOLLOW_arrayStore_in_recordStore5439_bits, 1	};
2014
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_recordStore5450  */
2015
static	ANTLR3_BITWORD FOLLOW_DOT_in_recordStore5450_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001020000000000) };
2016
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_recordStore5450	= { FOLLOW_DOT_in_recordStore5450_bits, 2	};
2017
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tupleStore_in_recordStore5454  */
2018
static	ANTLR3_BITWORD FOLLOW_tupleStore_in_recordStore5454_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2019
static  ANTLR3_BITSET_LIST FOLLOW_tupleStore_in_recordStore5454	= { FOLLOW_tupleStore_in_recordStore5454_bits, 1	};
2020
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordStore_in_recordStore5471  */
2021
static	ANTLR3_BITWORD FOLLOW_recordStore_in_recordStore5471_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2022
static  ANTLR3_BITSET_LIST FOLLOW_recordStore_in_recordStore5471	= { FOLLOW_recordStore_in_recordStore5471_bits, 1	};
2023
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_TOK_in_recordStore5484  */
2024
static	ANTLR3_BITWORD FOLLOW_ASSIGN_TOK_in_recordStore5484_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2025
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_TOK_in_recordStore5484	= { FOLLOW_ASSIGN_TOK_in_recordStore5484_bits, 4	};
2026
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_recordStore5486  */
2027
static	ANTLR3_BITWORD FOLLOW_term_in_recordStore5486_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2028
static  ANTLR3_BITSET_LIST FOLLOW_term_in_recordStore5486	= { FOLLOW_term_in_recordStore5486_bits, 1	};
2029
/** Bitset defining follow set for error recovery in rule state: FOLLOW_MINUS_TOK_in_uminusTerm5523  */
2030
static	ANTLR3_BITWORD FOLLOW_MINUS_TOK_in_uminusTerm5523_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x9089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2031
static  ANTLR3_BITSET_LIST FOLLOW_MINUS_TOK_in_uminusTerm5523	= { FOLLOW_MINUS_TOK_in_uminusTerm5523_bits, 4	};
2032
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvBinaryOpTerm_in_uminusTerm5529  */
2033
static	ANTLR3_BITWORD FOLLOW_bvBinaryOpTerm_in_uminusTerm5529_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2034
static  ANTLR3_BITSET_LIST FOLLOW_bvBinaryOpTerm_in_uminusTerm5529	= { FOLLOW_bvBinaryOpTerm_in_uminusTerm5529_bits, 1	};
2035
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvNegTerm_in_bvBinaryOpTerm5554  */
2036
static	ANTLR3_BITWORD FOLLOW_bvNegTerm_in_bvBinaryOpTerm5554_bits[]	= { ANTLR3_UINT64_LIT(0x0080000000044002) };
2037
static  ANTLR3_BITSET_LIST FOLLOW_bvNegTerm_in_bvBinaryOpTerm5554	= { FOLLOW_bvNegTerm_in_bvBinaryOpTerm5554_bits, 1	};
2038
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvBinop_in_bvBinaryOpTerm5565  */
2039
static	ANTLR3_BITWORD FOLLOW_bvBinop_in_bvBinaryOpTerm5565_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x1089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2040
static  ANTLR3_BITSET_LIST FOLLOW_bvBinop_in_bvBinaryOpTerm5565	= { FOLLOW_bvBinop_in_bvBinaryOpTerm5565_bits, 4	};
2041
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvNegTerm_in_bvBinaryOpTerm5568  */
2042
static	ANTLR3_BITWORD FOLLOW_bvNegTerm_in_bvBinaryOpTerm5568_bits[]	= { ANTLR3_UINT64_LIT(0x0080000000044002) };
2043
static  ANTLR3_BITSET_LIST FOLLOW_bvNegTerm_in_bvBinaryOpTerm5568	= { FOLLOW_bvNegTerm_in_bvBinaryOpTerm5568_bits, 1	};
2044
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVNEG_TOK_in_bvNegTerm5631  */
2045
static	ANTLR3_BITWORD FOLLOW_BVNEG_TOK_in_bvNegTerm5631_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x1089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2046
static  ANTLR3_BITSET_LIST FOLLOW_BVNEG_TOK_in_bvNegTerm5631	= { FOLLOW_BVNEG_TOK_in_bvNegTerm5631_bits, 4	};
2047
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvNegTerm_in_bvNegTerm5633  */
2048
static	ANTLR3_BITWORD FOLLOW_bvNegTerm_in_bvNegTerm5633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2049
static  ANTLR3_BITSET_LIST FOLLOW_bvNegTerm_in_bvNegTerm5633	= { FOLLOW_bvNegTerm_in_bvNegTerm5633_bits, 1	};
2050
/** Bitset defining follow set for error recovery in rule state: FOLLOW_relationBinopTerm_in_bvNegTerm5646  */
2051
static	ANTLR3_BITWORD FOLLOW_relationBinopTerm_in_bvNegTerm5646_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2052
static  ANTLR3_BITSET_LIST FOLLOW_relationBinopTerm_in_bvNegTerm5646	= { FOLLOW_relationBinopTerm_in_bvNegTerm5646_bits, 1	};
2053
/** Bitset defining follow set for error recovery in rule state: FOLLOW_postfixTerm_in_relationBinopTerm5697  */
2054
static	ANTLR3_BITWORD FOLLOW_postfixTerm_in_relationBinopTerm5697_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0030000000000000), ANTLR3_UINT64_LIT(0x0000000000008000) };
2055
static  ANTLR3_BITSET_LIST FOLLOW_postfixTerm_in_relationBinopTerm5697	= { FOLLOW_postfixTerm_in_relationBinopTerm5697_bits, 3	};
2056
/** Bitset defining follow set for error recovery in rule state: FOLLOW_relationBinop_in_relationBinopTerm5708  */
2057
static	ANTLR3_BITWORD FOLLOW_relationBinop_in_relationBinopTerm5708_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFEFF8C110), ANTLR3_UINT64_LIT(0x1089170006000006), ANTLR3_UINT64_LIT(0x77FFE383FF800040), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2058
static  ANTLR3_BITSET_LIST FOLLOW_relationBinop_in_relationBinopTerm5708	= { FOLLOW_relationBinop_in_relationBinopTerm5708_bits, 4	};
2059
/** Bitset defining follow set for error recovery in rule state: FOLLOW_postfixTerm_in_relationBinopTerm5711  */
2060
static	ANTLR3_BITWORD FOLLOW_postfixTerm_in_relationBinopTerm5711_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x0030000000000000), ANTLR3_UINT64_LIT(0x0000000000008000) };
2061
static  ANTLR3_BITSET_LIST FOLLOW_postfixTerm_in_relationBinopTerm5711	= { FOLLOW_postfixTerm_in_relationBinopTerm5711_bits, 3	};
2062
/** Bitset defining follow set for error recovery in rule state: FOLLOW_relationTerm_in_postfixTerm5746  */
2063
static	ANTLR3_BITWORD FOLLOW_relationTerm_in_postfixTerm5746_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2064
static  ANTLR3_BITSET_LIST FOLLOW_relationTerm_in_postfixTerm5746	= { FOLLOW_relationTerm_in_postfixTerm5746_bits, 3	};
2065
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_postfixTerm5763  */
2066
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_postfixTerm5763_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2067
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_postfixTerm5763	= { FOLLOW_LBRACKET_in_postfixTerm5763_bits, 4	};
2068
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm5775  */
2069
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm5775_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
2070
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm5775	= { FOLLOW_formula_in_postfixTerm5775_bits, 3	};
2071
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_postfixTerm5792  */
2072
static	ANTLR3_BITWORD FOLLOW_numeral_in_postfixTerm5792_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
2073
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_postfixTerm5792	= { FOLLOW_numeral_in_postfixTerm5792_bits, 1	};
2074
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_postfixTerm5794  */
2075
static	ANTLR3_BITWORD FOLLOW_COLON_in_postfixTerm5794_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2076
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_postfixTerm5794	= { FOLLOW_COLON_in_postfixTerm5794_bits, 2	};
2077
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_postfixTerm5798  */
2078
static	ANTLR3_BITWORD FOLLOW_numeral_in_postfixTerm5798_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
2079
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_postfixTerm5798	= { FOLLOW_numeral_in_postfixTerm5798_bits, 3	};
2080
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_postfixTerm5810  */
2081
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_postfixTerm5810_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2082
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_postfixTerm5810	= { FOLLOW_RBRACKET_in_postfixTerm5810_bits, 3	};
2083
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LEFTSHIFT_TOK_in_postfixTerm5836  */
2084
static	ANTLR3_BITWORD FOLLOW_LEFTSHIFT_TOK_in_postfixTerm5836_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2085
static  ANTLR3_BITSET_LIST FOLLOW_LEFTSHIFT_TOK_in_postfixTerm5836	= { FOLLOW_LEFTSHIFT_TOK_in_postfixTerm5836_bits, 2	};
2086
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RIGHTSHIFT_TOK_in_postfixTerm5848  */
2087
static	ANTLR3_BITWORD FOLLOW_RIGHTSHIFT_TOK_in_postfixTerm5848_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2088
static  ANTLR3_BITSET_LIST FOLLOW_RIGHTSHIFT_TOK_in_postfixTerm5848	= { FOLLOW_RIGHTSHIFT_TOK_in_postfixTerm5848_bits, 2	};
2089
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_postfixTerm5856  */
2090
static	ANTLR3_BITWORD FOLLOW_numeral_in_postfixTerm5856_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2091
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_postfixTerm5856	= { FOLLOW_numeral_in_postfixTerm5856_bits, 3	};
2092
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm5881  */
2093
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm5881_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2094
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm5881	= { FOLLOW_LPAREN_in_postfixTerm5881_bits, 4	};
2095
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm5891  */
2096
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm5891_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2097
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm5891	= { FOLLOW_formula_in_postfixTerm5891_bits, 3	};
2098
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_postfixTerm5904  */
2099
static	ANTLR3_BITWORD FOLLOW_COMMA_in_postfixTerm5904_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2100
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_postfixTerm5904	= { FOLLOW_COMMA_in_postfixTerm5904_bits, 4	};
2101
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm5906  */
2102
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm5906_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2103
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm5906	= { FOLLOW_formula_in_postfixTerm5906_bits, 3	};
2104
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm5914  */
2105
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm5914_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2106
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm5914	= { FOLLOW_RPAREN_in_postfixTerm5914_bits, 3	};
2107
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_in_postfixTerm5939  */
2108
static	ANTLR3_BITWORD FOLLOW_DOT_in_postfixTerm5939_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001020000000000) };
2109
static  ANTLR3_BITSET_LIST FOLLOW_DOT_in_postfixTerm5939	= { FOLLOW_DOT_in_postfixTerm5939_bits, 2	};
2110
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_postfixTerm5949  */
2111
static	ANTLR3_BITWORD FOLLOW_identifier_in_postfixTerm5949_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2112
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_postfixTerm5949	= { FOLLOW_identifier_in_postfixTerm5949_bits, 3	};
2113
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_postfixTerm5972  */
2114
static	ANTLR3_BITWORD FOLLOW_numeral_in_postfixTerm5972_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002), ANTLR3_UINT64_LIT(0x1300000000000010), ANTLR3_UINT64_LIT(0x0000001000000000) };
2115
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_postfixTerm5972	= { FOLLOW_numeral_in_postfixTerm5972_bits, 3	};
2116
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FLOOR_TOK_in_postfixTerm6005  */
2117
static	ANTLR3_BITWORD FOLLOW_FLOOR_TOK_in_postfixTerm6005_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2118
static  ANTLR3_BITSET_LIST FOLLOW_FLOOR_TOK_in_postfixTerm6005	= { FOLLOW_FLOOR_TOK_in_postfixTerm6005_bits, 2	};
2119
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm6007  */
2120
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm6007_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2121
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm6007	= { FOLLOW_LPAREN_in_postfixTerm6007_bits, 4	};
2122
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6009  */
2123
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6009_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2124
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6009	= { FOLLOW_formula_in_postfixTerm6009_bits, 3	};
2125
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm6012  */
2126
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm6012_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002) };
2127
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm6012	= { FOLLOW_RPAREN_in_postfixTerm6012_bits, 1	};
2128
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IS_INTEGER_TOK_in_postfixTerm6028  */
2129
static	ANTLR3_BITWORD FOLLOW_IS_INTEGER_TOK_in_postfixTerm6028_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2130
static  ANTLR3_BITSET_LIST FOLLOW_IS_INTEGER_TOK_in_postfixTerm6028	= { FOLLOW_IS_INTEGER_TOK_in_postfixTerm6028_bits, 2	};
2131
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm6030  */
2132
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm6030_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2133
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm6030	= { FOLLOW_LPAREN_in_postfixTerm6030_bits, 4	};
2134
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6032  */
2135
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6032_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2136
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6032	= { FOLLOW_formula_in_postfixTerm6032_bits, 3	};
2137
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm6035  */
2138
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm6035_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002) };
2139
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm6035	= { FOLLOW_RPAREN_in_postfixTerm6035_bits, 1	};
2140
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ABS_TOK_in_postfixTerm6051  */
2141
static	ANTLR3_BITWORD FOLLOW_ABS_TOK_in_postfixTerm6051_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2142
static  ANTLR3_BITSET_LIST FOLLOW_ABS_TOK_in_postfixTerm6051	= { FOLLOW_ABS_TOK_in_postfixTerm6051_bits, 2	};
2143
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm6053  */
2144
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm6053_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2145
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm6053	= { FOLLOW_LPAREN_in_postfixTerm6053_bits, 4	};
2146
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6055  */
2147
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6055_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2148
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6055	= { FOLLOW_formula_in_postfixTerm6055_bits, 3	};
2149
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm6058  */
2150
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm6058_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002) };
2151
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm6058	= { FOLLOW_RPAREN_in_postfixTerm6058_bits, 1	};
2152
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DIVISIBLE_TOK_in_postfixTerm6074  */
2153
static	ANTLR3_BITWORD FOLLOW_DIVISIBLE_TOK_in_postfixTerm6074_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2154
static  ANTLR3_BITSET_LIST FOLLOW_DIVISIBLE_TOK_in_postfixTerm6074	= { FOLLOW_DIVISIBLE_TOK_in_postfixTerm6074_bits, 2	};
2155
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm6076  */
2156
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm6076_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2157
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm6076	= { FOLLOW_LPAREN_in_postfixTerm6076_bits, 4	};
2158
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6078  */
2159
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6078_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2160
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6078	= { FOLLOW_formula_in_postfixTerm6078_bits, 1	};
2161
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_postfixTerm6081  */
2162
static	ANTLR3_BITWORD FOLLOW_COMMA_in_postfixTerm6081_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2163
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_postfixTerm6081	= { FOLLOW_COMMA_in_postfixTerm6081_bits, 2	};
2164
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_postfixTerm6085  */
2165
static	ANTLR3_BITWORD FOLLOW_numeral_in_postfixTerm6085_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2166
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_postfixTerm6085	= { FOLLOW_numeral_in_postfixTerm6085_bits, 3	};
2167
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm6087  */
2168
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm6087_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002) };
2169
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm6087	= { FOLLOW_RPAREN_in_postfixTerm6087_bits, 1	};
2170
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISTINCT_TOK_in_postfixTerm6103  */
2171
static	ANTLR3_BITWORD FOLLOW_DISTINCT_TOK_in_postfixTerm6103_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2172
static  ANTLR3_BITSET_LIST FOLLOW_DISTINCT_TOK_in_postfixTerm6103	= { FOLLOW_DISTINCT_TOK_in_postfixTerm6103_bits, 2	};
2173
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_postfixTerm6105  */
2174
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_postfixTerm6105_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2175
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_postfixTerm6105	= { FOLLOW_LPAREN_in_postfixTerm6105_bits, 4	};
2176
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6113  */
2177
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6113_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2178
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6113	= { FOLLOW_formula_in_postfixTerm6113_bits, 3	};
2179
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_postfixTerm6126  */
2180
static	ANTLR3_BITWORD FOLLOW_COMMA_in_postfixTerm6126_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2181
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_postfixTerm6126	= { FOLLOW_COMMA_in_postfixTerm6126_bits, 4	};
2182
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_postfixTerm6128  */
2183
static	ANTLR3_BITWORD FOLLOW_formula_in_postfixTerm6128_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2184
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_postfixTerm6128	= { FOLLOW_formula_in_postfixTerm6128_bits, 3	};
2185
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_postfixTerm6136  */
2186
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_postfixTerm6136_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000002) };
2187
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_postfixTerm6136	= { FOLLOW_RPAREN_in_postfixTerm6136_bits, 1	};
2188
/** Bitset defining follow set for error recovery in rule state: FOLLOW_typeAscription_in_postfixTerm6158  */
2189
static	ANTLR3_BITWORD FOLLOW_typeAscription_in_postfixTerm6158_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2190
static  ANTLR3_BITSET_LIST FOLLOW_typeAscription_in_postfixTerm6158	= { FOLLOW_typeAscription_in_postfixTerm6158_bits, 1	};
2191
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRANSPOSE_TOK_in_relationTerm6194  */
2192
static	ANTLR3_BITWORD FOLLOW_TRANSPOSE_TOK_in_relationTerm6194_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2193
static  ANTLR3_BITSET_LIST FOLLOW_TRANSPOSE_TOK_in_relationTerm6194	= { FOLLOW_TRANSPOSE_TOK_in_relationTerm6194_bits, 2	};
2194
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_relationTerm6196  */
2195
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_relationTerm6196_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2196
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_relationTerm6196	= { FOLLOW_LPAREN_in_relationTerm6196_bits, 4	};
2197
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_relationTerm6198  */
2198
static	ANTLR3_BITWORD FOLLOW_formula_in_relationTerm6198_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2199
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_relationTerm6198	= { FOLLOW_formula_in_relationTerm6198_bits, 3	};
2200
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_relationTerm6201  */
2201
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_relationTerm6201_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2202
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_relationTerm6201	= { FOLLOW_RPAREN_in_relationTerm6201_bits, 1	};
2203
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRANSCLOSURE_TOK_in_relationTerm6213  */
2204
static	ANTLR3_BITWORD FOLLOW_TRANSCLOSURE_TOK_in_relationTerm6213_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2205
static  ANTLR3_BITSET_LIST FOLLOW_TRANSCLOSURE_TOK_in_relationTerm6213	= { FOLLOW_TRANSCLOSURE_TOK_in_relationTerm6213_bits, 2	};
2206
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_relationTerm6215  */
2207
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_relationTerm6215_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2208
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_relationTerm6215	= { FOLLOW_LPAREN_in_relationTerm6215_bits, 4	};
2209
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_relationTerm6217  */
2210
static	ANTLR3_BITWORD FOLLOW_formula_in_relationTerm6217_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2211
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_relationTerm6217	= { FOLLOW_formula_in_relationTerm6217_bits, 3	};
2212
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_relationTerm6220  */
2213
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_relationTerm6220_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2214
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_relationTerm6220	= { FOLLOW_RPAREN_in_relationTerm6220_bits, 1	};
2215
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TUPLE_TOK_in_relationTerm6232  */
2216
static	ANTLR3_BITWORD FOLLOW_TUPLE_TOK_in_relationTerm6232_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2217
static  ANTLR3_BITSET_LIST FOLLOW_TUPLE_TOK_in_relationTerm6232	= { FOLLOW_TUPLE_TOK_in_relationTerm6232_bits, 2	};
2218
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_relationTerm6234  */
2219
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_relationTerm6234_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2220
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_relationTerm6234	= { FOLLOW_LPAREN_in_relationTerm6234_bits, 4	};
2221
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_relationTerm6236  */
2222
static	ANTLR3_BITWORD FOLLOW_formula_in_relationTerm6236_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2223
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_relationTerm6236	= { FOLLOW_formula_in_relationTerm6236_bits, 3	};
2224
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_relationTerm6239  */
2225
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_relationTerm6239_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2226
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_relationTerm6239	= { FOLLOW_RPAREN_in_relationTerm6239_bits, 1	};
2227
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IDEN_TOK_in_relationTerm6251  */
2228
static	ANTLR3_BITWORD FOLLOW_IDEN_TOK_in_relationTerm6251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2229
static  ANTLR3_BITSET_LIST FOLLOW_IDEN_TOK_in_relationTerm6251	= { FOLLOW_IDEN_TOK_in_relationTerm6251_bits, 2	};
2230
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_relationTerm6253  */
2231
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_relationTerm6253_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2232
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_relationTerm6253	= { FOLLOW_LPAREN_in_relationTerm6253_bits, 4	};
2233
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_relationTerm6255  */
2234
static	ANTLR3_BITWORD FOLLOW_formula_in_relationTerm6255_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2235
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_relationTerm6255	= { FOLLOW_formula_in_relationTerm6255_bits, 3	};
2236
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_relationTerm6258  */
2237
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_relationTerm6258_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2238
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_relationTerm6258	= { FOLLOW_RPAREN_in_relationTerm6258_bits, 1	};
2239
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bvTerm_in_relationTerm6270  */
2240
static	ANTLR3_BITWORD FOLLOW_bvTerm_in_relationTerm6270_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2241
static  ANTLR3_BITSET_LIST FOLLOW_bvTerm_in_relationTerm6270	= { FOLLOW_bvTerm_in_relationTerm6270_bits, 1	};
2242
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVXOR_TOK_in_bvTerm6296  */
2243
static	ANTLR3_BITWORD FOLLOW_BVXOR_TOK_in_bvTerm6296_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2244
static  ANTLR3_BITSET_LIST FOLLOW_BVXOR_TOK_in_bvTerm6296	= { FOLLOW_BVXOR_TOK_in_bvTerm6296_bits, 2	};
2245
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6298  */
2246
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6298_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2247
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6298	= { FOLLOW_LPAREN_in_bvTerm6298_bits, 4	};
2248
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6300  */
2249
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6300_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2250
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6300	= { FOLLOW_formula_in_bvTerm6300_bits, 1	};
2251
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6303  */
2252
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6303_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2253
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6303	= { FOLLOW_COMMA_in_bvTerm6303_bits, 4	};
2254
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6305  */
2255
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6305_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2256
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6305	= { FOLLOW_formula_in_bvTerm6305_bits, 3	};
2257
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6308  */
2258
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6308_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2259
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6308	= { FOLLOW_RPAREN_in_bvTerm6308_bits, 1	};
2260
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVNAND_TOK_in_bvTerm6320  */
2261
static	ANTLR3_BITWORD FOLLOW_BVNAND_TOK_in_bvTerm6320_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2262
static  ANTLR3_BITSET_LIST FOLLOW_BVNAND_TOK_in_bvTerm6320	= { FOLLOW_BVNAND_TOK_in_bvTerm6320_bits, 2	};
2263
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6322  */
2264
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6322_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2265
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6322	= { FOLLOW_LPAREN_in_bvTerm6322_bits, 4	};
2266
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6324  */
2267
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6324_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2268
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6324	= { FOLLOW_formula_in_bvTerm6324_bits, 1	};
2269
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6327  */
2270
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6327_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2271
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6327	= { FOLLOW_COMMA_in_bvTerm6327_bits, 4	};
2272
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6329  */
2273
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6329_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2274
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6329	= { FOLLOW_formula_in_bvTerm6329_bits, 3	};
2275
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6332  */
2276
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6332_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2277
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6332	= { FOLLOW_RPAREN_in_bvTerm6332_bits, 1	};
2278
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVNOR_TOK_in_bvTerm6344  */
2279
static	ANTLR3_BITWORD FOLLOW_BVNOR_TOK_in_bvTerm6344_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2280
static  ANTLR3_BITSET_LIST FOLLOW_BVNOR_TOK_in_bvTerm6344	= { FOLLOW_BVNOR_TOK_in_bvTerm6344_bits, 2	};
2281
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6346  */
2282
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6346_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2283
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6346	= { FOLLOW_LPAREN_in_bvTerm6346_bits, 4	};
2284
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6348  */
2285
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6348_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2286
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6348	= { FOLLOW_formula_in_bvTerm6348_bits, 1	};
2287
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6351  */
2288
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6351_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2289
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6351	= { FOLLOW_COMMA_in_bvTerm6351_bits, 4	};
2290
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6353  */
2291
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6353_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2292
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6353	= { FOLLOW_formula_in_bvTerm6353_bits, 3	};
2293
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6356  */
2294
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6356_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2295
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6356	= { FOLLOW_RPAREN_in_bvTerm6356_bits, 1	};
2296
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVCOMP_TOK_in_bvTerm6368  */
2297
static	ANTLR3_BITWORD FOLLOW_BVCOMP_TOK_in_bvTerm6368_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2298
static  ANTLR3_BITSET_LIST FOLLOW_BVCOMP_TOK_in_bvTerm6368	= { FOLLOW_BVCOMP_TOK_in_bvTerm6368_bits, 2	};
2299
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6370  */
2300
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6370_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2301
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6370	= { FOLLOW_LPAREN_in_bvTerm6370_bits, 4	};
2302
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6372  */
2303
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6372_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2304
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6372	= { FOLLOW_formula_in_bvTerm6372_bits, 1	};
2305
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6375  */
2306
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6375_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2307
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6375	= { FOLLOW_COMMA_in_bvTerm6375_bits, 4	};
2308
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6377  */
2309
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6377_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2310
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6377	= { FOLLOW_formula_in_bvTerm6377_bits, 3	};
2311
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6380  */
2312
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6380_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2313
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6380	= { FOLLOW_RPAREN_in_bvTerm6380_bits, 1	};
2314
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVXNOR_TOK_in_bvTerm6392  */
2315
static	ANTLR3_BITWORD FOLLOW_BVXNOR_TOK_in_bvTerm6392_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2316
static  ANTLR3_BITSET_LIST FOLLOW_BVXNOR_TOK_in_bvTerm6392	= { FOLLOW_BVXNOR_TOK_in_bvTerm6392_bits, 2	};
2317
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6394  */
2318
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6394_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2319
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6394	= { FOLLOW_LPAREN_in_bvTerm6394_bits, 4	};
2320
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6396  */
2321
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6396_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2322
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6396	= { FOLLOW_formula_in_bvTerm6396_bits, 1	};
2323
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6399  */
2324
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6399_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2325
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6399	= { FOLLOW_COMMA_in_bvTerm6399_bits, 4	};
2326
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6401  */
2327
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6401_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2328
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6401	= { FOLLOW_formula_in_bvTerm6401_bits, 3	};
2329
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6404  */
2330
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6404_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2331
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6404	= { FOLLOW_RPAREN_in_bvTerm6404_bits, 1	};
2332
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVUMINUS_TOK_in_bvTerm6423  */
2333
static	ANTLR3_BITWORD FOLLOW_BVUMINUS_TOK_in_bvTerm6423_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2334
static  ANTLR3_BITSET_LIST FOLLOW_BVUMINUS_TOK_in_bvTerm6423	= { FOLLOW_BVUMINUS_TOK_in_bvTerm6423_bits, 2	};
2335
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6425  */
2336
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6425_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2337
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6425	= { FOLLOW_LPAREN_in_bvTerm6425_bits, 4	};
2338
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6427  */
2339
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6427_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2340
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6427	= { FOLLOW_formula_in_bvTerm6427_bits, 3	};
2341
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6430  */
2342
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6430_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2343
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6430	= { FOLLOW_RPAREN_in_bvTerm6430_bits, 1	};
2344
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVPLUS_TOK_in_bvTerm6448  */
2345
static	ANTLR3_BITWORD FOLLOW_BVPLUS_TOK_in_bvTerm6448_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2346
static  ANTLR3_BITSET_LIST FOLLOW_BVPLUS_TOK_in_bvTerm6448	= { FOLLOW_BVPLUS_TOK_in_bvTerm6448_bits, 2	};
2347
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6450  */
2348
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6450_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2349
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6450	= { FOLLOW_LPAREN_in_bvTerm6450_bits, 2	};
2350
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6454  */
2351
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6454_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2352
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6454	= { FOLLOW_numeral_in_bvTerm6454_bits, 1	};
2353
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6456  */
2354
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6456_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2355
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6456	= { FOLLOW_COMMA_in_bvTerm6456_bits, 4	};
2356
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6458  */
2357
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6458_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2358
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6458	= { FOLLOW_formula_in_bvTerm6458_bits, 1	};
2359
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6469  */
2360
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6469_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2361
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6469	= { FOLLOW_COMMA_in_bvTerm6469_bits, 4	};
2362
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6471  */
2363
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6471_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2364
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6471	= { FOLLOW_formula_in_bvTerm6471_bits, 3	};
2365
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6479  */
2366
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6479_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2367
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6479	= { FOLLOW_RPAREN_in_bvTerm6479_bits, 1	};
2368
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSUB_TOK_in_bvTerm6497  */
2369
static	ANTLR3_BITWORD FOLLOW_BVSUB_TOK_in_bvTerm6497_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2370
static  ANTLR3_BITSET_LIST FOLLOW_BVSUB_TOK_in_bvTerm6497	= { FOLLOW_BVSUB_TOK_in_bvTerm6497_bits, 2	};
2371
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6499  */
2372
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6499_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2373
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6499	= { FOLLOW_LPAREN_in_bvTerm6499_bits, 2	};
2374
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6503  */
2375
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6503_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2376
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6503	= { FOLLOW_numeral_in_bvTerm6503_bits, 1	};
2377
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6505  */
2378
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6505_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2379
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6505	= { FOLLOW_COMMA_in_bvTerm6505_bits, 4	};
2380
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6507  */
2381
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6507_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2382
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6507	= { FOLLOW_formula_in_bvTerm6507_bits, 1	};
2383
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6510  */
2384
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6510_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2385
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6510	= { FOLLOW_COMMA_in_bvTerm6510_bits, 4	};
2386
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6512  */
2387
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6512_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2388
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6512	= { FOLLOW_formula_in_bvTerm6512_bits, 3	};
2389
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6515  */
2390
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6515_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2391
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6515	= { FOLLOW_RPAREN_in_bvTerm6515_bits, 1	};
2392
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVMULT_TOK_in_bvTerm6533  */
2393
static	ANTLR3_BITWORD FOLLOW_BVMULT_TOK_in_bvTerm6533_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2394
static  ANTLR3_BITSET_LIST FOLLOW_BVMULT_TOK_in_bvTerm6533	= { FOLLOW_BVMULT_TOK_in_bvTerm6533_bits, 2	};
2395
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6535  */
2396
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6535_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2397
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6535	= { FOLLOW_LPAREN_in_bvTerm6535_bits, 2	};
2398
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6539  */
2399
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6539_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2400
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6539	= { FOLLOW_numeral_in_bvTerm6539_bits, 1	};
2401
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6541  */
2402
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6541_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2403
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6541	= { FOLLOW_COMMA_in_bvTerm6541_bits, 4	};
2404
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6543  */
2405
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6543_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2406
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6543	= { FOLLOW_formula_in_bvTerm6543_bits, 1	};
2407
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6546  */
2408
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6546_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2409
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6546	= { FOLLOW_COMMA_in_bvTerm6546_bits, 4	};
2410
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6548  */
2411
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6548_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2412
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6548	= { FOLLOW_formula_in_bvTerm6548_bits, 3	};
2413
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6551  */
2414
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6551_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2415
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6551	= { FOLLOW_RPAREN_in_bvTerm6551_bits, 1	};
2416
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVUDIV_TOK_in_bvTerm6569  */
2417
static	ANTLR3_BITWORD FOLLOW_BVUDIV_TOK_in_bvTerm6569_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2418
static  ANTLR3_BITSET_LIST FOLLOW_BVUDIV_TOK_in_bvTerm6569	= { FOLLOW_BVUDIV_TOK_in_bvTerm6569_bits, 2	};
2419
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6571  */
2420
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6571_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2421
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6571	= { FOLLOW_LPAREN_in_bvTerm6571_bits, 4	};
2422
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6573  */
2423
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6573_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2424
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6573	= { FOLLOW_formula_in_bvTerm6573_bits, 1	};
2425
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6576  */
2426
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6576_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2427
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6576	= { FOLLOW_COMMA_in_bvTerm6576_bits, 4	};
2428
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6578  */
2429
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6578_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2430
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6578	= { FOLLOW_formula_in_bvTerm6578_bits, 3	};
2431
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6581  */
2432
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6581_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2433
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6581	= { FOLLOW_RPAREN_in_bvTerm6581_bits, 1	};
2434
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSDIV_TOK_in_bvTerm6599  */
2435
static	ANTLR3_BITWORD FOLLOW_BVSDIV_TOK_in_bvTerm6599_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2436
static  ANTLR3_BITSET_LIST FOLLOW_BVSDIV_TOK_in_bvTerm6599	= { FOLLOW_BVSDIV_TOK_in_bvTerm6599_bits, 2	};
2437
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6601  */
2438
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6601_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2439
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6601	= { FOLLOW_LPAREN_in_bvTerm6601_bits, 4	};
2440
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6603  */
2441
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6603_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2442
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6603	= { FOLLOW_formula_in_bvTerm6603_bits, 1	};
2443
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6606  */
2444
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6606_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2445
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6606	= { FOLLOW_COMMA_in_bvTerm6606_bits, 4	};
2446
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6608  */
2447
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6608_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2448
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6608	= { FOLLOW_formula_in_bvTerm6608_bits, 3	};
2449
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6611  */
2450
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6611_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2451
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6611	= { FOLLOW_RPAREN_in_bvTerm6611_bits, 1	};
2452
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVUREM_TOK_in_bvTerm6629  */
2453
static	ANTLR3_BITWORD FOLLOW_BVUREM_TOK_in_bvTerm6629_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2454
static  ANTLR3_BITSET_LIST FOLLOW_BVUREM_TOK_in_bvTerm6629	= { FOLLOW_BVUREM_TOK_in_bvTerm6629_bits, 2	};
2455
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6631  */
2456
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6631_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2457
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6631	= { FOLLOW_LPAREN_in_bvTerm6631_bits, 4	};
2458
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6633  */
2459
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6633_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2460
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6633	= { FOLLOW_formula_in_bvTerm6633_bits, 1	};
2461
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6636  */
2462
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6636_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2463
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6636	= { FOLLOW_COMMA_in_bvTerm6636_bits, 4	};
2464
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6638  */
2465
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6638_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2466
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6638	= { FOLLOW_formula_in_bvTerm6638_bits, 3	};
2467
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6641  */
2468
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6641_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2469
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6641	= { FOLLOW_RPAREN_in_bvTerm6641_bits, 1	};
2470
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSREM_TOK_in_bvTerm6659  */
2471
static	ANTLR3_BITWORD FOLLOW_BVSREM_TOK_in_bvTerm6659_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2472
static  ANTLR3_BITSET_LIST FOLLOW_BVSREM_TOK_in_bvTerm6659	= { FOLLOW_BVSREM_TOK_in_bvTerm6659_bits, 2	};
2473
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6661  */
2474
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6661_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2475
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6661	= { FOLLOW_LPAREN_in_bvTerm6661_bits, 4	};
2476
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6663  */
2477
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6663_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2478
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6663	= { FOLLOW_formula_in_bvTerm6663_bits, 1	};
2479
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6666  */
2480
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6666_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2481
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6666	= { FOLLOW_COMMA_in_bvTerm6666_bits, 4	};
2482
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6668  */
2483
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6668_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2484
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6668	= { FOLLOW_formula_in_bvTerm6668_bits, 3	};
2485
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6671  */
2486
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6671_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2487
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6671	= { FOLLOW_RPAREN_in_bvTerm6671_bits, 1	};
2488
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSMOD_TOK_in_bvTerm6689  */
2489
static	ANTLR3_BITWORD FOLLOW_BVSMOD_TOK_in_bvTerm6689_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2490
static  ANTLR3_BITSET_LIST FOLLOW_BVSMOD_TOK_in_bvTerm6689	= { FOLLOW_BVSMOD_TOK_in_bvTerm6689_bits, 2	};
2491
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6691  */
2492
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6691_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2493
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6691	= { FOLLOW_LPAREN_in_bvTerm6691_bits, 4	};
2494
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6693  */
2495
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6693_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2496
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6693	= { FOLLOW_formula_in_bvTerm6693_bits, 1	};
2497
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6696  */
2498
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6696_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2499
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6696	= { FOLLOW_COMMA_in_bvTerm6696_bits, 4	};
2500
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6698  */
2501
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6698_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2502
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6698	= { FOLLOW_formula_in_bvTerm6698_bits, 3	};
2503
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6701  */
2504
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6701_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2505
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6701	= { FOLLOW_RPAREN_in_bvTerm6701_bits, 1	};
2506
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSHL_TOK_in_bvTerm6719  */
2507
static	ANTLR3_BITWORD FOLLOW_BVSHL_TOK_in_bvTerm6719_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2508
static  ANTLR3_BITSET_LIST FOLLOW_BVSHL_TOK_in_bvTerm6719	= { FOLLOW_BVSHL_TOK_in_bvTerm6719_bits, 2	};
2509
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6721  */
2510
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6721_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2511
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6721	= { FOLLOW_LPAREN_in_bvTerm6721_bits, 4	};
2512
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6723  */
2513
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6723_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2514
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6723	= { FOLLOW_formula_in_bvTerm6723_bits, 1	};
2515
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6726  */
2516
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6726_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2517
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6726	= { FOLLOW_COMMA_in_bvTerm6726_bits, 4	};
2518
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6728  */
2519
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6728_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2520
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6728	= { FOLLOW_formula_in_bvTerm6728_bits, 3	};
2521
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6731  */
2522
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6731_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2523
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6731	= { FOLLOW_RPAREN_in_bvTerm6731_bits, 1	};
2524
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVASHR_TOK_in_bvTerm6749  */
2525
static	ANTLR3_BITWORD FOLLOW_BVASHR_TOK_in_bvTerm6749_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2526
static  ANTLR3_BITSET_LIST FOLLOW_BVASHR_TOK_in_bvTerm6749	= { FOLLOW_BVASHR_TOK_in_bvTerm6749_bits, 2	};
2527
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6751  */
2528
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6751_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2529
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6751	= { FOLLOW_LPAREN_in_bvTerm6751_bits, 4	};
2530
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6753  */
2531
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6753_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2532
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6753	= { FOLLOW_formula_in_bvTerm6753_bits, 1	};
2533
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6756  */
2534
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6756_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2535
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6756	= { FOLLOW_COMMA_in_bvTerm6756_bits, 4	};
2536
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6758  */
2537
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6758_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2538
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6758	= { FOLLOW_formula_in_bvTerm6758_bits, 3	};
2539
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6761  */
2540
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6761_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2541
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6761	= { FOLLOW_RPAREN_in_bvTerm6761_bits, 1	};
2542
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVLSHR_TOK_in_bvTerm6779  */
2543
static	ANTLR3_BITWORD FOLLOW_BVLSHR_TOK_in_bvTerm6779_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2544
static  ANTLR3_BITSET_LIST FOLLOW_BVLSHR_TOK_in_bvTerm6779	= { FOLLOW_BVLSHR_TOK_in_bvTerm6779_bits, 2	};
2545
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6781  */
2546
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6781_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2547
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6781	= { FOLLOW_LPAREN_in_bvTerm6781_bits, 4	};
2548
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6783  */
2549
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6783_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2550
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6783	= { FOLLOW_formula_in_bvTerm6783_bits, 1	};
2551
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6786  */
2552
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6786_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2553
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6786	= { FOLLOW_COMMA_in_bvTerm6786_bits, 4	};
2554
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6788  */
2555
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6788_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2556
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6788	= { FOLLOW_formula_in_bvTerm6788_bits, 3	};
2557
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6791  */
2558
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6791_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2559
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6791	= { FOLLOW_RPAREN_in_bvTerm6791_bits, 1	};
2560
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SX_TOK_in_bvTerm6809  */
2561
static	ANTLR3_BITWORD FOLLOW_SX_TOK_in_bvTerm6809_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2562
static  ANTLR3_BITSET_LIST FOLLOW_SX_TOK_in_bvTerm6809	= { FOLLOW_SX_TOK_in_bvTerm6809_bits, 2	};
2563
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6811  */
2564
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6811_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2565
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6811	= { FOLLOW_LPAREN_in_bvTerm6811_bits, 4	};
2566
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6813  */
2567
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6813_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2568
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6813	= { FOLLOW_formula_in_bvTerm6813_bits, 1	};
2569
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6816  */
2570
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6816_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2571
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6816	= { FOLLOW_COMMA_in_bvTerm6816_bits, 2	};
2572
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6820  */
2573
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6820_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2574
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6820	= { FOLLOW_numeral_in_bvTerm6820_bits, 3	};
2575
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6822  */
2576
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6822_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2577
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6822	= { FOLLOW_RPAREN_in_bvTerm6822_bits, 1	};
2578
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVZEROEXTEND_TOK_in_bvTerm6840  */
2579
static	ANTLR3_BITWORD FOLLOW_BVZEROEXTEND_TOK_in_bvTerm6840_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2580
static  ANTLR3_BITSET_LIST FOLLOW_BVZEROEXTEND_TOK_in_bvTerm6840	= { FOLLOW_BVZEROEXTEND_TOK_in_bvTerm6840_bits, 2	};
2581
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6842  */
2582
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6842_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2583
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6842	= { FOLLOW_LPAREN_in_bvTerm6842_bits, 4	};
2584
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6844  */
2585
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6844_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2586
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6844	= { FOLLOW_formula_in_bvTerm6844_bits, 1	};
2587
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6847  */
2588
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6847_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2589
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6847	= { FOLLOW_COMMA_in_bvTerm6847_bits, 2	};
2590
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6851  */
2591
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6851_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2592
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6851	= { FOLLOW_numeral_in_bvTerm6851_bits, 3	};
2593
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6853  */
2594
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6853_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2595
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6853	= { FOLLOW_RPAREN_in_bvTerm6853_bits, 1	};
2596
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVREPEAT_TOK_in_bvTerm6871  */
2597
static	ANTLR3_BITWORD FOLLOW_BVREPEAT_TOK_in_bvTerm6871_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2598
static  ANTLR3_BITSET_LIST FOLLOW_BVREPEAT_TOK_in_bvTerm6871	= { FOLLOW_BVREPEAT_TOK_in_bvTerm6871_bits, 2	};
2599
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6873  */
2600
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6873_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2601
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6873	= { FOLLOW_LPAREN_in_bvTerm6873_bits, 4	};
2602
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6875  */
2603
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6875_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2604
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6875	= { FOLLOW_formula_in_bvTerm6875_bits, 1	};
2605
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6878  */
2606
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6878_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2607
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6878	= { FOLLOW_COMMA_in_bvTerm6878_bits, 2	};
2608
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6882  */
2609
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6882_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2610
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6882	= { FOLLOW_numeral_in_bvTerm6882_bits, 3	};
2611
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6884  */
2612
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6884_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2613
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6884	= { FOLLOW_RPAREN_in_bvTerm6884_bits, 1	};
2614
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVROTR_TOK_in_bvTerm6902  */
2615
static	ANTLR3_BITWORD FOLLOW_BVROTR_TOK_in_bvTerm6902_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2616
static  ANTLR3_BITSET_LIST FOLLOW_BVROTR_TOK_in_bvTerm6902	= { FOLLOW_BVROTR_TOK_in_bvTerm6902_bits, 2	};
2617
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6904  */
2618
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6904_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2619
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6904	= { FOLLOW_LPAREN_in_bvTerm6904_bits, 4	};
2620
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6906  */
2621
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6906_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2622
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6906	= { FOLLOW_formula_in_bvTerm6906_bits, 1	};
2623
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6909  */
2624
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6909_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2625
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6909	= { FOLLOW_COMMA_in_bvTerm6909_bits, 2	};
2626
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6913  */
2627
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6913_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2628
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6913	= { FOLLOW_numeral_in_bvTerm6913_bits, 3	};
2629
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6915  */
2630
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6915_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2631
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6915	= { FOLLOW_RPAREN_in_bvTerm6915_bits, 1	};
2632
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVROTL_TOK_in_bvTerm6933  */
2633
static	ANTLR3_BITWORD FOLLOW_BVROTL_TOK_in_bvTerm6933_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2634
static  ANTLR3_BITSET_LIST FOLLOW_BVROTL_TOK_in_bvTerm6933	= { FOLLOW_BVROTL_TOK_in_bvTerm6933_bits, 2	};
2635
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6935  */
2636
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6935_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2637
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6935	= { FOLLOW_LPAREN_in_bvTerm6935_bits, 4	};
2638
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6937  */
2639
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6937_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2640
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6937	= { FOLLOW_formula_in_bvTerm6937_bits, 1	};
2641
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6940  */
2642
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6940_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
2643
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6940	= { FOLLOW_COMMA_in_bvTerm6940_bits, 2	};
2644
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_bvTerm6944  */
2645
static	ANTLR3_BITWORD FOLLOW_numeral_in_bvTerm6944_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2646
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_bvTerm6944	= { FOLLOW_numeral_in_bvTerm6944_bits, 3	};
2647
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6946  */
2648
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6946_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2649
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6946	= { FOLLOW_RPAREN_in_bvTerm6946_bits, 1	};
2650
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVLT_TOK_in_bvTerm6965  */
2651
static	ANTLR3_BITWORD FOLLOW_BVLT_TOK_in_bvTerm6965_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2652
static  ANTLR3_BITSET_LIST FOLLOW_BVLT_TOK_in_bvTerm6965	= { FOLLOW_BVLT_TOK_in_bvTerm6965_bits, 2	};
2653
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6967  */
2654
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6967_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2655
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6967	= { FOLLOW_LPAREN_in_bvTerm6967_bits, 4	};
2656
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6969  */
2657
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6969_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2658
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6969	= { FOLLOW_formula_in_bvTerm6969_bits, 1	};
2659
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6972  */
2660
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6972_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2661
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6972	= { FOLLOW_COMMA_in_bvTerm6972_bits, 4	};
2662
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6974  */
2663
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6974_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2664
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6974	= { FOLLOW_formula_in_bvTerm6974_bits, 3	};
2665
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm6977  */
2666
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm6977_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2667
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm6977	= { FOLLOW_RPAREN_in_bvTerm6977_bits, 1	};
2668
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVLE_TOK_in_bvTerm6989  */
2669
static	ANTLR3_BITWORD FOLLOW_BVLE_TOK_in_bvTerm6989_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2670
static  ANTLR3_BITSET_LIST FOLLOW_BVLE_TOK_in_bvTerm6989	= { FOLLOW_BVLE_TOK_in_bvTerm6989_bits, 2	};
2671
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm6991  */
2672
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm6991_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2673
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm6991	= { FOLLOW_LPAREN_in_bvTerm6991_bits, 4	};
2674
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6993  */
2675
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6993_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2676
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6993	= { FOLLOW_formula_in_bvTerm6993_bits, 1	};
2677
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm6996  */
2678
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm6996_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2679
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm6996	= { FOLLOW_COMMA_in_bvTerm6996_bits, 4	};
2680
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm6998  */
2681
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm6998_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2682
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm6998	= { FOLLOW_formula_in_bvTerm6998_bits, 3	};
2683
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7001  */
2684
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7001_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2685
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7001	= { FOLLOW_RPAREN_in_bvTerm7001_bits, 1	};
2686
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVGT_TOK_in_bvTerm7013  */
2687
static	ANTLR3_BITWORD FOLLOW_BVGT_TOK_in_bvTerm7013_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2688
static  ANTLR3_BITSET_LIST FOLLOW_BVGT_TOK_in_bvTerm7013	= { FOLLOW_BVGT_TOK_in_bvTerm7013_bits, 2	};
2689
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7015  */
2690
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7015_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2691
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7015	= { FOLLOW_LPAREN_in_bvTerm7015_bits, 4	};
2692
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7017  */
2693
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7017_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2694
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7017	= { FOLLOW_formula_in_bvTerm7017_bits, 1	};
2695
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7020  */
2696
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7020_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2697
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7020	= { FOLLOW_COMMA_in_bvTerm7020_bits, 4	};
2698
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7022  */
2699
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7022_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2700
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7022	= { FOLLOW_formula_in_bvTerm7022_bits, 3	};
2701
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7025  */
2702
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7025_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2703
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7025	= { FOLLOW_RPAREN_in_bvTerm7025_bits, 1	};
2704
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVGE_TOK_in_bvTerm7037  */
2705
static	ANTLR3_BITWORD FOLLOW_BVGE_TOK_in_bvTerm7037_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2706
static  ANTLR3_BITSET_LIST FOLLOW_BVGE_TOK_in_bvTerm7037	= { FOLLOW_BVGE_TOK_in_bvTerm7037_bits, 2	};
2707
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7039  */
2708
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7039_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2709
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7039	= { FOLLOW_LPAREN_in_bvTerm7039_bits, 4	};
2710
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7041  */
2711
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7041_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2712
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7041	= { FOLLOW_formula_in_bvTerm7041_bits, 1	};
2713
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7044  */
2714
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7044_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2715
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7044	= { FOLLOW_COMMA_in_bvTerm7044_bits, 4	};
2716
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7046  */
2717
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7046_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2718
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7046	= { FOLLOW_formula_in_bvTerm7046_bits, 3	};
2719
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7049  */
2720
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7049_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2721
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7049	= { FOLLOW_RPAREN_in_bvTerm7049_bits, 1	};
2722
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSLT_TOK_in_bvTerm7061  */
2723
static	ANTLR3_BITWORD FOLLOW_BVSLT_TOK_in_bvTerm7061_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2724
static  ANTLR3_BITSET_LIST FOLLOW_BVSLT_TOK_in_bvTerm7061	= { FOLLOW_BVSLT_TOK_in_bvTerm7061_bits, 2	};
2725
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7063  */
2726
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7063_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2727
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7063	= { FOLLOW_LPAREN_in_bvTerm7063_bits, 4	};
2728
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7065  */
2729
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7065_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2730
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7065	= { FOLLOW_formula_in_bvTerm7065_bits, 1	};
2731
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7068  */
2732
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7068_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2733
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7068	= { FOLLOW_COMMA_in_bvTerm7068_bits, 4	};
2734
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7070  */
2735
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7070_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2736
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7070	= { FOLLOW_formula_in_bvTerm7070_bits, 3	};
2737
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7073  */
2738
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7073_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2739
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7073	= { FOLLOW_RPAREN_in_bvTerm7073_bits, 1	};
2740
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSLE_TOK_in_bvTerm7085  */
2741
static	ANTLR3_BITWORD FOLLOW_BVSLE_TOK_in_bvTerm7085_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2742
static  ANTLR3_BITSET_LIST FOLLOW_BVSLE_TOK_in_bvTerm7085	= { FOLLOW_BVSLE_TOK_in_bvTerm7085_bits, 2	};
2743
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7087  */
2744
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7087_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2745
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7087	= { FOLLOW_LPAREN_in_bvTerm7087_bits, 4	};
2746
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7089  */
2747
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7089_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2748
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7089	= { FOLLOW_formula_in_bvTerm7089_bits, 1	};
2749
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7092  */
2750
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7092_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2751
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7092	= { FOLLOW_COMMA_in_bvTerm7092_bits, 4	};
2752
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7094  */
2753
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7094_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2754
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7094	= { FOLLOW_formula_in_bvTerm7094_bits, 3	};
2755
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7097  */
2756
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7097_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2757
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7097	= { FOLLOW_RPAREN_in_bvTerm7097_bits, 1	};
2758
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSGT_TOK_in_bvTerm7109  */
2759
static	ANTLR3_BITWORD FOLLOW_BVSGT_TOK_in_bvTerm7109_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2760
static  ANTLR3_BITSET_LIST FOLLOW_BVSGT_TOK_in_bvTerm7109	= { FOLLOW_BVSGT_TOK_in_bvTerm7109_bits, 2	};
2761
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7111  */
2762
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7111_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2763
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7111	= { FOLLOW_LPAREN_in_bvTerm7111_bits, 4	};
2764
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7113  */
2765
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7113_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2766
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7113	= { FOLLOW_formula_in_bvTerm7113_bits, 1	};
2767
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7116  */
2768
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7116_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2769
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7116	= { FOLLOW_COMMA_in_bvTerm7116_bits, 4	};
2770
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7118  */
2771
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7118_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2772
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7118	= { FOLLOW_formula_in_bvTerm7118_bits, 3	};
2773
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7121  */
2774
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7121_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2775
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7121	= { FOLLOW_RPAREN_in_bvTerm7121_bits, 1	};
2776
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BVSGE_TOK_in_bvTerm7133  */
2777
static	ANTLR3_BITWORD FOLLOW_BVSGE_TOK_in_bvTerm7133_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2778
static  ANTLR3_BITSET_LIST FOLLOW_BVSGE_TOK_in_bvTerm7133	= { FOLLOW_BVSGE_TOK_in_bvTerm7133_bits, 2	};
2779
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_bvTerm7135  */
2780
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_bvTerm7135_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2781
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_bvTerm7135	= { FOLLOW_LPAREN_in_bvTerm7135_bits, 4	};
2782
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7137  */
2783
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7137_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2784
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7137	= { FOLLOW_formula_in_bvTerm7137_bits, 1	};
2785
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_bvTerm7140  */
2786
static	ANTLR3_BITWORD FOLLOW_COMMA_in_bvTerm7140_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2787
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_bvTerm7140	= { FOLLOW_COMMA_in_bvTerm7140_bits, 4	};
2788
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_bvTerm7142  */
2789
static	ANTLR3_BITWORD FOLLOW_formula_in_bvTerm7142_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2790
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_bvTerm7142	= { FOLLOW_formula_in_bvTerm7142_bits, 3	};
2791
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_bvTerm7145  */
2792
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_bvTerm7145_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2793
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_bvTerm7145	= { FOLLOW_RPAREN_in_bvTerm7145_bits, 1	};
2794
/** Bitset defining follow set for error recovery in rule state: FOLLOW_stringTerm_in_bvTerm7157  */
2795
static	ANTLR3_BITWORD FOLLOW_stringTerm_in_bvTerm7157_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2796
static  ANTLR3_BITSET_LIST FOLLOW_stringTerm_in_bvTerm7157	= { FOLLOW_stringTerm_in_bvTerm7157_bits, 1	};
2797
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_CONCAT_TOK_in_stringTerm7183  */
2798
static	ANTLR3_BITWORD FOLLOW_STRING_CONCAT_TOK_in_stringTerm7183_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2799
static  ANTLR3_BITSET_LIST FOLLOW_STRING_CONCAT_TOK_in_stringTerm7183	= { FOLLOW_STRING_CONCAT_TOK_in_stringTerm7183_bits, 2	};
2800
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7185  */
2801
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7185_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2802
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7185	= { FOLLOW_LPAREN_in_stringTerm7185_bits, 4	};
2803
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7187  */
2804
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7187_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2805
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7187	= { FOLLOW_formula_in_stringTerm7187_bits, 1	};
2806
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7198  */
2807
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7198_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2808
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7198	= { FOLLOW_COMMA_in_stringTerm7198_bits, 4	};
2809
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7200  */
2810
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7200_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2811
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7200	= { FOLLOW_formula_in_stringTerm7200_bits, 3	};
2812
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7208  */
2813
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7208_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2814
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7208	= { FOLLOW_RPAREN_in_stringTerm7208_bits, 1	};
2815
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_LENGTH_TOK_in_stringTerm7220  */
2816
static	ANTLR3_BITWORD FOLLOW_STRING_LENGTH_TOK_in_stringTerm7220_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2817
static  ANTLR3_BITSET_LIST FOLLOW_STRING_LENGTH_TOK_in_stringTerm7220	= { FOLLOW_STRING_LENGTH_TOK_in_stringTerm7220_bits, 2	};
2818
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7222  */
2819
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7222_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2820
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7222	= { FOLLOW_LPAREN_in_stringTerm7222_bits, 4	};
2821
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7224  */
2822
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7224_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2823
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7224	= { FOLLOW_formula_in_stringTerm7224_bits, 3	};
2824
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7227  */
2825
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7227_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2826
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7227	= { FOLLOW_RPAREN_in_stringTerm7227_bits, 1	};
2827
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_CONTAINS_TOK_in_stringTerm7239  */
2828
static	ANTLR3_BITWORD FOLLOW_STRING_CONTAINS_TOK_in_stringTerm7239_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2829
static  ANTLR3_BITSET_LIST FOLLOW_STRING_CONTAINS_TOK_in_stringTerm7239	= { FOLLOW_STRING_CONTAINS_TOK_in_stringTerm7239_bits, 2	};
2830
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7241  */
2831
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7241_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2832
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7241	= { FOLLOW_LPAREN_in_stringTerm7241_bits, 4	};
2833
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7243  */
2834
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7243_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2835
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7243	= { FOLLOW_formula_in_stringTerm7243_bits, 1	};
2836
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7246  */
2837
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7246_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2838
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7246	= { FOLLOW_COMMA_in_stringTerm7246_bits, 4	};
2839
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7248  */
2840
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7248_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2841
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7248	= { FOLLOW_formula_in_stringTerm7248_bits, 3	};
2842
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7251  */
2843
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2844
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7251	= { FOLLOW_RPAREN_in_stringTerm7251_bits, 1	};
2845
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_SUBSTR_TOK_in_stringTerm7263  */
2846
static	ANTLR3_BITWORD FOLLOW_STRING_SUBSTR_TOK_in_stringTerm7263_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2847
static  ANTLR3_BITSET_LIST FOLLOW_STRING_SUBSTR_TOK_in_stringTerm7263	= { FOLLOW_STRING_SUBSTR_TOK_in_stringTerm7263_bits, 2	};
2848
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7265  */
2849
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7265_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2850
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7265	= { FOLLOW_LPAREN_in_stringTerm7265_bits, 4	};
2851
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7267  */
2852
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7267_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2853
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7267	= { FOLLOW_formula_in_stringTerm7267_bits, 1	};
2854
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7270  */
2855
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7270_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2856
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7270	= { FOLLOW_COMMA_in_stringTerm7270_bits, 4	};
2857
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7272  */
2858
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7272_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2859
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7272	= { FOLLOW_formula_in_stringTerm7272_bits, 1	};
2860
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7275  */
2861
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7275_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2862
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7275	= { FOLLOW_COMMA_in_stringTerm7275_bits, 4	};
2863
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7277  */
2864
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2865
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7277	= { FOLLOW_formula_in_stringTerm7277_bits, 3	};
2866
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7280  */
2867
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7280_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2868
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7280	= { FOLLOW_RPAREN_in_stringTerm7280_bits, 1	};
2869
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_CHARAT_TOK_in_stringTerm7292  */
2870
static	ANTLR3_BITWORD FOLLOW_STRING_CHARAT_TOK_in_stringTerm7292_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2871
static  ANTLR3_BITSET_LIST FOLLOW_STRING_CHARAT_TOK_in_stringTerm7292	= { FOLLOW_STRING_CHARAT_TOK_in_stringTerm7292_bits, 2	};
2872
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7294  */
2873
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7294_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2874
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7294	= { FOLLOW_LPAREN_in_stringTerm7294_bits, 4	};
2875
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7296  */
2876
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7296_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2877
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7296	= { FOLLOW_formula_in_stringTerm7296_bits, 1	};
2878
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7299  */
2879
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7299_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2880
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7299	= { FOLLOW_COMMA_in_stringTerm7299_bits, 4	};
2881
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7301  */
2882
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7301_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2883
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7301	= { FOLLOW_formula_in_stringTerm7301_bits, 3	};
2884
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7304  */
2885
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7304_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2886
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7304	= { FOLLOW_RPAREN_in_stringTerm7304_bits, 1	};
2887
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_INDEXOF_TOK_in_stringTerm7316  */
2888
static	ANTLR3_BITWORD FOLLOW_STRING_INDEXOF_TOK_in_stringTerm7316_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2889
static  ANTLR3_BITSET_LIST FOLLOW_STRING_INDEXOF_TOK_in_stringTerm7316	= { FOLLOW_STRING_INDEXOF_TOK_in_stringTerm7316_bits, 2	};
2890
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7318  */
2891
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7318_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2892
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7318	= { FOLLOW_LPAREN_in_stringTerm7318_bits, 4	};
2893
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7320  */
2894
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7320_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2895
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7320	= { FOLLOW_formula_in_stringTerm7320_bits, 1	};
2896
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7323  */
2897
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7323_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2898
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7323	= { FOLLOW_COMMA_in_stringTerm7323_bits, 4	};
2899
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7325  */
2900
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7325_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2901
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7325	= { FOLLOW_formula_in_stringTerm7325_bits, 1	};
2902
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7328  */
2903
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7328_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2904
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7328	= { FOLLOW_COMMA_in_stringTerm7328_bits, 4	};
2905
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7330  */
2906
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7330_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2907
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7330	= { FOLLOW_formula_in_stringTerm7330_bits, 3	};
2908
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7333  */
2909
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7333_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2910
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7333	= { FOLLOW_RPAREN_in_stringTerm7333_bits, 1	};
2911
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_REPLACE_TOK_in_stringTerm7345  */
2912
static	ANTLR3_BITWORD FOLLOW_STRING_REPLACE_TOK_in_stringTerm7345_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2913
static  ANTLR3_BITSET_LIST FOLLOW_STRING_REPLACE_TOK_in_stringTerm7345	= { FOLLOW_STRING_REPLACE_TOK_in_stringTerm7345_bits, 2	};
2914
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7347  */
2915
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7347_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2916
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7347	= { FOLLOW_LPAREN_in_stringTerm7347_bits, 4	};
2917
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7349  */
2918
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7349_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2919
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7349	= { FOLLOW_formula_in_stringTerm7349_bits, 1	};
2920
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7352  */
2921
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7352_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2922
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7352	= { FOLLOW_COMMA_in_stringTerm7352_bits, 4	};
2923
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7354  */
2924
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7354_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2925
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7354	= { FOLLOW_formula_in_stringTerm7354_bits, 1	};
2926
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7357  */
2927
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7357_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2928
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7357	= { FOLLOW_COMMA_in_stringTerm7357_bits, 4	};
2929
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7359  */
2930
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7359_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2931
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7359	= { FOLLOW_formula_in_stringTerm7359_bits, 3	};
2932
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7362  */
2933
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7362_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2934
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7362	= { FOLLOW_RPAREN_in_stringTerm7362_bits, 1	};
2935
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_REPLACE_ALL_TOK_in_stringTerm7374  */
2936
static	ANTLR3_BITWORD FOLLOW_STRING_REPLACE_ALL_TOK_in_stringTerm7374_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2937
static  ANTLR3_BITSET_LIST FOLLOW_STRING_REPLACE_ALL_TOK_in_stringTerm7374	= { FOLLOW_STRING_REPLACE_ALL_TOK_in_stringTerm7374_bits, 2	};
2938
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7376  */
2939
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7376_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2940
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7376	= { FOLLOW_LPAREN_in_stringTerm7376_bits, 4	};
2941
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7378  */
2942
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7378_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2943
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7378	= { FOLLOW_formula_in_stringTerm7378_bits, 1	};
2944
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7381  */
2945
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7381_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2946
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7381	= { FOLLOW_COMMA_in_stringTerm7381_bits, 4	};
2947
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7383  */
2948
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7383_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2949
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7383	= { FOLLOW_formula_in_stringTerm7383_bits, 1	};
2950
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7386  */
2951
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7386_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2952
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7386	= { FOLLOW_COMMA_in_stringTerm7386_bits, 4	};
2953
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7388  */
2954
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7388_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2955
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7388	= { FOLLOW_formula_in_stringTerm7388_bits, 3	};
2956
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7391  */
2957
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7391_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2958
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7391	= { FOLLOW_RPAREN_in_stringTerm7391_bits, 1	};
2959
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_PREFIXOF_TOK_in_stringTerm7403  */
2960
static	ANTLR3_BITWORD FOLLOW_STRING_PREFIXOF_TOK_in_stringTerm7403_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2961
static  ANTLR3_BITSET_LIST FOLLOW_STRING_PREFIXOF_TOK_in_stringTerm7403	= { FOLLOW_STRING_PREFIXOF_TOK_in_stringTerm7403_bits, 2	};
2962
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7405  */
2963
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7405_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2964
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7405	= { FOLLOW_LPAREN_in_stringTerm7405_bits, 4	};
2965
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7407  */
2966
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7407_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2967
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7407	= { FOLLOW_formula_in_stringTerm7407_bits, 1	};
2968
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7410  */
2969
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7410_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2970
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7410	= { FOLLOW_COMMA_in_stringTerm7410_bits, 4	};
2971
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7412  */
2972
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7412_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2973
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7412	= { FOLLOW_formula_in_stringTerm7412_bits, 3	};
2974
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7415  */
2975
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7415_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2976
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7415	= { FOLLOW_RPAREN_in_stringTerm7415_bits, 1	};
2977
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_SUFFIXOF_TOK_in_stringTerm7427  */
2978
static	ANTLR3_BITWORD FOLLOW_STRING_SUFFIXOF_TOK_in_stringTerm7427_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2979
static  ANTLR3_BITSET_LIST FOLLOW_STRING_SUFFIXOF_TOK_in_stringTerm7427	= { FOLLOW_STRING_SUFFIXOF_TOK_in_stringTerm7427_bits, 2	};
2980
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7429  */
2981
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7429_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2982
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7429	= { FOLLOW_LPAREN_in_stringTerm7429_bits, 4	};
2983
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7431  */
2984
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7431_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
2985
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7431	= { FOLLOW_formula_in_stringTerm7431_bits, 1	};
2986
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7434  */
2987
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7434_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
2988
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7434	= { FOLLOW_COMMA_in_stringTerm7434_bits, 4	};
2989
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7436  */
2990
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7436_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
2991
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7436	= { FOLLOW_formula_in_stringTerm7436_bits, 3	};
2992
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7439  */
2993
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7439_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
2994
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7439	= { FOLLOW_RPAREN_in_stringTerm7439_bits, 1	};
2995
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_STOI_TOK_in_stringTerm7451  */
2996
static	ANTLR3_BITWORD FOLLOW_STRING_STOI_TOK_in_stringTerm7451_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
2997
static  ANTLR3_BITSET_LIST FOLLOW_STRING_STOI_TOK_in_stringTerm7451	= { FOLLOW_STRING_STOI_TOK_in_stringTerm7451_bits, 2	};
2998
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7453  */
2999
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7453_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3000
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7453	= { FOLLOW_LPAREN_in_stringTerm7453_bits, 4	};
3001
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7455  */
3002
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7455_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3003
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7455	= { FOLLOW_formula_in_stringTerm7455_bits, 3	};
3004
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7458  */
3005
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7458_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3006
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7458	= { FOLLOW_RPAREN_in_stringTerm7458_bits, 1	};
3007
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_ITOS_TOK_in_stringTerm7470  */
3008
static	ANTLR3_BITWORD FOLLOW_STRING_ITOS_TOK_in_stringTerm7470_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3009
static  ANTLR3_BITSET_LIST FOLLOW_STRING_ITOS_TOK_in_stringTerm7470	= { FOLLOW_STRING_ITOS_TOK_in_stringTerm7470_bits, 2	};
3010
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7472  */
3011
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7472_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3012
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7472	= { FOLLOW_LPAREN_in_stringTerm7472_bits, 4	};
3013
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7474  */
3014
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7474_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3015
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7474	= { FOLLOW_formula_in_stringTerm7474_bits, 3	};
3016
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7477  */
3017
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7477_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3018
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7477	= { FOLLOW_RPAREN_in_stringTerm7477_bits, 1	};
3019
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_TO_REGEXP_TOK_in_stringTerm7489  */
3020
static	ANTLR3_BITWORD FOLLOW_STRING_TO_REGEXP_TOK_in_stringTerm7489_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3021
static  ANTLR3_BITSET_LIST FOLLOW_STRING_TO_REGEXP_TOK_in_stringTerm7489	= { FOLLOW_STRING_TO_REGEXP_TOK_in_stringTerm7489_bits, 2	};
3022
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7491  */
3023
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7491_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3024
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7491	= { FOLLOW_LPAREN_in_stringTerm7491_bits, 4	};
3025
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7493  */
3026
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7493_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3027
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7493	= { FOLLOW_formula_in_stringTerm7493_bits, 3	};
3028
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7496  */
3029
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7496_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3030
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7496	= { FOLLOW_RPAREN_in_stringTerm7496_bits, 1	};
3031
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_TOLOWER_TOK_in_stringTerm7508  */
3032
static	ANTLR3_BITWORD FOLLOW_STRING_TOLOWER_TOK_in_stringTerm7508_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3033
static  ANTLR3_BITSET_LIST FOLLOW_STRING_TOLOWER_TOK_in_stringTerm7508	= { FOLLOW_STRING_TOLOWER_TOK_in_stringTerm7508_bits, 2	};
3034
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7510  */
3035
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7510_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3036
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7510	= { FOLLOW_LPAREN_in_stringTerm7510_bits, 4	};
3037
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7512  */
3038
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7512_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3039
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7512	= { FOLLOW_formula_in_stringTerm7512_bits, 3	};
3040
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7515  */
3041
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7515_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3042
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7515	= { FOLLOW_RPAREN_in_stringTerm7515_bits, 1	};
3043
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_TOUPPER_TOK_in_stringTerm7527  */
3044
static	ANTLR3_BITWORD FOLLOW_STRING_TOUPPER_TOK_in_stringTerm7527_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3045
static  ANTLR3_BITSET_LIST FOLLOW_STRING_TOUPPER_TOK_in_stringTerm7527	= { FOLLOW_STRING_TOUPPER_TOK_in_stringTerm7527_bits, 2	};
3046
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7529  */
3047
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7529_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3048
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7529	= { FOLLOW_LPAREN_in_stringTerm7529_bits, 4	};
3049
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7531  */
3050
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7531_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3051
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7531	= { FOLLOW_formula_in_stringTerm7531_bits, 3	};
3052
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7534  */
3053
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7534_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3054
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7534	= { FOLLOW_RPAREN_in_stringTerm7534_bits, 1	};
3055
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_REV_TOK_in_stringTerm7546  */
3056
static	ANTLR3_BITWORD FOLLOW_STRING_REV_TOK_in_stringTerm7546_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3057
static  ANTLR3_BITSET_LIST FOLLOW_STRING_REV_TOK_in_stringTerm7546	= { FOLLOW_STRING_REV_TOK_in_stringTerm7546_bits, 2	};
3058
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7548  */
3059
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7548_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3060
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7548	= { FOLLOW_LPAREN_in_stringTerm7548_bits, 4	};
3061
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7550  */
3062
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7550_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3063
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7550	= { FOLLOW_formula_in_stringTerm7550_bits, 3	};
3064
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7553  */
3065
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7553_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3066
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7553	= { FOLLOW_RPAREN_in_stringTerm7553_bits, 1	};
3067
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_CONCAT_TOK_in_stringTerm7565  */
3068
static	ANTLR3_BITWORD FOLLOW_REGEXP_CONCAT_TOK_in_stringTerm7565_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3069
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_CONCAT_TOK_in_stringTerm7565	= { FOLLOW_REGEXP_CONCAT_TOK_in_stringTerm7565_bits, 2	};
3070
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7567  */
3071
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7567_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3072
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7567	= { FOLLOW_LPAREN_in_stringTerm7567_bits, 4	};
3073
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7569  */
3074
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7569_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3075
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7569	= { FOLLOW_formula_in_stringTerm7569_bits, 1	};
3076
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7580  */
3077
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7580_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3078
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7580	= { FOLLOW_COMMA_in_stringTerm7580_bits, 4	};
3079
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7582  */
3080
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7582_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3081
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7582	= { FOLLOW_formula_in_stringTerm7582_bits, 3	};
3082
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7590  */
3083
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7590_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3084
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7590	= { FOLLOW_RPAREN_in_stringTerm7590_bits, 1	};
3085
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_UNION_TOK_in_stringTerm7602  */
3086
static	ANTLR3_BITWORD FOLLOW_REGEXP_UNION_TOK_in_stringTerm7602_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3087
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_UNION_TOK_in_stringTerm7602	= { FOLLOW_REGEXP_UNION_TOK_in_stringTerm7602_bits, 2	};
3088
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7604  */
3089
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7604_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3090
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7604	= { FOLLOW_LPAREN_in_stringTerm7604_bits, 4	};
3091
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7606  */
3092
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7606_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3093
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7606	= { FOLLOW_formula_in_stringTerm7606_bits, 1	};
3094
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7617  */
3095
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7617_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3096
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7617	= { FOLLOW_COMMA_in_stringTerm7617_bits, 4	};
3097
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7619  */
3098
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7619_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3099
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7619	= { FOLLOW_formula_in_stringTerm7619_bits, 3	};
3100
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7627  */
3101
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7627_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3102
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7627	= { FOLLOW_RPAREN_in_stringTerm7627_bits, 1	};
3103
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_INTER_TOK_in_stringTerm7639  */
3104
static	ANTLR3_BITWORD FOLLOW_REGEXP_INTER_TOK_in_stringTerm7639_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3105
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_INTER_TOK_in_stringTerm7639	= { FOLLOW_REGEXP_INTER_TOK_in_stringTerm7639_bits, 2	};
3106
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7641  */
3107
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7641_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3108
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7641	= { FOLLOW_LPAREN_in_stringTerm7641_bits, 4	};
3109
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7643  */
3110
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7643_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3111
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7643	= { FOLLOW_formula_in_stringTerm7643_bits, 1	};
3112
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7654  */
3113
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7654_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3114
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7654	= { FOLLOW_COMMA_in_stringTerm7654_bits, 4	};
3115
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7656  */
3116
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7656_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3117
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7656	= { FOLLOW_formula_in_stringTerm7656_bits, 3	};
3118
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7664  */
3119
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7664_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3120
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7664	= { FOLLOW_RPAREN_in_stringTerm7664_bits, 1	};
3121
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_STAR_TOK_in_stringTerm7676  */
3122
static	ANTLR3_BITWORD FOLLOW_REGEXP_STAR_TOK_in_stringTerm7676_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3123
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_STAR_TOK_in_stringTerm7676	= { FOLLOW_REGEXP_STAR_TOK_in_stringTerm7676_bits, 2	};
3124
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7678  */
3125
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7678_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3126
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7678	= { FOLLOW_LPAREN_in_stringTerm7678_bits, 4	};
3127
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7680  */
3128
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7680_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3129
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7680	= { FOLLOW_formula_in_stringTerm7680_bits, 3	};
3130
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7683  */
3131
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7683_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3132
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7683	= { FOLLOW_RPAREN_in_stringTerm7683_bits, 1	};
3133
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_PLUS_TOK_in_stringTerm7695  */
3134
static	ANTLR3_BITWORD FOLLOW_REGEXP_PLUS_TOK_in_stringTerm7695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3135
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_PLUS_TOK_in_stringTerm7695	= { FOLLOW_REGEXP_PLUS_TOK_in_stringTerm7695_bits, 2	};
3136
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7697  */
3137
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7697_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3138
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7697	= { FOLLOW_LPAREN_in_stringTerm7697_bits, 4	};
3139
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7699  */
3140
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7699_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3141
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7699	= { FOLLOW_formula_in_stringTerm7699_bits, 3	};
3142
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7702  */
3143
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7702_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3144
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7702	= { FOLLOW_RPAREN_in_stringTerm7702_bits, 1	};
3145
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_OPT_TOK_in_stringTerm7714  */
3146
static	ANTLR3_BITWORD FOLLOW_REGEXP_OPT_TOK_in_stringTerm7714_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3147
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_OPT_TOK_in_stringTerm7714	= { FOLLOW_REGEXP_OPT_TOK_in_stringTerm7714_bits, 2	};
3148
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7716  */
3149
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7716_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3150
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7716	= { FOLLOW_LPAREN_in_stringTerm7716_bits, 4	};
3151
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7718  */
3152
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7718_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3153
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7718	= { FOLLOW_formula_in_stringTerm7718_bits, 3	};
3154
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7721  */
3155
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7721_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3156
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7721	= { FOLLOW_RPAREN_in_stringTerm7721_bits, 1	};
3157
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_RANGE_TOK_in_stringTerm7733  */
3158
static	ANTLR3_BITWORD FOLLOW_REGEXP_RANGE_TOK_in_stringTerm7733_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3159
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_RANGE_TOK_in_stringTerm7733	= { FOLLOW_REGEXP_RANGE_TOK_in_stringTerm7733_bits, 2	};
3160
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7735  */
3161
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7735_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3162
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7735	= { FOLLOW_LPAREN_in_stringTerm7735_bits, 4	};
3163
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7737  */
3164
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7737_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3165
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7737	= { FOLLOW_formula_in_stringTerm7737_bits, 1	};
3166
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7740  */
3167
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7740_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3168
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7740	= { FOLLOW_COMMA_in_stringTerm7740_bits, 4	};
3169
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7742  */
3170
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7742_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3171
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7742	= { FOLLOW_formula_in_stringTerm7742_bits, 3	};
3172
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7745  */
3173
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7745_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3174
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7745	= { FOLLOW_RPAREN_in_stringTerm7745_bits, 1	};
3175
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_LOOP_TOK_in_stringTerm7757  */
3176
static	ANTLR3_BITWORD FOLLOW_REGEXP_LOOP_TOK_in_stringTerm7757_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3177
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_LOOP_TOK_in_stringTerm7757	= { FOLLOW_REGEXP_LOOP_TOK_in_stringTerm7757_bits, 2	};
3178
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7759  */
3179
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7759_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3180
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7759	= { FOLLOW_LPAREN_in_stringTerm7759_bits, 4	};
3181
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7761  */
3182
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7761_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3183
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7761	= { FOLLOW_formula_in_stringTerm7761_bits, 1	};
3184
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7764  */
3185
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7764_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
3186
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7764	= { FOLLOW_COMMA_in_stringTerm7764_bits, 2	};
3187
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_stringTerm7768  */
3188
static	ANTLR3_BITWORD FOLLOW_numeral_in_stringTerm7768_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000) };
3189
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_stringTerm7768	= { FOLLOW_numeral_in_stringTerm7768_bits, 1	};
3190
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_stringTerm7770  */
3191
static	ANTLR3_BITWORD FOLLOW_COMMA_in_stringTerm7770_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0001000000000000) };
3192
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_stringTerm7770	= { FOLLOW_COMMA_in_stringTerm7770_bits, 2	};
3193
/** Bitset defining follow set for error recovery in rule state: FOLLOW_numeral_in_stringTerm7774  */
3194
static	ANTLR3_BITWORD FOLLOW_numeral_in_stringTerm7774_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3195
static  ANTLR3_BITSET_LIST FOLLOW_numeral_in_stringTerm7774	= { FOLLOW_numeral_in_stringTerm7774_bits, 3	};
3196
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7776  */
3197
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7776_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3198
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7776	= { FOLLOW_RPAREN_in_stringTerm7776_bits, 1	};
3199
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_COMPLEMENT_TOK_in_stringTerm7788  */
3200
static	ANTLR3_BITWORD FOLLOW_REGEXP_COMPLEMENT_TOK_in_stringTerm7788_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3201
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_COMPLEMENT_TOK_in_stringTerm7788	= { FOLLOW_REGEXP_COMPLEMENT_TOK_in_stringTerm7788_bits, 2	};
3202
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7790  */
3203
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7790_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3204
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7790	= { FOLLOW_LPAREN_in_stringTerm7790_bits, 4	};
3205
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7792  */
3206
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7792_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3207
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7792	= { FOLLOW_formula_in_stringTerm7792_bits, 3	};
3208
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7795  */
3209
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7795_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3210
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7795	= { FOLLOW_RPAREN_in_stringTerm7795_bits, 1	};
3211
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SEQ_UNIT_TOK_in_stringTerm7807  */
3212
static	ANTLR3_BITWORD FOLLOW_SEQ_UNIT_TOK_in_stringTerm7807_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3213
static  ANTLR3_BITSET_LIST FOLLOW_SEQ_UNIT_TOK_in_stringTerm7807	= { FOLLOW_SEQ_UNIT_TOK_in_stringTerm7807_bits, 2	};
3214
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_stringTerm7809  */
3215
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_stringTerm7809_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3216
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_stringTerm7809	= { FOLLOW_LPAREN_in_stringTerm7809_bits, 4	};
3217
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_stringTerm7811  */
3218
static	ANTLR3_BITWORD FOLLOW_formula_in_stringTerm7811_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3219
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_stringTerm7811	= { FOLLOW_formula_in_stringTerm7811_bits, 3	};
3220
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_stringTerm7814  */
3221
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_stringTerm7814_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3222
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_stringTerm7814	= { FOLLOW_RPAREN_in_stringTerm7814_bits, 1	};
3223
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_EMPTY_TOK_in_stringTerm7826  */
3224
static	ANTLR3_BITWORD FOLLOW_REGEXP_EMPTY_TOK_in_stringTerm7826_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3225
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_EMPTY_TOK_in_stringTerm7826	= { FOLLOW_REGEXP_EMPTY_TOK_in_stringTerm7826_bits, 1	};
3226
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REGEXP_SIGMA_TOK_in_stringTerm7838  */
3227
static	ANTLR3_BITWORD FOLLOW_REGEXP_SIGMA_TOK_in_stringTerm7838_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3228
static  ANTLR3_BITSET_LIST FOLLOW_REGEXP_SIGMA_TOK_in_stringTerm7838	= { FOLLOW_REGEXP_SIGMA_TOK_in_stringTerm7838_bits, 1	};
3229
/** Bitset defining follow set for error recovery in rule state: FOLLOW_str_in_stringTerm7857  */
3230
static	ANTLR3_BITWORD FOLLOW_str_in_stringTerm7857_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3231
static  ANTLR3_BITSET_LIST FOLLOW_str_in_stringTerm7857	= { FOLLOW_str_in_stringTerm7857_bits, 1	};
3232
/** Bitset defining follow set for error recovery in rule state: FOLLOW_setsTerm_in_stringTerm7871  */
3233
static	ANTLR3_BITWORD FOLLOW_setsTerm_in_stringTerm7871_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3234
static  ANTLR3_BITSET_LIST FOLLOW_setsTerm_in_stringTerm7871	= { FOLLOW_setsTerm_in_stringTerm7871_bits, 1	};
3235
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SETS_CARD_TOK_in_setsTerm7897  */
3236
static	ANTLR3_BITWORD FOLLOW_SETS_CARD_TOK_in_setsTerm7897_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3237
static  ANTLR3_BITSET_LIST FOLLOW_SETS_CARD_TOK_in_setsTerm7897	= { FOLLOW_SETS_CARD_TOK_in_setsTerm7897_bits, 2	};
3238
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_setsTerm7899  */
3239
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_setsTerm7899_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3240
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_setsTerm7899	= { FOLLOW_LPAREN_in_setsTerm7899_bits, 4	};
3241
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_setsTerm7901  */
3242
static	ANTLR3_BITWORD FOLLOW_formula_in_setsTerm7901_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3243
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_setsTerm7901	= { FOLLOW_formula_in_setsTerm7901_bits, 3	};
3244
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_setsTerm7904  */
3245
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_setsTerm7904_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3246
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_setsTerm7904	= { FOLLOW_RPAREN_in_setsTerm7904_bits, 1	};
3247
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SETS_CHOOSE_TOK_in_setsTerm7916  */
3248
static	ANTLR3_BITWORD FOLLOW_SETS_CHOOSE_TOK_in_setsTerm7916_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3249
static  ANTLR3_BITSET_LIST FOLLOW_SETS_CHOOSE_TOK_in_setsTerm7916	= { FOLLOW_SETS_CHOOSE_TOK_in_setsTerm7916_bits, 2	};
3250
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_setsTerm7918  */
3251
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_setsTerm7918_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3252
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_setsTerm7918	= { FOLLOW_LPAREN_in_setsTerm7918_bits, 4	};
3253
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_setsTerm7920  */
3254
static	ANTLR3_BITWORD FOLLOW_formula_in_setsTerm7920_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3255
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_setsTerm7920	= { FOLLOW_formula_in_setsTerm7920_bits, 3	};
3256
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_setsTerm7923  */
3257
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_setsTerm7923_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3258
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_setsTerm7923	= { FOLLOW_RPAREN_in_setsTerm7923_bits, 1	};
3259
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleTerm_in_setsTerm7939  */
3260
static	ANTLR3_BITWORD FOLLOW_simpleTerm_in_setsTerm7939_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3261
static  ANTLR3_BITSET_LIST FOLLOW_simpleTerm_in_setsTerm7939	= { FOLLOW_simpleTerm_in_setsTerm7939_bits, 1	};
3262
/** Bitset defining follow set for error recovery in rule state: FOLLOW_iteTerm_in_simpleTerm7968  */
3263
static	ANTLR3_BITWORD FOLLOW_iteTerm_in_simpleTerm7968_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3264
static  ANTLR3_BITSET_LIST FOLLOW_iteTerm_in_simpleTerm7968	= { FOLLOW_iteTerm_in_simpleTerm7968_bits, 1	};
3265
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_simpleTerm7982  */
3266
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_simpleTerm7982_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3267
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_simpleTerm7982	= { FOLLOW_LPAREN_in_simpleTerm7982_bits, 4	};
3268
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_simpleTerm7984  */
3269
static	ANTLR3_BITWORD FOLLOW_formula_in_simpleTerm7984_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3270
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_simpleTerm7984	= { FOLLOW_formula_in_simpleTerm7984_bits, 3	};
3271
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_simpleTerm7995  */
3272
static	ANTLR3_BITWORD FOLLOW_COMMA_in_simpleTerm7995_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3273
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_simpleTerm7995	= { FOLLOW_COMMA_in_simpleTerm7995_bits, 4	};
3274
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_simpleTerm7997  */
3275
static	ANTLR3_BITWORD FOLLOW_formula_in_simpleTerm7997_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3276
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_simpleTerm7997	= { FOLLOW_formula_in_simpleTerm7997_bits, 3	};
3277
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_simpleTerm8005  */
3278
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_simpleTerm8005_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3279
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_simpleTerm8005	= { FOLLOW_RPAREN_in_simpleTerm8005_bits, 1	};
3280
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_simpleTerm8024  */
3281
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_simpleTerm8024_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3282
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_simpleTerm8024	= { FOLLOW_LPAREN_in_simpleTerm8024_bits, 3	};
3283
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_simpleTerm8026  */
3284
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_simpleTerm8026_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3285
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_simpleTerm8026	= { FOLLOW_RPAREN_in_simpleTerm8026_bits, 1	};
3286
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PARENHASH_in_simpleTerm8045  */
3287
static	ANTLR3_BITWORD FOLLOW_PARENHASH_in_simpleTerm8045_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
3288
static  ANTLR3_BITSET_LIST FOLLOW_PARENHASH_in_simpleTerm8045	= { FOLLOW_PARENHASH_in_simpleTerm8045_bits, 2	};
3289
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HASHPAREN_in_simpleTerm8047  */
3290
static	ANTLR3_BITWORD FOLLOW_HASHPAREN_in_simpleTerm8047_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3291
static  ANTLR3_BITSET_LIST FOLLOW_HASHPAREN_in_simpleTerm8047	= { FOLLOW_HASHPAREN_in_simpleTerm8047_bits, 1	};
3292
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACE_in_simpleTerm8065  */
3293
static	ANTLR3_BITWORD FOLLOW_LBRACE_in_simpleTerm8065_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
3294
static  ANTLR3_BITSET_LIST FOLLOW_LBRACE_in_simpleTerm8065	= { FOLLOW_LBRACE_in_simpleTerm8065_bits, 3	};
3295
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACE_in_simpleTerm8067  */
3296
static	ANTLR3_BITWORD FOLLOW_RBRACE_in_simpleTerm8067_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3297
static  ANTLR3_BITSET_LIST FOLLOW_RBRACE_in_simpleTerm8067	= { FOLLOW_RBRACE_in_simpleTerm8067_bits, 1	};
3298
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UNIVSET_TOK_in_simpleTerm8079  */
3299
static	ANTLR3_BITWORD FOLLOW_UNIVSET_TOK_in_simpleTerm8079_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3300
static  ANTLR3_BITSET_LIST FOLLOW_UNIVSET_TOK_in_simpleTerm8079	= { FOLLOW_UNIVSET_TOK_in_simpleTerm8079_bits, 1	};
3301
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACE_in_simpleTerm8098  */
3302
static	ANTLR3_BITWORD FOLLOW_LBRACE_in_simpleTerm8098_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3303
static  ANTLR3_BITSET_LIST FOLLOW_LBRACE_in_simpleTerm8098	= { FOLLOW_LBRACE_in_simpleTerm8098_bits, 4	};
3304
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_simpleTerm8100  */
3305
static	ANTLR3_BITWORD FOLLOW_formula_in_simpleTerm8100_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
3306
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_simpleTerm8100	= { FOLLOW_formula_in_simpleTerm8100_bits, 3	};
3307
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_simpleTerm8111  */
3308
static	ANTLR3_BITWORD FOLLOW_COMMA_in_simpleTerm8111_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3309
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_simpleTerm8111	= { FOLLOW_COMMA_in_simpleTerm8111_bits, 4	};
3310
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_simpleTerm8113  */
3311
static	ANTLR3_BITWORD FOLLOW_formula_in_simpleTerm8113_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000080000) };
3312
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_simpleTerm8113	= { FOLLOW_formula_in_simpleTerm8113_bits, 3	};
3313
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACE_in_simpleTerm8121  */
3314
static	ANTLR3_BITWORD FOLLOW_RBRACE_in_simpleTerm8121_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3315
static  ANTLR3_BITSET_LIST FOLLOW_RBRACE_in_simpleTerm8121	= { FOLLOW_RBRACE_in_simpleTerm8121_bits, 1	};
3316
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BAR_in_simpleTerm8140  */
3317
static	ANTLR3_BITWORD FOLLOW_BAR_in_simpleTerm8140_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000004000) };
3318
static  ANTLR3_BITSET_LIST FOLLOW_BAR_in_simpleTerm8140	= { FOLLOW_BAR_in_simpleTerm8140_bits, 1	};
3319
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BAR_in_simpleTerm8142  */
3320
static	ANTLR3_BITWORD FOLLOW_BAR_in_simpleTerm8142_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3321
static  ANTLR3_BITSET_LIST FOLLOW_BAR_in_simpleTerm8142	= { FOLLOW_BAR_in_simpleTerm8142_bits, 4	};
3322
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_simpleTerm8144  */
3323
static	ANTLR3_BITWORD FOLLOW_formula_in_simpleTerm8144_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000004000) };
3324
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_simpleTerm8144	= { FOLLOW_formula_in_simpleTerm8144_bits, 1	};
3325
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BAR_in_simpleTerm8149  */
3326
static	ANTLR3_BITWORD FOLLOW_BAR_in_simpleTerm8149_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000004000) };
3327
static  ANTLR3_BITSET_LIST FOLLOW_BAR_in_simpleTerm8149	= { FOLLOW_BAR_in_simpleTerm8149_bits, 1	};
3328
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BAR_in_simpleTerm8151  */
3329
static	ANTLR3_BITWORD FOLLOW_BAR_in_simpleTerm8151_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3330
static  ANTLR3_BITSET_LIST FOLLOW_BAR_in_simpleTerm8151	= { FOLLOW_BAR_in_simpleTerm8151_bits, 1	};
3331
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARRAY_TOK_in_simpleTerm8170  */
3332
static	ANTLR3_BITWORD FOLLOW_ARRAY_TOK_in_simpleTerm8170_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x1000000000000000) };
3333
static  ANTLR3_BITSET_LIST FOLLOW_ARRAY_TOK_in_simpleTerm8170	= { FOLLOW_ARRAY_TOK_in_simpleTerm8170_bits, 2	};
3334
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_simpleTerm8172  */
3335
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_simpleTerm8172_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
3336
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_simpleTerm8172	= { FOLLOW_LPAREN_in_simpleTerm8172_bits, 4	};
3337
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_simpleTerm8178  */
3338
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_simpleTerm8178_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000008) };
3339
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_simpleTerm8178	= { FOLLOW_restrictedType_in_simpleTerm8178_bits, 3	};
3340
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OF_TOK_in_simpleTerm8181  */
3341
static	ANTLR3_BITWORD FOLLOW_OF_TOK_in_simpleTerm8181_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1102020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
3342
static  ANTLR3_BITSET_LIST FOLLOW_OF_TOK_in_simpleTerm8181	= { FOLLOW_OF_TOK_in_simpleTerm8181_bits, 4	};
3343
/** Bitset defining follow set for error recovery in rule state: FOLLOW_restrictedType_in_simpleTerm8183  */
3344
static	ANTLR3_BITWORD FOLLOW_restrictedType_in_simpleTerm8183_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3345
static  ANTLR3_BITSET_LIST FOLLOW_restrictedType_in_simpleTerm8183	= { FOLLOW_restrictedType_in_simpleTerm8183_bits, 3	};
3346
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_simpleTerm8190  */
3347
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_simpleTerm8190_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
3348
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_simpleTerm8190	= { FOLLOW_RPAREN_in_simpleTerm8190_bits, 1	};
3349
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_simpleTerm8192  */
3350
static	ANTLR3_BITWORD FOLLOW_COLON_in_simpleTerm8192_bits[]	= { ANTLR3_UINT64_LIT(0x400000000000C100), ANTLR3_UINT64_LIT(0x1081130002000000), ANTLR3_UINT64_LIT(0x0000000000000040), ANTLR3_UINT64_LIT(0x0000000000000880) };
3351
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_simpleTerm8192	= { FOLLOW_COLON_in_simpleTerm8192_bits, 4	};
3352
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleTerm_in_simpleTerm8194  */
3353
static	ANTLR3_BITWORD FOLLOW_simpleTerm_in_simpleTerm8194_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3354
static  ANTLR3_BITSET_LIST FOLLOW_simpleTerm_in_simpleTerm8194	= { FOLLOW_simpleTerm_in_simpleTerm8194_bits, 1	};
3355
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRUE_TOK_in_simpleTerm8214  */
3356
static	ANTLR3_BITWORD FOLLOW_TRUE_TOK_in_simpleTerm8214_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3357
static  ANTLR3_BITSET_LIST FOLLOW_TRUE_TOK_in_simpleTerm8214	= { FOLLOW_TRUE_TOK_in_simpleTerm8214_bits, 1	};
3358
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FALSE_TOK_in_simpleTerm8223  */
3359
static	ANTLR3_BITWORD FOLLOW_FALSE_TOK_in_simpleTerm8223_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3360
static  ANTLR3_BITSET_LIST FOLLOW_FALSE_TOK_in_simpleTerm8223	= { FOLLOW_FALSE_TOK_in_simpleTerm8223_bits, 1	};
3361
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DECIMAL_LITERAL_in_simpleTerm8243  */
3362
static	ANTLR3_BITWORD FOLLOW_DECIMAL_LITERAL_in_simpleTerm8243_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3363
static  ANTLR3_BITSET_LIST FOLLOW_DECIMAL_LITERAL_in_simpleTerm8243	= { FOLLOW_DECIMAL_LITERAL_in_simpleTerm8243_bits, 1	};
3364
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_LITERAL_in_simpleTerm8251  */
3365
static	ANTLR3_BITWORD FOLLOW_INTEGER_LITERAL_in_simpleTerm8251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3366
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_LITERAL_in_simpleTerm8251	= { FOLLOW_INTEGER_LITERAL_in_simpleTerm8251_bits, 1	};
3367
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HEX_LITERAL_in_simpleTerm8265  */
3368
static	ANTLR3_BITWORD FOLLOW_HEX_LITERAL_in_simpleTerm8265_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3369
static  ANTLR3_BITSET_LIST FOLLOW_HEX_LITERAL_in_simpleTerm8265	= { FOLLOW_HEX_LITERAL_in_simpleTerm8265_bits, 1	};
3370
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BINARY_LITERAL_in_simpleTerm8277  */
3371
static	ANTLR3_BITWORD FOLLOW_BINARY_LITERAL_in_simpleTerm8277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3372
static  ANTLR3_BITSET_LIST FOLLOW_BINARY_LITERAL_in_simpleTerm8277	= { FOLLOW_BINARY_LITERAL_in_simpleTerm8277_bits, 1	};
3373
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PARENHASH_in_simpleTerm8295  */
3374
static	ANTLR3_BITWORD FOLLOW_PARENHASH_in_simpleTerm8295_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3375
static  ANTLR3_BITSET_LIST FOLLOW_PARENHASH_in_simpleTerm8295	= { FOLLOW_PARENHASH_in_simpleTerm8295_bits, 2	};
3376
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordEntry_in_simpleTerm8297  */
3377
static	ANTLR3_BITWORD FOLLOW_recordEntry_in_simpleTerm8297_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
3378
static  ANTLR3_BITSET_LIST FOLLOW_recordEntry_in_simpleTerm8297	= { FOLLOW_recordEntry_in_simpleTerm8297_bits, 2	};
3379
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_simpleTerm8308  */
3380
static	ANTLR3_BITWORD FOLLOW_COMMA_in_simpleTerm8308_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3381
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_simpleTerm8308	= { FOLLOW_COMMA_in_simpleTerm8308_bits, 2	};
3382
/** Bitset defining follow set for error recovery in rule state: FOLLOW_recordEntry_in_simpleTerm8310  */
3383
static	ANTLR3_BITWORD FOLLOW_recordEntry_in_simpleTerm8310_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000001000000000) };
3384
static  ANTLR3_BITSET_LIST FOLLOW_recordEntry_in_simpleTerm8310	= { FOLLOW_recordEntry_in_simpleTerm8310_bits, 2	};
3385
/** Bitset defining follow set for error recovery in rule state: FOLLOW_HASHPAREN_in_simpleTerm8318  */
3386
static	ANTLR3_BITWORD FOLLOW_HASHPAREN_in_simpleTerm8318_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3387
static  ANTLR3_BITSET_LIST FOLLOW_HASHPAREN_in_simpleTerm8318	= { FOLLOW_HASHPAREN_in_simpleTerm8318_bits, 1	};
3388
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_simpleTerm8337  */
3389
static	ANTLR3_BITWORD FOLLOW_identifier_in_simpleTerm8337_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3390
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_simpleTerm8337	= { FOLLOW_identifier_in_simpleTerm8337_bits, 1	};
3391
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_typeAscription8371  */
3392
static	ANTLR3_BITWORD FOLLOW_COLON_in_typeAscription8371_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
3393
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_typeAscription8371	= { FOLLOW_COLON_in_typeAscription8371_bits, 1	};
3394
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_typeAscription8373  */
3395
static	ANTLR3_BITWORD FOLLOW_COLON_in_typeAscription8373_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
3396
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_typeAscription8373	= { FOLLOW_COLON_in_typeAscription8373_bits, 4	};
3397
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_typeAscription8375  */
3398
static	ANTLR3_BITWORD FOLLOW_type_in_typeAscription8375_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3399
static  ANTLR3_BITSET_LIST FOLLOW_type_in_typeAscription8375	= { FOLLOW_type_in_typeAscription8375_bits, 1	};
3400
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_recordEntry8392  */
3401
static	ANTLR3_BITWORD FOLLOW_identifier_in_recordEntry8392_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000001000) };
3402
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_recordEntry8392	= { FOLLOW_identifier_in_recordEntry8392_bits, 1	};
3403
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ASSIGN_TOK_in_recordEntry8395  */
3404
static	ANTLR3_BITWORD FOLLOW_ASSIGN_TOK_in_recordEntry8395_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3405
static  ANTLR3_BITSET_LIST FOLLOW_ASSIGN_TOK_in_recordEntry8395	= { FOLLOW_ASSIGN_TOK_in_recordEntry8395_bits, 4	};
3406
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_recordEntry8397  */
3407
static	ANTLR3_BITWORD FOLLOW_formula_in_recordEntry8397_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3408
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_recordEntry8397	= { FOLLOW_formula_in_recordEntry8397_bits, 1	};
3409
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IF_TOK_in_iteTerm8419  */
3410
static	ANTLR3_BITWORD FOLLOW_IF_TOK_in_iteTerm8419_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3411
static  ANTLR3_BITSET_LIST FOLLOW_IF_TOK_in_iteTerm8419	= { FOLLOW_IF_TOK_in_iteTerm8419_bits, 4	};
3412
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_iteTerm8421  */
3413
static	ANTLR3_BITWORD FOLLOW_formula_in_iteTerm8421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000004) };
3414
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_iteTerm8421	= { FOLLOW_formula_in_iteTerm8421_bits, 4	};
3415
/** Bitset defining follow set for error recovery in rule state: FOLLOW_THEN_TOK_in_iteTerm8430  */
3416
static	ANTLR3_BITWORD FOLLOW_THEN_TOK_in_iteTerm8430_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3417
static  ANTLR3_BITSET_LIST FOLLOW_THEN_TOK_in_iteTerm8430	= { FOLLOW_THEN_TOK_in_iteTerm8430_bits, 4	};
3418
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_iteTerm8432  */
3419
static	ANTLR3_BITWORD FOLLOW_formula_in_iteTerm8432_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000030000) };
3420
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_iteTerm8432	= { FOLLOW_formula_in_iteTerm8432_bits, 2	};
3421
/** Bitset defining follow set for error recovery in rule state: FOLLOW_iteElseTerm_in_iteTerm8441  */
3422
static	ANTLR3_BITWORD FOLLOW_iteElseTerm_in_iteTerm8441_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000040000) };
3423
static  ANTLR3_BITSET_LIST FOLLOW_iteElseTerm_in_iteTerm8441	= { FOLLOW_iteElseTerm_in_iteTerm8441_bits, 2	};
3424
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ENDIF_TOK_in_iteTerm8450  */
3425
static	ANTLR3_BITWORD FOLLOW_ENDIF_TOK_in_iteTerm8450_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3426
static  ANTLR3_BITSET_LIST FOLLOW_ENDIF_TOK_in_iteTerm8450	= { FOLLOW_ENDIF_TOK_in_iteTerm8450_bits, 1	};
3427
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ELSE_TOK_in_iteElseTerm8477  */
3428
static	ANTLR3_BITWORD FOLLOW_ELSE_TOK_in_iteElseTerm8477_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3429
static  ANTLR3_BITSET_LIST FOLLOW_ELSE_TOK_in_iteElseTerm8477	= { FOLLOW_ELSE_TOK_in_iteElseTerm8477_bits, 4	};
3430
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_iteElseTerm8479  */
3431
static	ANTLR3_BITWORD FOLLOW_formula_in_iteElseTerm8479_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3432
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_iteElseTerm8479	= { FOLLOW_formula_in_iteElseTerm8479_bits, 1	};
3433
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ELSEIF_TOK_in_iteElseTerm8486  */
3434
static	ANTLR3_BITWORD FOLLOW_ELSEIF_TOK_in_iteElseTerm8486_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3435
static  ANTLR3_BITSET_LIST FOLLOW_ELSEIF_TOK_in_iteElseTerm8486	= { FOLLOW_ELSEIF_TOK_in_iteElseTerm8486_bits, 4	};
3436
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_iteElseTerm8492  */
3437
static	ANTLR3_BITWORD FOLLOW_formula_in_iteElseTerm8492_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000000004) };
3438
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_iteElseTerm8492	= { FOLLOW_formula_in_iteElseTerm8492_bits, 4	};
3439
/** Bitset defining follow set for error recovery in rule state: FOLLOW_THEN_TOK_in_iteElseTerm8501  */
3440
static	ANTLR3_BITWORD FOLLOW_THEN_TOK_in_iteElseTerm8501_bits[]	= { ANTLR3_UINT64_LIT(0x4001FFFFFFF8C110), ANTLR3_UINT64_LIT(0x98C9170016400006), ANTLR3_UINT64_LIT(0x77FFE383FF800042), ANTLR3_UINT64_LIT(0x00000000000009D2) };
3441
static  ANTLR3_BITSET_LIST FOLLOW_THEN_TOK_in_iteElseTerm8501	= { FOLLOW_THEN_TOK_in_iteElseTerm8501_bits, 4	};
3442
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formula_in_iteElseTerm8507  */
3443
static	ANTLR3_BITWORD FOLLOW_formula_in_iteElseTerm8507_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000030000) };
3444
static  ANTLR3_BITSET_LIST FOLLOW_formula_in_iteElseTerm8507	= { FOLLOW_formula_in_iteElseTerm8507_bits, 2	};
3445
/** Bitset defining follow set for error recovery in rule state: FOLLOW_iteElseTerm_in_iteElseTerm8520  */
3446
static	ANTLR3_BITWORD FOLLOW_iteElseTerm_in_iteElseTerm8520_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3447
static  ANTLR3_BITSET_LIST FOLLOW_iteElseTerm_in_iteElseTerm8520	= { FOLLOW_iteElseTerm_in_iteElseTerm8520_bits, 1	};
3448
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatypeDef8556  */
3449
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatypeDef8556_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0100000000100000) };
3450
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatypeDef8556	= { FOLLOW_identifier_in_datatypeDef8556_bits, 2	};
3451
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACKET_in_datatypeDef8567  */
3452
static	ANTLR3_BITWORD FOLLOW_LBRACKET_in_datatypeDef8567_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3453
static  ANTLR3_BITSET_LIST FOLLOW_LBRACKET_in_datatypeDef8567	= { FOLLOW_LBRACKET_in_datatypeDef8567_bits, 2	};
3454
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatypeDef8569  */
3455
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatypeDef8569_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
3456
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatypeDef8569	= { FOLLOW_identifier_in_datatypeDef8569_bits, 3	};
3457
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_datatypeDef8582  */
3458
static	ANTLR3_BITWORD FOLLOW_COMMA_in_datatypeDef8582_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3459
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_datatypeDef8582	= { FOLLOW_COMMA_in_datatypeDef8582_bits, 2	};
3460
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_datatypeDef8584  */
3461
static	ANTLR3_BITWORD FOLLOW_identifier_in_datatypeDef8584_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
3462
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_datatypeDef8584	= { FOLLOW_identifier_in_datatypeDef8584_bits, 3	};
3463
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACKET_in_datatypeDef8598  */
3464
static	ANTLR3_BITWORD FOLLOW_RBRACKET_in_datatypeDef8598_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000000000100000) };
3465
static  ANTLR3_BITSET_LIST FOLLOW_RBRACKET_in_datatypeDef8598	= { FOLLOW_RBRACKET_in_datatypeDef8598_bits, 2	};
3466
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_datatypeDef8617  */
3467
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_datatypeDef8617_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3468
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_datatypeDef8617	= { FOLLOW_EQUAL_TOK_in_datatypeDef8617_bits, 2	};
3469
/** Bitset defining follow set for error recovery in rule state: FOLLOW_constructorDef_in_datatypeDef8619  */
3470
static	ANTLR3_BITWORD FOLLOW_constructorDef_in_datatypeDef8619_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000004002) };
3471
static  ANTLR3_BITSET_LIST FOLLOW_constructorDef_in_datatypeDef8619	= { FOLLOW_constructorDef_in_datatypeDef8619_bits, 1	};
3472
/** Bitset defining follow set for error recovery in rule state: FOLLOW_BAR_in_datatypeDef8628  */
3473
static	ANTLR3_BITWORD FOLLOW_BAR_in_datatypeDef8628_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3474
static  ANTLR3_BITSET_LIST FOLLOW_BAR_in_datatypeDef8628	= { FOLLOW_BAR_in_datatypeDef8628_bits, 2	};
3475
/** Bitset defining follow set for error recovery in rule state: FOLLOW_constructorDef_in_datatypeDef8630  */
3476
static	ANTLR3_BITWORD FOLLOW_constructorDef_in_datatypeDef8630_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000004002) };
3477
static  ANTLR3_BITSET_LIST FOLLOW_constructorDef_in_datatypeDef8630	= { FOLLOW_constructorDef_in_datatypeDef8630_bits, 1	};
3478
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_constructorDef8661  */
3479
static	ANTLR3_BITWORD FOLLOW_identifier_in_constructorDef8661_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002), ANTLR3_UINT64_LIT(0x1000000000000000) };
3480
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_constructorDef8661	= { FOLLOW_identifier_in_constructorDef8661_bits, 2	};
3481
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_in_constructorDef8676  */
3482
static	ANTLR3_BITWORD FOLLOW_LPAREN_in_constructorDef8676_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3483
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_in_constructorDef8676	= { FOLLOW_LPAREN_in_constructorDef8676_bits, 2	};
3484
/** Bitset defining follow set for error recovery in rule state: FOLLOW_selector_in_constructorDef8684  */
3485
static	ANTLR3_BITWORD FOLLOW_selector_in_constructorDef8684_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3486
static  ANTLR3_BITSET_LIST FOLLOW_selector_in_constructorDef8684	= { FOLLOW_selector_in_constructorDef8684_bits, 3	};
3487
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_in_constructorDef8695  */
3488
static	ANTLR3_BITWORD FOLLOW_COMMA_in_constructorDef8695_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000020000000000) };
3489
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_in_constructorDef8695	= { FOLLOW_COMMA_in_constructorDef8695_bits, 2	};
3490
/** Bitset defining follow set for error recovery in rule state: FOLLOW_selector_in_constructorDef8697  */
3491
static	ANTLR3_BITWORD FOLLOW_selector_in_constructorDef8697_bits[]	= { ANTLR3_UINT64_LIT(0x0020000000000000), ANTLR3_UINT64_LIT(0x0000000000000000), ANTLR3_UINT64_LIT(0x0000002000000000) };
3492
static  ANTLR3_BITSET_LIST FOLLOW_selector_in_constructorDef8697	= { FOLLOW_selector_in_constructorDef8697_bits, 3	};
3493
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_in_constructorDef8709  */
3494
static	ANTLR3_BITWORD FOLLOW_RPAREN_in_constructorDef8709_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3495
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_in_constructorDef8709	= { FOLLOW_RPAREN_in_constructorDef8709_bits, 1	};
3496
/** Bitset defining follow set for error recovery in rule state: FOLLOW_identifier_in_selector8741  */
3497
static	ANTLR3_BITWORD FOLLOW_identifier_in_selector8741_bits[]	= { ANTLR3_UINT64_LIT(0x0010000000000000) };
3498
static  ANTLR3_BITSET_LIST FOLLOW_identifier_in_selector8741	= { FOLLOW_identifier_in_selector8741_bits, 1	};
3499
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_in_selector8744  */
3500
static	ANTLR3_BITWORD FOLLOW_COLON_in_selector8744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000030100), ANTLR3_UINT64_LIT(0x1902020000000000), ANTLR3_UINT64_LIT(0x08000C0000200000), ANTLR3_UINT64_LIT(0x0000000000000001) };
3501
static  ANTLR3_BITSET_LIST FOLLOW_COLON_in_selector8744	= { FOLLOW_COLON_in_selector8744_bits, 4	};
3502
/** Bitset defining follow set for error recovery in rule state: FOLLOW_type_in_selector8746  */
3503
static	ANTLR3_BITWORD FOLLOW_type_in_selector8746_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3504
static  ANTLR3_BITSET_LIST FOLLOW_type_in_selector8746	= { FOLLOW_type_in_selector8746_bits, 1	};
3505
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INTEGER_LITERAL_in_numeral8821  */
3506
static	ANTLR3_BITWORD FOLLOW_INTEGER_LITERAL_in_numeral8821_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3507
static  ANTLR3_BITSET_LIST FOLLOW_INTEGER_LITERAL_in_numeral8821	= { FOLLOW_INTEGER_LITERAL_in_numeral8821_bits, 1	};
3508
/** Bitset defining follow set for error recovery in rule state: FOLLOW_STRING_LITERAL_in_str8843  */
3509
static	ANTLR3_BITWORD FOLLOW_STRING_LITERAL_in_str8843_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3510
static  ANTLR3_BITSET_LIST FOLLOW_STRING_LITERAL_in_str8843	= { FOLLOW_STRING_LITERAL_in_str8843_bits, 1	};
3511
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letDecl_in_synpred1_Cvc2104  */
3512
static	ANTLR3_BITWORD FOLLOW_letDecl_in_synpred1_Cvc2104_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
3513
static  ANTLR3_BITSET_LIST FOLLOW_letDecl_in_synpred1_Cvc2104	= { FOLLOW_letDecl_in_synpred1_Cvc2104_bits, 1	};
3514
3515
3516
/* ==============================================
3517
 * Parsing rules
3518
 */
3519
/**
3520
 * $ANTLR start parseExpr
3521
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:614:1: parseExpr returns [cvc5::api::Term expr = cvc5::api::Term()] : ( formula[expr] | EOF );
3522
 */
3523
static cvc5::api::Term
3524
60
parseExpr(pCvcParser ctx)
3525
{
3526
60
    cvc5::api::Term expr;
3527
3528
3529
    /* Initialize rule variables
3530
     */
3531
60
    expr =  cvc5::api::Term();
3532
3533
3534
    {
3535
        {
3536
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:615:3: ( formula[expr] | EOF )
3537
3538
            ANTLR3_UINT32 alt1;
3539
3540
60
            alt1=2;
3541
3542
60
            switch ( LA(1) )
3543
            {
3544
27
            case ABS_TOK:
3545
            case ARRAY_TOK:
3546
            case BAR:
3547
            case BINARY_LITERAL:
3548
            case BVASHR_TOK:
3549
            case BVCOMP_TOK:
3550
            case BVGE_TOK:
3551
            case BVGT_TOK:
3552
            case BVLE_TOK:
3553
            case BVLSHR_TOK:
3554
            case BVLT_TOK:
3555
            case BVMULT_TOK:
3556
            case BVNAND_TOK:
3557
            case BVNEG_TOK:
3558
            case BVNOR_TOK:
3559
            case BVPLUS_TOK:
3560
            case BVREPEAT_TOK:
3561
            case BVROTL_TOK:
3562
            case BVROTR_TOK:
3563
            case BVSDIV_TOK:
3564
            case BVSGE_TOK:
3565
            case BVSGT_TOK:
3566
            case BVSHL_TOK:
3567
            case BVSLE_TOK:
3568
            case BVSLT_TOK:
3569
            case BVSMOD_TOK:
3570
            case BVSREM_TOK:
3571
            case BVSUB_TOK:
3572
            case BVUDIV_TOK:
3573
            case BVUMINUS_TOK:
3574
            case BVUREM_TOK:
3575
            case BVXNOR_TOK:
3576
            case BVXOR_TOK:
3577
            case BVZEROEXTEND_TOK:
3578
            case DECIMAL_LITERAL:
3579
            case DISTINCT_TOK:
3580
            case DIVISIBLE_TOK:
3581
            case EXISTS_TOK:
3582
            case FALSE_TOK:
3583
            case FLOOR_TOK:
3584
            case FORALL_TOK:
3585
            case HEX_LITERAL:
3586
            case IDENTIFIER:
3587
            case IDEN_TOK:
3588
            case IF_TOK:
3589
            case INTEGER_LITERAL:
3590
            case IS_INTEGER_TOK:
3591
            case LAMBDA_TOK:
3592
            case LBRACE:
3593
            case LET_TOK:
3594
            case LPAREN:
3595
            case MINUS_TOK:
3596
            case NOT_TOK:
3597
            case PARENHASH:
3598
            case REGEXP_COMPLEMENT_TOK:
3599
            case REGEXP_CONCAT_TOK:
3600
            case REGEXP_EMPTY_TOK:
3601
            case REGEXP_INTER_TOK:
3602
            case REGEXP_LOOP_TOK:
3603
            case REGEXP_OPT_TOK:
3604
            case REGEXP_PLUS_TOK:
3605
            case REGEXP_RANGE_TOK:
3606
            case REGEXP_SIGMA_TOK:
3607
            case REGEXP_STAR_TOK:
3608
            case REGEXP_UNION_TOK:
3609
            case SEQ_UNIT_TOK:
3610
            case SETS_CARD_TOK:
3611
            case SETS_CHOOSE_TOK:
3612
            case STRING_CHARAT_TOK:
3613
            case STRING_CONCAT_TOK:
3614
            case STRING_CONTAINS_TOK:
3615
            case STRING_INDEXOF_TOK:
3616
            case STRING_ITOS_TOK:
3617
            case STRING_LENGTH_TOK:
3618
            case STRING_LITERAL:
3619
            case STRING_PREFIXOF_TOK:
3620
            case STRING_REPLACE_ALL_TOK:
3621
            case STRING_REPLACE_TOK:
3622
            case STRING_REV_TOK:
3623
            case STRING_STOI_TOK:
3624
            case STRING_SUBSTR_TOK:
3625
            case STRING_SUFFIXOF_TOK:
3626
            case STRING_TOLOWER_TOK:
3627
            case STRING_TOUPPER_TOK:
3628
            case STRING_TO_REGEXP_TOK:
3629
            case SX_TOK:
3630
            case TRANSCLOSURE_TOK:
3631
            case TRANSPOSE_TOK:
3632
            case TRUE_TOK:
3633
            case TUPLE_TOK:
3634
            case UNIVSET_TOK:
3635
            	{
3636
27
            		alt1=1;
3637
            	}
3638
27
                break;
3639
33
            case EOF:
3640
            	{
3641
33
            		alt1=2;
3642
            	}
3643
33
                break;
3644
3645
            default:
3646
                if (BACKTRACKING>0)
3647
                {
3648
                    FAILEDFLAG = ANTLR3_TRUE;
3649
                    return expr;
3650
                }
3651
3652
                CONSTRUCTEX();
3653
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3654
                EXCEPTION->message      = (void *)"";
3655
                EXCEPTION->decisionNum  = 1;
3656
                EXCEPTION->state        = 0;
3657
3658
3659
                goto ruleparseExprEx;
3660
3661
            }
3662
3663
60
            switch (alt1)
3664
            {
3665
27
        	case 1:
3666
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:615:5: formula[expr]
3667
        	    {
3668
27
        	        FOLLOWPUSH(FOLLOW_formula_in_parseExpr1906);
3669
27
        	        formula(ctx, expr);
3670
3671
27
        	        FOLLOWPOP();
3672
27
        	        if  (HASEXCEPTION())
3673
        	        {
3674
        	            goto ruleparseExprEx;
3675
        	        }
3676
27
        	        if (HASFAILED())
3677
        	        {
3678
        	            return expr;
3679
        	        }
3680
3681
3682
        	    }
3683
27
        	    break;
3684
33
        	case 2:
3685
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:616:5: EOF
3686
        	    {
3687
33
        	         MATCHT(EOF, &FOLLOW_EOF_in_parseExpr1913);
3688
33
        	        if  (HASEXCEPTION())
3689
        	        {
3690
        	            goto ruleparseExprEx;
3691
        	        }
3692
33
        	        if (HASFAILED())
3693
        	        {
3694
        	            return expr;
3695
        	        }
3696
3697
3698
        	    }
3699
33
        	    break;
3700
3701
            }
3702
        }
3703
    }
3704
3705
    // This is where rules clean up and exit
3706
    //
3707
60
    goto ruleparseExprEx; /* Prevent compiler warnings */
3708
60
    ruleparseExprEx: ;
3709
3710
60
            if (HASEXCEPTION())
3711
            {
3712
                PREPORTERROR();
3713
                PRECOVER();
3714
            }
3715
60
    return expr;
3716
}
3717
/* $ANTLR end parseExpr */
3718
3719
/**
3720
 * $ANTLR start parseCommand
3721
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:623:1: parseCommand returns [cvc5::Command* cmd_return = NULL] : (c= command[&cmd] | LPAREN IDENTIFIER | EOF );
3722
 */
3723
static cvc5::Command*
3724
16590
parseCommand(pCvcParser ctx)
3725
{
3726
    cvc5::Command* cmd_return;
3727
3728
3729
3730
33180
        std::unique_ptr<cvc5::Command> cmd;
3731
3732
    pANTLR3_COMMON_TOKEN    IDENTIFIER1;
3733
3734
    /* Initialize rule variables
3735
     */
3736
16590
    cmd_return =  NULL;
3737
3738
3739
16590
    IDENTIFIER1       = NULL;
3740
3741
    {
3742
        {
3743
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:630:3: (c= command[&cmd] | LPAREN IDENTIFIER | EOF )
3744
3745
            ANTLR3_UINT32 alt2;
3746
3747
16590
            alt2=3;
3748
3749
16590
            switch ( LA(1) )
3750
            {
3751
15731
            case ARITH_VAR_ORDER_TOK:
3752
            case ASSERTIONS_TOK:
3753
            case ASSERT_TOK:
3754
            case ASSUMPTIONS_TOK:
3755
            case CALL_TOK:
3756
            case CHECKSAT_TOK:
3757
            case CHECK_TYPE_TOK:
3758
            case CONTEXT_TOK:
3759
            case CONTINUE_TOK:
3760
            case COUNTEREXAMPLE_TOK:
3761
            case COUNTERMODEL_TOK:
3762
            case DATATYPE_TOK:
3763
            case DBG_TOK:
3764
            case DUMP_ASSUMPTIONS_TOK:
3765
            case DUMP_CLOSURE_PROOF_TOK:
3766
            case DUMP_CLOSURE_TOK:
3767
            case DUMP_PROOF_TOK:
3768
            case DUMP_SIG_TOK:
3769
            case DUMP_TCC_ASSUMPTIONS_TOK:
3770
            case DUMP_TCC_PROOF_TOK:
3771
            case DUMP_TCC_TOK:
3772
            case DUMP_UNSAT_CORE_TOK:
3773
            case ECHO_TOK:
3774
            case EXIT_TOK:
3775
            case FORGET_TOK:
3776
            case GET_CHILD_TOK:
3777
            case GET_OP_TOK:
3778
            case GET_TYPE_TOK:
3779
            case GET_VALUE_TOK:
3780
            case HELP_TOK:
3781
            case IDENTIFIER:
3782
            case INCLUDE_TOK:
3783
            case LET_TOK:
3784
            case OPTION_TOK:
3785
            case POPTO_SCOPE_TOK:
3786
            case POPTO_TOK:
3787
            case POP_SCOPE_TOK:
3788
            case POP_TOK:
3789
            case PRINT_TOK:
3790
            case PRINT_TYPE_TOK:
3791
            case PUSH_SCOPE_TOK:
3792
            case PUSH_TOK:
3793
            case QUERY_TOK:
3794
            case RECURSIVE_FUNCTION_TOK:
3795
            case RESET_TOK:
3796
            case RESTART_TOK:
3797
            case SEMICOLON:
3798
            case SUBSTITUTE_TOK:
3799
            case TRACE_TOK:
3800
            case TRANSFORM_TOK:
3801
            case UNTRACE_TOK:
3802
            case WHERE_TOK:
3803
            	{
3804
15731
            		alt2=1;
3805
            	}
3806
15731
                break;
3807
2
            case LPAREN:
3808
            	{
3809
2
            		alt2=2;
3810
            	}
3811
2
                break;
3812
853
            case EOF:
3813
            	{
3814
853
            		alt2=3;
3815
            	}
3816
853
                break;
3817
3818
4
            default:
3819
4
                if (BACKTRACKING>0)
3820
                {
3821
                    FAILEDFLAG = ANTLR3_TRUE;
3822
                    return cmd_return;
3823
                }
3824
3825
4
                CONSTRUCTEX();
3826
4
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3827
4
                EXCEPTION->message      = (void *)"";
3828
4
                EXCEPTION->decisionNum  = 2;
3829
4
                EXCEPTION->state        = 0;
3830
3831
3832
4
                goto ruleparseCommandEx;
3833
3834
            }
3835
3836
16586
            switch (alt2)
3837
            {
3838
15731
        	case 1:
3839
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:630:5: c= command[&cmd]
3840
        	    {
3841
15731
        	        FOLLOWPUSH(FOLLOW_command_in_parseCommand1944);
3842
15731
        	        command(ctx, &cmd);
3843
3844
15691
        	        FOLLOWPOP();
3845
15691
        	        if  (HASEXCEPTION())
3846
        	        {
3847
        	            goto ruleparseCommandEx;
3848
        	        }
3849
15691
        	        if (HASFAILED())
3850
        	        {
3851
        	            return cmd_return;
3852
        	        }
3853
3854
3855
        	    }
3856
15691
        	    break;
3857
2
        	case 2:
3858
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:631:5: LPAREN IDENTIFIER
3859
        	    {
3860
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_parseCommand1951);
3861
2
        	        if  (HASEXCEPTION())
3862
        	        {
3863
        	            goto ruleparseCommandEx;
3864
        	        }
3865
2
        	        if (HASFAILED())
3866
        	        {
3867
        	            return cmd_return;
3868
        	        }
3869
3870
3871
2
        	        IDENTIFIER1 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_parseCommand1953);
3872
2
        	        if  (HASEXCEPTION())
3873
        	        {
3874
2
        	            goto ruleparseCommandEx;
3875
        	        }
3876
        	        if (HASFAILED())
3877
        	        {
3878
        	            return cmd_return;
3879
        	        }
3880
3881
3882
        	        if ( BACKTRACKING==0 )
3883
        	        {
3884
        	             std::string s = AntlrInput::tokenText(IDENTIFIER1);
3885
        	                if(s == "benchmark") {
3886
        	                    PARSER_STATE->parseError(
3887
        	                        "In cvc5 presentation language mode, but SMT-LIBv1 format "
3888
        	                        "detected, which is not supported anymore.");
3889
        	                  } else if(s == "set" || s == "get" || s == "declare" ||
3890
        	                            s == "define" || s == "assert") {
3891
        	                    PARSER_STATE->parseError(
3892
        	                        "In cvc5 presentation language mode, but SMT-LIB format detected. "
3893
        	                        "Use --lang smt for SMT-LIB support.");
3894
        	                  } else {
3895
        	                    PARSER_STATE->parseError(
3896
        	                        "A cvc5 presentation language command cannot begin with a "
3897
        	                        "parenthesis; expected command name.");
3898
        	                  }
3899
3900
        	        }
3901
3902
3903
        	    }
3904
        	    break;
3905
853
        	case 3:
3906
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:648:5: EOF
3907
        	    {
3908
853
        	         MATCHT(EOF, &FOLLOW_EOF_in_parseCommand1965);
3909
853
        	        if  (HASEXCEPTION())
3910
        	        {
3911
        	            goto ruleparseCommandEx;
3912
        	        }
3913
853
        	        if (HASFAILED())
3914
        	        {
3915
        	            return cmd_return;
3916
        	        }
3917
3918
3919
        	    }
3920
853
        	    break;
3921
3922
            }
3923
        }
3924
    }
3925
3926
    // This is where rules clean up and exit
3927
    //
3928
16544
    goto ruleparseCommandEx; /* Prevent compiler warnings */
3929
16550
    ruleparseCommandEx: ;
3930
3931
16550
            if (HASEXCEPTION())
3932
            {
3933
6
                PREPORTERROR();
3934
                PRECOVER();
3935
            }
3936
            else
3937
            {
3938
                {
3939
3940
16544
                        cmd_return = cmd.release();
3941
3942
                }
3943
            }
3944
3945
3946
16544
    return cmd_return;
3947
}
3948
/* $ANTLR end parseCommand */
3949
3950
/**
3951
 * $ANTLR start command
3952
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:655:1: command[std::unique_ptr<cvc5::Command>* cmd] : ( ( mainCommand[cmd] SEMICOLON | SEMICOLON | LET_TOK typeOrVarLetDecl[CHECK_DECLARED] ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )* IN_TOK command[cmd] ) | IDENTIFIER SEMICOLON );
3953
 */
3954
static void
3955
15731
command(pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd)
3956
{
3957
    pANTLR3_COMMON_TOKEN    IDENTIFIER2;
3958
3959
    /* Initialize rule variables
3960
     */
3961
3962
15731
    IDENTIFIER2       = NULL;
3963
3964
    {
3965
        {
3966
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:656:3: ( ( mainCommand[cmd] SEMICOLON | SEMICOLON | LET_TOK typeOrVarLetDecl[CHECK_DECLARED] ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )* IN_TOK command[cmd] ) | IDENTIFIER SEMICOLON )
3967
3968
            ANTLR3_UINT32 alt5;
3969
3970
15731
            alt5=2;
3971
3972
15731
            switch ( LA(1) )
3973
            {
3974
10423
            case ARITH_VAR_ORDER_TOK:
3975
            case ASSERTIONS_TOK:
3976
            case ASSERT_TOK:
3977
            case ASSUMPTIONS_TOK:
3978
            case CALL_TOK:
3979
            case CHECKSAT_TOK:
3980
            case CHECK_TYPE_TOK:
3981
            case CONTEXT_TOK:
3982
            case CONTINUE_TOK:
3983
            case COUNTEREXAMPLE_TOK:
3984
            case COUNTERMODEL_TOK:
3985
            case DATATYPE_TOK:
3986
            case DBG_TOK:
3987
            case DUMP_ASSUMPTIONS_TOK:
3988
            case DUMP_CLOSURE_PROOF_TOK:
3989
            case DUMP_CLOSURE_TOK:
3990
            case DUMP_PROOF_TOK:
3991
            case DUMP_SIG_TOK:
3992
            case DUMP_TCC_ASSUMPTIONS_TOK:
3993
            case DUMP_TCC_PROOF_TOK:
3994
            case DUMP_TCC_TOK:
3995
            case DUMP_UNSAT_CORE_TOK:
3996
            case ECHO_TOK:
3997
            case EXIT_TOK:
3998
            case FORGET_TOK:
3999
            case GET_CHILD_TOK:
4000
            case GET_OP_TOK:
4001
            case GET_TYPE_TOK:
4002
            case GET_VALUE_TOK:
4003
            case HELP_TOK:
4004
            case INCLUDE_TOK:
4005
            case LET_TOK:
4006
            case OPTION_TOK:
4007
            case POPTO_SCOPE_TOK:
4008
            case POPTO_TOK:
4009
            case POP_SCOPE_TOK:
4010
            case POP_TOK:
4011
            case PRINT_TOK:
4012
            case PRINT_TYPE_TOK:
4013
            case PUSH_SCOPE_TOK:
4014
            case PUSH_TOK:
4015
            case QUERY_TOK:
4016
            case RECURSIVE_FUNCTION_TOK:
4017
            case RESET_TOK:
4018
            case RESTART_TOK:
4019
            case SEMICOLON:
4020
            case SUBSTITUTE_TOK:
4021
            case TRACE_TOK:
4022
            case TRANSFORM_TOK:
4023
            case UNTRACE_TOK:
4024
            case WHERE_TOK:
4025
            	{
4026
10423
            		alt5=1;
4027
            	}
4028
10423
                break;
4029
5308
            case IDENTIFIER:
4030
            	{
4031
5308
            		switch ( LA(2) )
4032
            		{
4033
            		case SEMICOLON:
4034
            			{
4035
            				alt5=2;
4036
            			}
4037
            		    break;
4038
5300
            		case COLON:
4039
            		case COMMA:
4040
            			{
4041
5300
            				alt5=1;
4042
            			}
4043
5300
            		    break;
4044
4045
8
            		default:
4046
8
            		    if (BACKTRACKING>0)
4047
            		    {
4048
            		        FAILEDFLAG = ANTLR3_TRUE;
4049
            		        return ;
4050
            		    }
4051
4052
8
            		    CONSTRUCTEX();
4053
8
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4054
8
            		    EXCEPTION->message      = (void *)"";
4055
8
            		    EXCEPTION->decisionNum  = 5;
4056
8
            		    EXCEPTION->state        = 42;
4057
4058
4059
8
            		    goto rulecommandEx;
4060
4061
            		}
4062
4063
            	}
4064
5300
                break;
4065
4066
            default:
4067
                if (BACKTRACKING>0)
4068
                {
4069
                    FAILEDFLAG = ANTLR3_TRUE;
4070
                    return ;
4071
                }
4072
4073
                CONSTRUCTEX();
4074
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4075
                EXCEPTION->message      = (void *)"";
4076
                EXCEPTION->decisionNum  = 5;
4077
                EXCEPTION->state        = 0;
4078
4079
4080
                goto rulecommandEx;
4081
4082
            }
4083
4084
15723
            switch (alt5)
4085
            {
4086
15723
        	case 1:
4087
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:656:5: ( mainCommand[cmd] SEMICOLON | SEMICOLON | LET_TOK typeOrVarLetDecl[CHECK_DECLARED] ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )* IN_TOK command[cmd] )
4088
        	    {
4089
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:656:5: ( mainCommand[cmd] SEMICOLON | SEMICOLON | LET_TOK typeOrVarLetDecl[CHECK_DECLARED] ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )* IN_TOK command[cmd] )
4090
        	        {
4091
15723
        	            int alt4=3;
4092
15723
        	            switch ( LA(1) )
4093
        	            {
4094
15721
        	            case ARITH_VAR_ORDER_TOK:
4095
        	            case ASSERTIONS_TOK:
4096
        	            case ASSERT_TOK:
4097
        	            case ASSUMPTIONS_TOK:
4098
        	            case CALL_TOK:
4099
        	            case CHECKSAT_TOK:
4100
        	            case CHECK_TYPE_TOK:
4101
        	            case CONTEXT_TOK:
4102
        	            case CONTINUE_TOK:
4103
        	            case COUNTEREXAMPLE_TOK:
4104
        	            case COUNTERMODEL_TOK:
4105
        	            case DATATYPE_TOK:
4106
        	            case DBG_TOK:
4107
        	            case DUMP_ASSUMPTIONS_TOK:
4108
        	            case DUMP_CLOSURE_PROOF_TOK:
4109
        	            case DUMP_CLOSURE_TOK:
4110
        	            case DUMP_PROOF_TOK:
4111
        	            case DUMP_SIG_TOK:
4112
        	            case DUMP_TCC_ASSUMPTIONS_TOK:
4113
        	            case DUMP_TCC_PROOF_TOK:
4114
        	            case DUMP_TCC_TOK:
4115
        	            case DUMP_UNSAT_CORE_TOK:
4116
        	            case ECHO_TOK:
4117
        	            case EXIT_TOK:
4118
        	            case FORGET_TOK:
4119
        	            case GET_CHILD_TOK:
4120
        	            case GET_OP_TOK:
4121
        	            case GET_TYPE_TOK:
4122
        	            case GET_VALUE_TOK:
4123
        	            case HELP_TOK:
4124
        	            case IDENTIFIER:
4125
        	            case INCLUDE_TOK:
4126
        	            case OPTION_TOK:
4127
        	            case POPTO_SCOPE_TOK:
4128
        	            case POPTO_TOK:
4129
        	            case POP_SCOPE_TOK:
4130
        	            case POP_TOK:
4131
        	            case PRINT_TOK:
4132
        	            case PRINT_TYPE_TOK:
4133
        	            case PUSH_SCOPE_TOK:
4134
        	            case PUSH_TOK:
4135
        	            case QUERY_TOK:
4136
        	            case RECURSIVE_FUNCTION_TOK:
4137
        	            case RESET_TOK:
4138
        	            case RESTART_TOK:
4139
        	            case SUBSTITUTE_TOK:
4140
        	            case TRACE_TOK:
4141
        	            case TRANSFORM_TOK:
4142
        	            case UNTRACE_TOK:
4143
        	            case WHERE_TOK:
4144
        	            	{
4145
15721
        	            		alt4=1;
4146
        	            	}
4147
15721
        	                break;
4148
2
        	            case SEMICOLON:
4149
        	            	{
4150
2
        	            		alt4=2;
4151
        	            	}
4152
2
        	                break;
4153
        	            case LET_TOK:
4154
        	            	{
4155
        	            		alt4=3;
4156
        	            	}
4157
        	                break;
4158
4159
        	            default:
4160
        	                if (BACKTRACKING>0)
4161
        	                {
4162
        	                    FAILEDFLAG = ANTLR3_TRUE;
4163
        	                    return ;
4164
        	                }
4165
4166
        	                CONSTRUCTEX();
4167
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4168
        	                EXCEPTION->message      = (void *)"";
4169
        	                EXCEPTION->decisionNum  = 4;
4170
        	                EXCEPTION->state        = 0;
4171
4172
4173
        	                goto rulecommandEx;
4174
4175
        	            }
4176
4177
15723
        	            switch (alt4)
4178
        	            {
4179
15721
        	        	case 1:
4180
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:656:7: mainCommand[cmd] SEMICOLON
4181
        	        	    {
4182
15721
        	        	        FOLLOWPUSH(FOLLOW_mainCommand_in_command1984);
4183
15721
        	        	        mainCommand(ctx, cmd);
4184
4185
15695
        	        	        FOLLOWPOP();
4186
15695
        	        	        if  (HASEXCEPTION())
4187
        	        	        {
4188
        	        	            goto rulecommandEx;
4189
        	        	        }
4190
15695
        	        	        if (HASFAILED())
4191
        	        	        {
4192
        	        	            return ;
4193
        	        	        }
4194
4195
4196
15695
        	        	         MATCHT(SEMICOLON, &FOLLOW_SEMICOLON_in_command1987);
4197
15695
        	        	        if  (HASEXCEPTION())
4198
        	        	        {
4199
6
        	        	            goto rulecommandEx;
4200
        	        	        }
4201
15689
        	        	        if (HASFAILED())
4202
        	        	        {
4203
        	        	            return ;
4204
        	        	        }
4205
4206
4207
        	        	    }
4208
15689
        	        	    break;
4209
2
        	        	case 2:
4210
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:657:7: SEMICOLON
4211
        	        	    {
4212
2
        	        	         MATCHT(SEMICOLON, &FOLLOW_SEMICOLON_in_command1995);
4213
2
        	        	        if  (HASEXCEPTION())
4214
        	        	        {
4215
        	        	            goto rulecommandEx;
4216
        	        	        }
4217
2
        	        	        if (HASFAILED())
4218
        	        	        {
4219
        	        	            return ;
4220
        	        	        }
4221
4222
4223
        	        	    }
4224
2
        	        	    break;
4225
        	        	case 3:
4226
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:658:7: LET_TOK typeOrVarLetDecl[CHECK_DECLARED] ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )* IN_TOK command[cmd]
4227
        	        	    {
4228
        	        	         MATCHT(LET_TOK, &FOLLOW_LET_TOK_in_command2003);
4229
        	        	        if  (HASEXCEPTION())
4230
        	        	        {
4231
        	        	            goto rulecommandEx;
4232
        	        	        }
4233
        	        	        if (HASFAILED())
4234
        	        	        {
4235
        	        	            return ;
4236
        	        	        }
4237
4238
4239
        	        	        if ( BACKTRACKING==0 )
4240
        	        	        {
4241
        	        	             PARSER_STATE->pushScope();
4242
        	        	        }
4243
4244
4245
        	        	        FOLLOWPUSH(FOLLOW_typeOrVarLetDecl_in_command2013);
4246
        	        	        typeOrVarLetDecl(ctx, CHECK_DECLARED);
4247
4248
        	        	        FOLLOWPOP();
4249
        	        	        if  (HASEXCEPTION())
4250
        	        	        {
4251
        	        	            goto rulecommandEx;
4252
        	        	        }
4253
        	        	        if (HASFAILED())
4254
        	        	        {
4255
        	        	            return ;
4256
        	        	        }
4257
4258
4259
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:659:40: ( COMMA typeOrVarLetDecl[CHECK_DECLARED] )*
4260
4261
        	        	        for (;;)
4262
        	        	        {
4263
        	        	            int alt3=2;
4264
        	        	            switch ( LA(1) )
4265
        	        	            {
4266
        	        	            case COMMA:
4267
        	        	            	{
4268
        	        	            		alt3=1;
4269
        	        	            	}
4270
        	        	                break;
4271
4272
        	        	            }
4273
4274
        	        	            switch (alt3)
4275
        	        	            {
4276
        	        	        	case 1:
4277
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:660:11: COMMA typeOrVarLetDecl[CHECK_DECLARED]
4278
        	        	        	    {
4279
        	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_command2028);
4280
        	        	        	        if  (HASEXCEPTION())
4281
        	        	        	        {
4282
        	        	        	            goto rulecommandEx;
4283
        	        	        	        }
4284
        	        	        	        if (HASFAILED())
4285
        	        	        	        {
4286
        	        	        	            return ;
4287
        	        	        	        }
4288
4289
4290
        	        	        	        FOLLOWPUSH(FOLLOW_typeOrVarLetDecl_in_command2030);
4291
        	        	        	        typeOrVarLetDecl(ctx, CHECK_DECLARED);
4292
4293
        	        	        	        FOLLOWPOP();
4294
        	        	        	        if  (HASEXCEPTION())
4295
        	        	        	        {
4296
        	        	        	            goto rulecommandEx;
4297
        	        	        	        }
4298
        	        	        	        if (HASFAILED())
4299
        	        	        	        {
4300
        	        	        	            return ;
4301
        	        	        	        }
4302
4303
4304
        	        	        	    }
4305
        	        	        	    break;
4306
4307
        	        	        	default:
4308
        	        	        	    goto loop3;	/* break out of the loop */
4309
        	        	        	    break;
4310
        	        	            }
4311
        	        	        }
4312
        	        	        loop3: ; /* Jump out to here if this rule does not match */
4313
4314
4315
        	        	         MATCHT(IN_TOK, &FOLLOW_IN_TOK_in_command2042);
4316
        	        	        if  (HASEXCEPTION())
4317
        	        	        {
4318
        	        	            goto rulecommandEx;
4319
        	        	        }
4320
        	        	        if (HASFAILED())
4321
        	        	        {
4322
        	        	            return ;
4323
        	        	        }
4324
4325
4326
        	        	        FOLLOWPUSH(FOLLOW_command_in_command2044);
4327
        	        	        command(ctx, cmd);
4328
4329
        	        	        FOLLOWPOP();
4330
        	        	        if  (HASEXCEPTION())
4331
        	        	        {
4332
        	        	            goto rulecommandEx;
4333
        	        	        }
4334
        	        	        if (HASFAILED())
4335
        	        	        {
4336
        	        	            return ;
4337
        	        	        }
4338
4339
4340
        	        	        if ( BACKTRACKING==0 )
4341
        	        	        {
4342
        	        	             PARSER_STATE->popScope();
4343
        	        	        }
4344
4345
4346
        	        	    }
4347
        	        	    break;
4348
4349
        	            }
4350
        	        }
4351
4352
15691
        	        if ( BACKTRACKING==0 )
4353
        	        {
4354
15691
        	             if(!(*cmd)) {
4355
361
        	                    cmd->reset(new EmptyCommand());
4356
        	                  }
4357
4358
        	        }
4359
4360
4361
        	    }
4362
15691
        	    break;
4363
        	case 2:
4364
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:668:5: IDENTIFIER SEMICOLON
4365
        	    {
4366
        	        IDENTIFIER2 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_command2071);
4367
        	        if  (HASEXCEPTION())
4368
        	        {
4369
        	            goto rulecommandEx;
4370
        	        }
4371
        	        if (HASFAILED())
4372
        	        {
4373
        	            return ;
4374
        	        }
4375
4376
4377
        	         MATCHT(SEMICOLON, &FOLLOW_SEMICOLON_in_command2073);
4378
        	        if  (HASEXCEPTION())
4379
        	        {
4380
        	            goto rulecommandEx;
4381
        	        }
4382
        	        if (HASFAILED())
4383
        	        {
4384
        	            return ;
4385
        	        }
4386
4387
4388
        	        if ( BACKTRACKING==0 )
4389
        	        {
4390
        	             std::stringstream ss;
4391
        	                  ss << "Unrecognized command `"
4392
        	                     << AntlrInput::tokenText(IDENTIFIER2)
4393
        	                     << "'";
4394
        	                  PARSER_STATE->parseError(ss.str());
4395
4396
        	        }
4397
4398
4399
        	    }
4400
        	    break;
4401
4402
            }
4403
        }
4404
    }
4405
4406
    // This is where rules clean up and exit
4407
    //
4408
15691
    goto rulecommandEx; /* Prevent compiler warnings */
4409
15705
    rulecommandEx: ;
4410
4411
15705
            if (HASEXCEPTION())
4412
            {
4413
14
                PREPORTERROR();
4414
                PRECOVER();
4415
            }
4416
15691
    return ;
4417
}
4418
/* $ANTLR end command */
4419
4420
/**
4421
 * $ANTLR start typeOrVarLetDecl
4422
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:677:1: typeOrVarLetDecl[cvc5::parser::DeclarationCheck check] options {backtrack=true; } : ( letDecl | typeLetDecl[check] );
4423
 */
4424
static void
4425
typeOrVarLetDecl(pCvcParser ctx, cvc5::parser::DeclarationCheck check)
4426
{
4427
    /* Initialize rule variables
4428
     */
4429
4430
    {
4431
        {
4432
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:679:3: ( letDecl | typeLetDecl[check] )
4433
4434
            ANTLR3_UINT32 alt6;
4435
4436
            alt6=2;
4437
4438
            switch ( LA(1) )
4439
            {
4440
            case IDENTIFIER:
4441
            	{
4442
            		switch ( LA(2) )
4443
            		{
4444
            		case EQUAL_TOK:
4445
            			{
4446
            				switch ( LA(3) )
4447
            				{
4448
            				case ABS_TOK:
4449
            				case BAR:
4450
            				case BINARY_LITERAL:
4451
            				case BVASHR_TOK:
4452
            				case BVCOMP_TOK:
4453
            				case BVGE_TOK:
4454
            				case BVGT_TOK:
4455
            				case BVLE_TOK:
4456
            				case BVLSHR_TOK:
4457
            				case BVLT_TOK:
4458
            				case BVMULT_TOK:
4459
            				case BVNAND_TOK:
4460
            				case BVNEG_TOK:
4461
            				case BVNOR_TOK:
4462
            				case BVPLUS_TOK:
4463
            				case BVREPEAT_TOK:
4464
            				case BVROTL_TOK:
4465
            				case BVROTR_TOK:
4466
            				case BVSDIV_TOK:
4467
            				case BVSGE_TOK:
4468
            				case BVSGT_TOK:
4469
            				case BVSHL_TOK:
4470
            				case BVSLE_TOK:
4471
            				case BVSLT_TOK:
4472
            				case BVSMOD_TOK:
4473
            				case BVSREM_TOK:
4474
            				case BVSUB_TOK:
4475
            				case BVUDIV_TOK:
4476
            				case BVUMINUS_TOK:
4477
            				case BVUREM_TOK:
4478
            				case BVXNOR_TOK:
4479
            				case BVXOR_TOK:
4480
            				case BVZEROEXTEND_TOK:
4481
            				case DECIMAL_LITERAL:
4482
            				case DISTINCT_TOK:
4483
            				case DIVISIBLE_TOK:
4484
            				case EXISTS_TOK:
4485
            				case FALSE_TOK:
4486
            				case FLOOR_TOK:
4487
            				case FORALL_TOK:
4488
            				case HEX_LITERAL:
4489
            				case IDEN_TOK:
4490
            				case IF_TOK:
4491
            				case INTEGER_LITERAL:
4492
            				case IS_INTEGER_TOK:
4493
            				case LAMBDA_TOK:
4494
            				case LBRACE:
4495
            				case LET_TOK:
4496
            				case MINUS_TOK:
4497
            				case NOT_TOK:
4498
            				case PARENHASH:
4499
            				case REGEXP_COMPLEMENT_TOK:
4500
            				case REGEXP_CONCAT_TOK:
4501
            				case REGEXP_EMPTY_TOK:
4502
            				case REGEXP_INTER_TOK:
4503
            				case REGEXP_LOOP_TOK:
4504
            				case REGEXP_OPT_TOK:
4505
            				case REGEXP_PLUS_TOK:
4506
            				case REGEXP_RANGE_TOK:
4507
            				case REGEXP_SIGMA_TOK:
4508
            				case REGEXP_STAR_TOK:
4509
            				case REGEXP_UNION_TOK:
4510
            				case SEQ_UNIT_TOK:
4511
            				case SETS_CARD_TOK:
4512
            				case SETS_CHOOSE_TOK:
4513
            				case STRING_CHARAT_TOK:
4514
            				case STRING_CONCAT_TOK:
4515
            				case STRING_CONTAINS_TOK:
4516
            				case STRING_INDEXOF_TOK:
4517
            				case STRING_ITOS_TOK:
4518
            				case STRING_LENGTH_TOK:
4519
            				case STRING_LITERAL:
4520
            				case STRING_PREFIXOF_TOK:
4521
            				case STRING_REPLACE_ALL_TOK:
4522
            				case STRING_REPLACE_TOK:
4523
            				case STRING_REV_TOK:
4524
            				case STRING_STOI_TOK:
4525
            				case STRING_SUBSTR_TOK:
4526
            				case STRING_SUFFIXOF_TOK:
4527
            				case STRING_TOLOWER_TOK:
4528
            				case STRING_TOUPPER_TOK:
4529
            				case STRING_TO_REGEXP_TOK:
4530
            				case SX_TOK:
4531
            				case TRANSCLOSURE_TOK:
4532
            				case TRANSPOSE_TOK:
4533
            				case TRUE_TOK:
4534
            				case TUPLE_TOK:
4535
            				case UNIVSET_TOK:
4536
            					{
4537
            						alt6=1;
4538
            					}
4539
            				    break;
4540
            				case LPAREN:
4541
            					{
4542
            						{
4543
            						    int LA6_77 = LA(4);
4544
            						    if ( (synpred1_Cvc(ctx)))
4545
            						    {
4546
            						        alt6=1;
4547
            						    }
4548
            						    else if ( (ANTLR3_TRUE))
4549
            						    {
4550
            						        alt6=2;
4551
            						    }
4552
            						    else
4553
            						    {
4554
            						        if (BACKTRACKING>0)
4555
            						        {
4556
            						            FAILEDFLAG = ANTLR3_TRUE;
4557
            						            return ;
4558
            						        }
4559
4560
4561
            						        CONSTRUCTEX();
4562
            						        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4563
            						        EXCEPTION->message      = (void *)"";
4564
            						        EXCEPTION->decisionNum  = 6;
4565
            						        EXCEPTION->state        = 77;
4566
4567
4568
            						        goto ruletypeOrVarLetDeclEx;
4569
4570
            						    }
4571
            						}
4572
            					}
4573
            				    break;
4574
            				case ARRAY_TOK:
4575
            					{
4576
            						{
4577
            						    int LA6_82 = LA(4);
4578
            						    if ( (synpred1_Cvc(ctx)))
4579
            						    {
4580
            						        alt6=1;
4581
            						    }
4582
            						    else if ( (ANTLR3_TRUE))
4583
            						    {
4584
            						        alt6=2;
4585
            						    }
4586
            						    else
4587
            						    {
4588
            						        if (BACKTRACKING>0)
4589
            						        {
4590
            						            FAILEDFLAG = ANTLR3_TRUE;
4591
            						            return ;
4592
            						        }
4593
4594
4595
            						        CONSTRUCTEX();
4596
            						        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4597
            						        EXCEPTION->message      = (void *)"";
4598
            						        EXCEPTION->decisionNum  = 6;
4599
            						        EXCEPTION->state        = 82;
4600
4601
4602
            						        goto ruletypeOrVarLetDeclEx;
4603
4604
            						    }
4605
            						}
4606
            					}
4607
            				    break;
4608
            				case IDENTIFIER:
4609
            					{
4610
            						{
4611
            						    int LA6_89 = LA(4);
4612
            						    if ( (synpred1_Cvc(ctx)))
4613
            						    {
4614
            						        alt6=1;
4615
            						    }
4616
            						    else if ( (ANTLR3_TRUE))
4617
            						    {
4618
            						        alt6=2;
4619
            						    }
4620
            						    else
4621
            						    {
4622
            						        if (BACKTRACKING>0)
4623
            						        {
4624
            						            FAILEDFLAG = ANTLR3_TRUE;
4625
            						            return ;
4626
            						        }
4627
4628
4629
            						        CONSTRUCTEX();
4630
            						        EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4631
            						        EXCEPTION->message      = (void *)"";
4632
            						        EXCEPTION->decisionNum  = 6;
4633
            						        EXCEPTION->state        = 89;
4634
4635
4636
            						        goto ruletypeOrVarLetDeclEx;
4637
4638
            						    }
4639
            						}
4640
            					}
4641
            				    break;
4642
            				case BITVECTOR_TOK:
4643
            				case BOOLEAN_TOK:
4644
            				case INT_TOK:
4645
            				case LBRACKET:
4646
            				case REAL_TOK:
4647
            				case SET_TOK:
4648
            				case SQHASH:
4649
            				case STRING_TOK:
4650
            				case SUBTYPE_TOK:
4651
            					{
4652
            						alt6=2;
4653
            					}
4654
            				    break;
4655
4656
            				default:
4657
            				    if (BACKTRACKING>0)
4658
            				    {
4659
            				        FAILEDFLAG = ANTLR3_TRUE;
4660
            				        return ;
4661
            				    }
4662
4663
            				    CONSTRUCTEX();
4664
            				    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4665
            				    EXCEPTION->message      = (void *)"";
4666
            				    EXCEPTION->decisionNum  = 6;
4667
            				    EXCEPTION->state        = 2;
4668
4669
4670
            				    goto ruletypeOrVarLetDeclEx;
4671
4672
            				}
4673
4674
            			}
4675
            		    break;
4676
            		case COLON:
4677
            			{
4678
            				alt6=2;
4679
            			}
4680
            		    break;
4681
4682
            		default:
4683
            		    if (BACKTRACKING>0)
4684
            		    {
4685
            		        FAILEDFLAG = ANTLR3_TRUE;
4686
            		        return ;
4687
            		    }
4688
4689
            		    CONSTRUCTEX();
4690
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4691
            		    EXCEPTION->message      = (void *)"";
4692
            		    EXCEPTION->decisionNum  = 6;
4693
            		    EXCEPTION->state        = 1;
4694
4695
4696
            		    goto ruletypeOrVarLetDeclEx;
4697
4698
            		}
4699
4700
            	}
4701
                break;
4702
4703
            default:
4704
                if (BACKTRACKING>0)
4705
                {
4706
                    FAILEDFLAG = ANTLR3_TRUE;
4707
                    return ;
4708
                }
4709
4710
                CONSTRUCTEX();
4711
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4712
                EXCEPTION->message      = (void *)"";
4713
                EXCEPTION->decisionNum  = 6;
4714
                EXCEPTION->state        = 0;
4715
4716
4717
                goto ruletypeOrVarLetDeclEx;
4718
4719
            }
4720
4721
            switch (alt6)
4722
            {
4723
        	case 1:
4724
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:679:5: letDecl
4725
        	    {
4726
        	        FOLLOWPUSH(FOLLOW_letDecl_in_typeOrVarLetDecl2104);
4727
        	        letDecl(ctx);
4728
4729
        	        FOLLOWPOP();
4730
        	        if  (HASEXCEPTION())
4731
        	        {
4732
        	            goto ruletypeOrVarLetDeclEx;
4733
        	        }
4734
        	        if (HASFAILED())
4735
        	        {
4736
        	            return ;
4737
        	        }
4738
4739
4740
        	    }
4741
        	    break;
4742
        	case 2:
4743
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:679:15: typeLetDecl[check]
4744
        	    {
4745
        	        FOLLOWPUSH(FOLLOW_typeLetDecl_in_typeOrVarLetDecl2108);
4746
        	        typeLetDecl(ctx, check);
4747
4748
        	        FOLLOWPOP();
4749
        	        if  (HASEXCEPTION())
4750
        	        {
4751
        	            goto ruletypeOrVarLetDeclEx;
4752
        	        }
4753
        	        if (HASFAILED())
4754
        	        {
4755
        	            return ;
4756
        	        }
4757
4758
4759
        	    }
4760
        	    break;
4761
4762
            }
4763
        }
4764
    }
4765
4766
    // This is where rules clean up and exit
4767
    //
4768
    goto ruletypeOrVarLetDeclEx; /* Prevent compiler warnings */
4769
    ruletypeOrVarLetDeclEx: ;
4770
4771
            if (HASEXCEPTION())
4772
            {
4773
                PREPORTERROR();
4774
                PRECOVER();
4775
            }
4776
    return ;
4777
}
4778
/* $ANTLR end typeOrVarLetDecl */
4779
4780
/**
4781
 * $ANTLR start mainCommand
4782
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:682:1: mainCommand[std::unique_ptr<cvc5::Command>* cmd] : ( ASSERT_TOK formula[f] | QUERY_TOK formula[f] | CHECKSAT_TOK ( formula[f] )? | OPTION_TOK ( str[s] | IDENTIFIER ) ( symbolicExpr[sexpr] | TRUE_TOK | FALSE_TOK |) | PUSH_TOK (k= numeral |) | POP_TOK (k= numeral |) | POPTO_TOK (k= numeral )? | PUSH_SCOPE_TOK (k= numeral )? | POP_SCOPE_TOK (k= numeral )? | POPTO_SCOPE_TOK (k= numeral )? | RESET_TOK | RESET_TOK ASSERTIONS_TOK | DATATYPE_TOK datatypeDef[dts] ( COMMA datatypeDef[dts] )* END_TOK | CONTEXT_TOK ( ( str[s] | IDENTIFIER ) |) | FORGET_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] | GET_TYPE_TOK formula[f] | CHECK_TYPE_TOK formula[f] COLON type[t,CHECK_DECLARED] | GET_CHILD_TOK formula[f] k= numeral | GET_OP_TOK formula[f] | GET_VALUE_TOK formula[f] | SUBSTITUTE_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] EQUAL_TOK formula[f] LBRACKET identifier[id,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[f] RBRACKET | DBG_TOK ( ( str[s] | IDENTIFIER ) |) | TRACE_TOK ( ( str[s] | IDENTIFIER ) |) | UNTRACE_TOK ( ( str[s] | IDENTIFIER ) |) | HELP_TOK ( ( str[s] | IDENTIFIER ) |) | TRANSFORM_TOK formula[f] | PRINT_TOK formula[f] | PRINT_TYPE_TOK type[t,CHECK_DECLARED] | CALL_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] formula[f] | ECHO_TOK ( simpleSymbolicExpr[s] |) | EXIT_TOK | INCLUDE_TOK ( ( str[s] | IDENTIFIER ) |) | DUMP_PROOF_TOK | DUMP_UNSAT_CORE_TOK | ( DUMP_ASSUMPTIONS_TOK | DUMP_SIG_TOK | DUMP_TCC_TOK | DUMP_TCC_ASSUMPTIONS_TOK | DUMP_TCC_PROOF_TOK | DUMP_CLOSURE_TOK | DUMP_CLOSURE_PROOF_TOK ) | ( WHERE_TOK | ASSERTIONS_TOK | ASSUMPTIONS_TOK ) | COUNTEREXAMPLE_TOK | COUNTERMODEL_TOK | ARITH_VAR_ORDER_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN | CONTINUE_TOK | RESTART_TOK formula[f] | RECURSIVE_FUNCTION_TOK ( identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ( COMMA )? )+ EQUAL_TOK ( formula[f] ( COMMA )? )+ | toplevelDeclaration[cmd] );
4783
 */
4784
static void
4785
15721
mainCommand(pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd)
4786
{
4787
    pANTLR3_COMMON_TOKEN    IDENTIFIER3;
4788
    pANTLR3_COMMON_TOKEN    IDENTIFIER4;
4789
    pANTLR3_COMMON_TOKEN    IDENTIFIER5;
4790
    pANTLR3_COMMON_TOKEN    IDENTIFIER6;
4791
    pANTLR3_COMMON_TOKEN    IDENTIFIER7;
4792
    pANTLR3_COMMON_TOKEN    IDENTIFIER8;
4793
    pANTLR3_COMMON_TOKEN    IDENTIFIER9;
4794
    unsigned k;
4795
    #undef	RETURN_TYPE_k
4796
    #define	RETURN_TYPE_k unsigned
4797
4798
    /* Initialize rule variables
4799
     */
4800
4801
4802
31442
      api::Term f;
4803
31442
      api::Term sexpr;
4804
31442
      std::string id;
4805
31442
      api::Sort t;
4806
31442
      std::vector<cvc5::api::DatatypeDecl> dts;
4807
15721
      Debug("parser-extra") << "command: " << AntlrInput::tokenText(LT(1)) << std::endl;
4808
31442
      std::string s;
4809
31442
      api::Term func;
4810
31442
      std::vector<api::Term> bvs;
4811
31442
      std::vector<api::Term> funcs;
4812
31442
      std::vector<api::Term> formulas;
4813
31442
      std::vector<std::vector<api::Term>> formals;
4814
31442
      std::vector<std::string> ids;
4815
31442
      std::vector<cvc5::api::Sort> types;
4816
15721
      bool idCommaFlag = true;
4817
15721
      bool formCommaFlag = true;
4818
4819
15721
    IDENTIFIER3       = NULL;
4820
15721
    IDENTIFIER4       = NULL;
4821
15721
    IDENTIFIER5       = NULL;
4822
15721
    IDENTIFIER6       = NULL;
4823
15721
    IDENTIFIER7       = NULL;
4824
15721
    IDENTIFIER8       = NULL;
4825
15721
    IDENTIFIER9       = NULL;
4826
4827
    {
4828
        {
4829
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:702:3: ( ASSERT_TOK formula[f] | QUERY_TOK formula[f] | CHECKSAT_TOK ( formula[f] )? | OPTION_TOK ( str[s] | IDENTIFIER ) ( symbolicExpr[sexpr] | TRUE_TOK | FALSE_TOK |) | PUSH_TOK (k= numeral |) | POP_TOK (k= numeral |) | POPTO_TOK (k= numeral )? | PUSH_SCOPE_TOK (k= numeral )? | POP_SCOPE_TOK (k= numeral )? | POPTO_SCOPE_TOK (k= numeral )? | RESET_TOK | RESET_TOK ASSERTIONS_TOK | DATATYPE_TOK datatypeDef[dts] ( COMMA datatypeDef[dts] )* END_TOK | CONTEXT_TOK ( ( str[s] | IDENTIFIER ) |) | FORGET_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] | GET_TYPE_TOK formula[f] | CHECK_TYPE_TOK formula[f] COLON type[t,CHECK_DECLARED] | GET_CHILD_TOK formula[f] k= numeral | GET_OP_TOK formula[f] | GET_VALUE_TOK formula[f] | SUBSTITUTE_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] EQUAL_TOK formula[f] LBRACKET identifier[id,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[f] RBRACKET | DBG_TOK ( ( str[s] | IDENTIFIER ) |) | TRACE_TOK ( ( str[s] | IDENTIFIER ) |) | UNTRACE_TOK ( ( str[s] | IDENTIFIER ) |) | HELP_TOK ( ( str[s] | IDENTIFIER ) |) | TRANSFORM_TOK formula[f] | PRINT_TOK formula[f] | PRINT_TYPE_TOK type[t,CHECK_DECLARED] | CALL_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] formula[f] | ECHO_TOK ( simpleSymbolicExpr[s] |) | EXIT_TOK | INCLUDE_TOK ( ( str[s] | IDENTIFIER ) |) | DUMP_PROOF_TOK | DUMP_UNSAT_CORE_TOK | ( DUMP_ASSUMPTIONS_TOK | DUMP_SIG_TOK | DUMP_TCC_TOK | DUMP_TCC_ASSUMPTIONS_TOK | DUMP_TCC_PROOF_TOK | DUMP_CLOSURE_TOK | DUMP_CLOSURE_PROOF_TOK ) | ( WHERE_TOK | ASSERTIONS_TOK | ASSUMPTIONS_TOK ) | COUNTEREXAMPLE_TOK | COUNTERMODEL_TOK | ARITH_VAR_ORDER_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN | CONTINUE_TOK | RESTART_TOK formula[f] | RECURSIVE_FUNCTION_TOK ( identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ( COMMA )? )+ EQUAL_TOK ( formula[f] ( COMMA )? )+ | toplevelDeclaration[cmd] )
4830
4831
            ANTLR3_UINT32 alt35;
4832
4833
15721
            alt35=43;
4834
4835
15721
            switch ( LA(1) )
4836
            {
4837
8462
            case ASSERT_TOK:
4838
            	{
4839
8462
            		alt35=1;
4840
            	}
4841
8462
                break;
4842
597
            case QUERY_TOK:
4843
            	{
4844
597
            		alt35=2;
4845
            	}
4846
597
                break;
4847
511
            case CHECKSAT_TOK:
4848
            	{
4849
511
            		alt35=3;
4850
            	}
4851
511
                break;
4852
343
            case OPTION_TOK:
4853
            	{
4854
343
            		alt35=4;
4855
            	}
4856
343
                break;
4857
166
            case PUSH_TOK:
4858
            	{
4859
166
            		alt35=5;
4860
            	}
4861
166
                break;
4862
162
            case POP_TOK:
4863
            	{
4864
162
            		alt35=6;
4865
            	}
4866
162
                break;
4867
            case POPTO_TOK:
4868
            	{
4869
            		alt35=7;
4870
            	}
4871
                break;
4872
            case PUSH_SCOPE_TOK:
4873
            	{
4874
            		alt35=8;
4875
            	}
4876
                break;
4877
            case POP_SCOPE_TOK:
4878
            	{
4879
            		alt35=9;
4880
            	}
4881
                break;
4882
            case POPTO_SCOPE_TOK:
4883
            	{
4884
            		alt35=10;
4885
            	}
4886
                break;
4887
8
            case RESET_TOK:
4888
            	{
4889
8
            		switch ( LA(2) )
4890
            		{
4891
            		case ASSERTIONS_TOK:
4892
            			{
4893
            				alt35=12;
4894
            			}
4895
            		    break;
4896
8
            		case SEMICOLON:
4897
            			{
4898
8
            				alt35=11;
4899
            			}
4900
8
            		    break;
4901
4902
            		default:
4903
            		    if (BACKTRACKING>0)
4904
            		    {
4905
            		        FAILEDFLAG = ANTLR3_TRUE;
4906
            		        return ;
4907
            		    }
4908
4909
            		    CONSTRUCTEX();
4910
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4911
            		    EXCEPTION->message      = (void *)"";
4912
            		    EXCEPTION->decisionNum  = 35;
4913
            		    EXCEPTION->state        = 11;
4914
4915
4916
            		    goto rulemainCommandEx;
4917
4918
            		}
4919
4920
            	}
4921
8
                break;
4922
146
            case DATATYPE_TOK:
4923
            	{
4924
146
            		alt35=13;
4925
            	}
4926
146
                break;
4927
            case CONTEXT_TOK:
4928
            	{
4929
            		alt35=14;
4930
            	}
4931
                break;
4932
            case FORGET_TOK:
4933
            	{
4934
            		alt35=15;
4935
            	}
4936
                break;
4937
            case GET_TYPE_TOK:
4938
            	{
4939
            		alt35=16;
4940
            	}
4941
                break;
4942
            case CHECK_TYPE_TOK:
4943
            	{
4944
            		alt35=17;
4945
            	}
4946
                break;
4947
            case GET_CHILD_TOK:
4948
            	{
4949
            		alt35=18;
4950
            	}
4951
                break;
4952
            case GET_OP_TOK:
4953
            	{
4954
            		alt35=19;
4955
            	}
4956
                break;
4957
6
            case GET_VALUE_TOK:
4958
            	{
4959
6
            		alt35=20;
4960
            	}
4961
6
                break;
4962
            case SUBSTITUTE_TOK:
4963
            	{
4964
            		alt35=21;
4965
            	}
4966
                break;
4967
            case DBG_TOK:
4968
            	{
4969
            		alt35=22;
4970
            	}
4971
                break;
4972
            case TRACE_TOK:
4973
            	{
4974
            		alt35=23;
4975
            	}
4976
                break;
4977
            case UNTRACE_TOK:
4978
            	{
4979
            		alt35=24;
4980
            	}
4981
                break;
4982
            case HELP_TOK:
4983
            	{
4984
            		alt35=25;
4985
            	}
4986
                break;
4987
            case TRANSFORM_TOK:
4988
            	{
4989
            		alt35=26;
4990
            	}
4991
                break;
4992
            case PRINT_TOK:
4993
            	{
4994
            		alt35=27;
4995
            	}
4996
                break;
4997
            case PRINT_TYPE_TOK:
4998
            	{
4999
            		alt35=28;
5000
            	}
5001
                break;
5002
            case CALL_TOK:
5003
            	{
5004
            		alt35=29;
5005
            	}
5006
                break;
5007
            case ECHO_TOK:
5008
            	{
5009
            		alt35=30;
5010
            	}
5011
                break;
5012
            case EXIT_TOK:
5013
            	{
5014
            		alt35=31;
5015
            	}
5016
                break;
5017
            case INCLUDE_TOK:
5018
            	{
5019
            		alt35=32;
5020
            	}
5021
                break;
5022
            case DUMP_PROOF_TOK:
5023
            	{
5024
            		alt35=33;
5025
            	}
5026
                break;
5027
            case DUMP_UNSAT_CORE_TOK:
5028
            	{
5029
            		alt35=34;
5030
            	}
5031
                break;
5032
            case DUMP_ASSUMPTIONS_TOK:
5033
            case DUMP_CLOSURE_PROOF_TOK:
5034
            case DUMP_CLOSURE_TOK:
5035
            case DUMP_SIG_TOK:
5036
            case DUMP_TCC_ASSUMPTIONS_TOK:
5037
            case DUMP_TCC_PROOF_TOK:
5038
            case DUMP_TCC_TOK:
5039
            	{
5040
            		alt35=35;
5041
            	}
5042
                break;
5043
            case ASSERTIONS_TOK:
5044
            case ASSUMPTIONS_TOK:
5045
            case WHERE_TOK:
5046
            	{
5047
            		alt35=36;
5048
            	}
5049
                break;
5050
6
            case COUNTEREXAMPLE_TOK:
5051
            	{
5052
6
            		alt35=37;
5053
            	}
5054
6
                break;
5055
2
            case COUNTERMODEL_TOK:
5056
            	{
5057
2
            		alt35=38;
5058
            	}
5059
2
                break;
5060
            case ARITH_VAR_ORDER_TOK:
5061
            	{
5062
            		alt35=39;
5063
            	}
5064
                break;
5065
            case CONTINUE_TOK:
5066
            	{
5067
            		alt35=40;
5068
            	}
5069
                break;
5070
            case RESTART_TOK:
5071
            	{
5072
            		alt35=41;
5073
            	}
5074
                break;
5075
12
            case RECURSIVE_FUNCTION_TOK:
5076
            	{
5077
12
            		alt35=42;
5078
            	}
5079
12
                break;
5080
5300
            case IDENTIFIER:
5081
            	{
5082
5300
            		alt35=43;
5083
            	}
5084
5300
                break;
5085
5086
            default:
5087
                if (BACKTRACKING>0)
5088
                {
5089
                    FAILEDFLAG = ANTLR3_TRUE;
5090
                    return ;
5091
                }
5092
5093
                CONSTRUCTEX();
5094
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5095
                EXCEPTION->message      = (void *)"";
5096
                EXCEPTION->decisionNum  = 35;
5097
                EXCEPTION->state        = 0;
5098
5099
5100
                goto rulemainCommandEx;
5101
5102
            }
5103
5104
15721
            switch (alt35)
5105
            {
5106
8462
        	case 1:
5107
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:702:5: ASSERT_TOK formula[f]
5108
        	    {
5109
8462
        	         MATCHT(ASSERT_TOK, &FOLLOW_ASSERT_TOK_in_mainCommand2134);
5110
8462
        	        if  (HASEXCEPTION())
5111
        	        {
5112
        	            goto rulemainCommandEx;
5113
        	        }
5114
8462
        	        if (HASFAILED())
5115
        	        {
5116
        	            return ;
5117
        	        }
5118
5119
5120
8462
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2136);
5121
8462
        	        formula(ctx, f);
5122
5123
8460
        	        FOLLOWPOP();
5124
8460
        	        if  (HASEXCEPTION())
5125
        	        {
5126
        	            goto rulemainCommandEx;
5127
        	        }
5128
8460
        	        if (HASFAILED())
5129
        	        {
5130
        	            return ;
5131
        	        }
5132
5133
5134
8460
        	        if ( BACKTRACKING==0 )
5135
        	        {
5136
8460
        	             cmd->reset(new AssertCommand(f));
5137
        	        }
5138
5139
5140
        	    }
5141
8460
        	    break;
5142
597
        	case 2:
5143
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:704:5: QUERY_TOK formula[f]
5144
        	    {
5145
597
        	         MATCHT(QUERY_TOK, &FOLLOW_QUERY_TOK_in_mainCommand2146);
5146
597
        	        if  (HASEXCEPTION())
5147
        	        {
5148
        	            goto rulemainCommandEx;
5149
        	        }
5150
597
        	        if (HASFAILED())
5151
        	        {
5152
        	            return ;
5153
        	        }
5154
5155
5156
597
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2148);
5157
597
        	        formula(ctx, f);
5158
5159
593
        	        FOLLOWPOP();
5160
593
        	        if  (HASEXCEPTION())
5161
        	        {
5162
        	            goto rulemainCommandEx;
5163
        	        }
5164
593
        	        if (HASFAILED())
5165
        	        {
5166
        	            return ;
5167
        	        }
5168
5169
5170
593
        	        if ( BACKTRACKING==0 )
5171
        	        {
5172
593
        	             cmd->reset(new QueryCommand(f));
5173
        	        }
5174
5175
5176
        	    }
5177
593
        	    break;
5178
511
        	case 3:
5179
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:705:5: CHECKSAT_TOK ( formula[f] )?
5180
        	    {
5181
511
        	         MATCHT(CHECKSAT_TOK, &FOLLOW_CHECKSAT_TOK_in_mainCommand2157);
5182
511
        	        if  (HASEXCEPTION())
5183
        	        {
5184
        	            goto rulemainCommandEx;
5185
        	        }
5186
511
        	        if (HASFAILED())
5187
        	        {
5188
        	            return ;
5189
        	        }
5190
5191
5192
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:705:18: ( formula[f] )?
5193
        	        {
5194
511
        	            int alt7=2;
5195
511
        	            switch ( LA(1) )
5196
        	            {
5197
55
        	                case ABS_TOK:
5198
        	                case ARRAY_TOK:
5199
        	                case BAR:
5200
        	                case BINARY_LITERAL:
5201
        	                case BVASHR_TOK:
5202
        	                case BVCOMP_TOK:
5203
        	                case BVGE_TOK:
5204
        	                case BVGT_TOK:
5205
        	                case BVLE_TOK:
5206
        	                case BVLSHR_TOK:
5207
        	                case BVLT_TOK:
5208
        	                case BVMULT_TOK:
5209
        	                case BVNAND_TOK:
5210
        	                case BVNEG_TOK:
5211
        	                case BVNOR_TOK:
5212
        	                case BVPLUS_TOK:
5213
        	                case BVREPEAT_TOK:
5214
        	                case BVROTL_TOK:
5215
        	                case BVROTR_TOK:
5216
        	                case BVSDIV_TOK:
5217
        	                case BVSGE_TOK:
5218
        	                case BVSGT_TOK:
5219
        	                case BVSHL_TOK:
5220
        	                case BVSLE_TOK:
5221
        	                case BVSLT_TOK:
5222
        	                case BVSMOD_TOK:
5223
        	                case BVSREM_TOK:
5224
        	                case BVSUB_TOK:
5225
        	                case BVUDIV_TOK:
5226
        	                case BVUMINUS_TOK:
5227
        	                case BVUREM_TOK:
5228
        	                case BVXNOR_TOK:
5229
        	                case BVXOR_TOK:
5230
        	                case BVZEROEXTEND_TOK:
5231
        	                case DECIMAL_LITERAL:
5232
        	                case DISTINCT_TOK:
5233
        	                case DIVISIBLE_TOK:
5234
        	                case EXISTS_TOK:
5235
        	                case FALSE_TOK:
5236
        	                case FLOOR_TOK:
5237
        	                case FORALL_TOK:
5238
        	                case HEX_LITERAL:
5239
        	                case IDENTIFIER:
5240
        	                case IDEN_TOK:
5241
        	                case IF_TOK:
5242
        	                case INTEGER_LITERAL:
5243
        	                case IS_INTEGER_TOK:
5244
        	                case LAMBDA_TOK:
5245
        	                case LBRACE:
5246
        	                case LET_TOK:
5247
        	                case LPAREN:
5248
        	                case MINUS_TOK:
5249
        	                case NOT_TOK:
5250
        	                case PARENHASH:
5251
        	                case REGEXP_COMPLEMENT_TOK:
5252
        	                case REGEXP_CONCAT_TOK:
5253
        	                case REGEXP_EMPTY_TOK:
5254
        	                case REGEXP_INTER_TOK:
5255
        	                case REGEXP_LOOP_TOK:
5256
        	                case REGEXP_OPT_TOK:
5257
        	                case REGEXP_PLUS_TOK:
5258
        	                case REGEXP_RANGE_TOK:
5259
        	                case REGEXP_SIGMA_TOK:
5260
        	                case REGEXP_STAR_TOK:
5261
        	                case REGEXP_UNION_TOK:
5262
        	                case SEQ_UNIT_TOK:
5263
        	                case SETS_CARD_TOK:
5264
        	                case SETS_CHOOSE_TOK:
5265
        	                case STRING_CHARAT_TOK:
5266
        	                case STRING_CONCAT_TOK:
5267
        	                case STRING_CONTAINS_TOK:
5268
        	                case STRING_INDEXOF_TOK:
5269
        	                case STRING_ITOS_TOK:
5270
        	                case STRING_LENGTH_TOK:
5271
        	                case STRING_LITERAL:
5272
        	                case STRING_PREFIXOF_TOK:
5273
        	                case STRING_REPLACE_ALL_TOK:
5274
        	                case STRING_REPLACE_TOK:
5275
        	                case STRING_REV_TOK:
5276
        	                case STRING_STOI_TOK:
5277
        	                case STRING_SUBSTR_TOK:
5278
        	                case STRING_SUFFIXOF_TOK:
5279
        	                case STRING_TOLOWER_TOK:
5280
        	                case STRING_TOUPPER_TOK:
5281
        	                case STRING_TO_REGEXP_TOK:
5282
        	                case SX_TOK:
5283
        	                case TRANSCLOSURE_TOK:
5284
        	                case TRANSPOSE_TOK:
5285
        	                case TRUE_TOK:
5286
        	                case TUPLE_TOK:
5287
        	                case UNIVSET_TOK:
5288
        	                	{
5289
55
        	                		alt7=1;
5290
        	                	}
5291
55
        	                    break;
5292
        	            }
5293
5294
511
        	            switch (alt7)
5295
        	            {
5296
55
        	        	case 1:
5297
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:705:18: formula[f]
5298
        	        	    {
5299
55
        	        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2159);
5300
55
        	        	        formula(ctx, f);
5301
5302
55
        	        	        FOLLOWPOP();
5303
55
        	        	        if  (HASEXCEPTION())
5304
        	        	        {
5305
        	        	            goto rulemainCommandEx;
5306
        	        	        }
5307
55
        	        	        if (HASFAILED())
5308
        	        	        {
5309
        	        	            return ;
5310
        	        	        }
5311
5312
5313
        	        	    }
5314
55
        	        	    break;
5315
5316
        	            }
5317
        	        }
5318
5319
511
        	        if ( BACKTRACKING==0 )
5320
        	        {
5321
5322
511
        	                  cmd->reset(f.isNull() ? new CheckSatCommand() : new CheckSatCommand(f));
5323
5324
        	        }
5325
5326
5327
        	    }
5328
511
        	    break;
5329
343
        	case 4:
5330
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:710:5: OPTION_TOK ( str[s] | IDENTIFIER ) ( symbolicExpr[sexpr] | TRUE_TOK | FALSE_TOK |)
5331
        	    {
5332
343
        	         MATCHT(OPTION_TOK, &FOLLOW_OPTION_TOK_in_mainCommand2179);
5333
343
        	        if  (HASEXCEPTION())
5334
        	        {
5335
        	            goto rulemainCommandEx;
5336
        	        }
5337
343
        	        if (HASFAILED())
5338
        	        {
5339
        	            return ;
5340
        	        }
5341
5342
5343
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:711:5: ( str[s] | IDENTIFIER )
5344
        	        {
5345
343
        	            int alt8=2;
5346
343
        	            switch ( LA(1) )
5347
        	            {
5348
343
        	            case STRING_LITERAL:
5349
        	            	{
5350
343
        	            		alt8=1;
5351
        	            	}
5352
343
        	                break;
5353
        	            case IDENTIFIER:
5354
        	            	{
5355
        	            		alt8=2;
5356
        	            	}
5357
        	                break;
5358
5359
        	            default:
5360
        	                if (BACKTRACKING>0)
5361
        	                {
5362
        	                    FAILEDFLAG = ANTLR3_TRUE;
5363
        	                    return ;
5364
        	                }
5365
5366
        	                CONSTRUCTEX();
5367
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5368
        	                EXCEPTION->message      = (void *)"";
5369
        	                EXCEPTION->decisionNum  = 8;
5370
        	                EXCEPTION->state        = 0;
5371
5372
5373
        	                goto rulemainCommandEx;
5374
5375
        	            }
5376
5377
343
        	            switch (alt8)
5378
        	            {
5379
343
        	        	case 1:
5380
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:711:7: str[s]
5381
        	        	    {
5382
343
        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2187);
5383
343
        	        	        str(ctx, s);
5384
5385
343
        	        	        FOLLOWPOP();
5386
343
        	        	        if  (HASEXCEPTION())
5387
        	        	        {
5388
        	        	            goto rulemainCommandEx;
5389
        	        	        }
5390
343
        	        	        if (HASFAILED())
5391
        	        	        {
5392
        	        	            return ;
5393
        	        	        }
5394
5395
5396
        	        	    }
5397
343
        	        	    break;
5398
        	        	case 2:
5399
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:711:16: IDENTIFIER
5400
        	        	    {
5401
        	        	        IDENTIFIER3 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2192);
5402
        	        	        if  (HASEXCEPTION())
5403
        	        	        {
5404
        	        	            goto rulemainCommandEx;
5405
        	        	        }
5406
        	        	        if (HASFAILED())
5407
        	        	        {
5408
        	        	            return ;
5409
        	        	        }
5410
5411
5412
        	        	        if ( BACKTRACKING==0 )
5413
        	        	        {
5414
        	        	             s = AntlrInput::tokenText(IDENTIFIER3);
5415
        	        	        }
5416
5417
5418
        	        	    }
5419
        	        	    break;
5420
5421
        	            }
5422
        	        }
5423
5424
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:712:5: ( symbolicExpr[sexpr] | TRUE_TOK | FALSE_TOK |)
5425
        	        {
5426
343
        	            int alt9=4;
5427
343
        	            switch ( LA(1) )
5428
        	            {
5429
267
        	            case BINARY_LITERAL:
5430
        	            case DECIMAL_LITERAL:
5431
        	            case HEX_LITERAL:
5432
        	            case IDENTIFIER:
5433
        	            case INTEGER_LITERAL:
5434
        	            case LPAREN:
5435
        	            case MINUS_TOK:
5436
        	            case STRING_LITERAL:
5437
        	            	{
5438
267
        	            		alt9=1;
5439
        	            	}
5440
267
        	                break;
5441
        	            case TRUE_TOK:
5442
        	            	{
5443
        	            		alt9=2;
5444
        	            	}
5445
        	                break;
5446
        	            case FALSE_TOK:
5447
        	            	{
5448
        	            		alt9=3;
5449
        	            	}
5450
        	                break;
5451
76
        	            case SEMICOLON:
5452
        	            	{
5453
76
        	            		alt9=4;
5454
        	            	}
5455
76
        	                break;
5456
5457
        	            default:
5458
        	                if (BACKTRACKING>0)
5459
        	                {
5460
        	                    FAILEDFLAG = ANTLR3_TRUE;
5461
        	                    return ;
5462
        	                }
5463
5464
        	                CONSTRUCTEX();
5465
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5466
        	                EXCEPTION->message      = (void *)"";
5467
        	                EXCEPTION->decisionNum  = 9;
5468
        	                EXCEPTION->state        = 0;
5469
5470
5471
        	                goto rulemainCommandEx;
5472
5473
        	            }
5474
5475
343
        	            switch (alt9)
5476
        	            {
5477
267
        	        	case 1:
5478
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:712:7: symbolicExpr[sexpr]
5479
        	        	    {
5480
267
        	        	        FOLLOWPUSH(FOLLOW_symbolicExpr_in_mainCommand2204);
5481
267
        	        	        symbolicExpr(ctx, sexpr);
5482
5483
267
        	        	        FOLLOWPOP();
5484
267
        	        	        if  (HASEXCEPTION())
5485
        	        	        {
5486
        	        	            goto rulemainCommandEx;
5487
        	        	        }
5488
267
        	        	        if (HASFAILED())
5489
        	        	        {
5490
        	        	            return ;
5491
        	        	        }
5492
5493
5494
267
        	        	        if ( BACKTRACKING==0 )
5495
        	        	        {
5496
267
        	        	             if(s == "logic") {
5497
258
        	        	                      cmd->reset(new SetBenchmarkLogicCommand(sexprToString(sexpr)));
5498
        	        	                    } else {
5499
9
        	        	                      cmd->reset(new SetOptionCommand(s, sexprToString(sexpr)));
5500
        	        	                    }
5501
5502
        	        	        }
5503
5504
5505
        	        	    }
5506
267
        	        	    break;
5507
        	        	case 2:
5508
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:719:7: TRUE_TOK
5509
        	        	    {
5510
        	        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_mainCommand2221);
5511
        	        	        if  (HASEXCEPTION())
5512
        	        	        {
5513
        	        	            goto rulemainCommandEx;
5514
        	        	        }
5515
        	        	        if (HASFAILED())
5516
        	        	        {
5517
        	        	            return ;
5518
        	        	        }
5519
5520
5521
        	        	        if ( BACKTRACKING==0 )
5522
        	        	        {
5523
        	        	             cmd->reset(new SetOptionCommand(s, "true"));
5524
        	        	        }
5525
5526
5527
        	        	    }
5528
        	        	    break;
5529
        	        	case 3:
5530
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:720:7: FALSE_TOK
5531
        	        	    {
5532
        	        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_mainCommand2231);
5533
        	        	        if  (HASEXCEPTION())
5534
        	        	        {
5535
        	        	            goto rulemainCommandEx;
5536
        	        	        }
5537
        	        	        if (HASFAILED())
5538
        	        	        {
5539
        	        	            return ;
5540
        	        	        }
5541
5542
5543
        	        	        if ( BACKTRACKING==0 )
5544
        	        	        {
5545
        	        	             cmd->reset(new SetOptionCommand(s, "false"));
5546
        	        	        }
5547
5548
5549
        	        	    }
5550
        	        	    break;
5551
76
        	        	case 4:
5552
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:721:7:
5553
        	        	    {
5554
76
        	        	        if ( BACKTRACKING==0 )
5555
        	        	        {
5556
76
        	        	             cmd->reset(new SetOptionCommand(s, "true"));
5557
        	        	        }
5558
5559
5560
        	        	    }
5561
76
        	        	    break;
5562
5563
        	            }
5564
        	        }
5565
5566
        	    }
5567
343
        	    break;
5568
166
        	case 5:
5569
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:725:5: PUSH_TOK (k= numeral |)
5570
        	    {
5571
166
        	         MATCHT(PUSH_TOK, &FOLLOW_PUSH_TOK_in_mainCommand2260);
5572
166
        	        if  (HASEXCEPTION())
5573
        	        {
5574
        	            goto rulemainCommandEx;
5575
        	        }
5576
166
        	        if (HASFAILED())
5577
        	        {
5578
        	            return ;
5579
        	        }
5580
5581
5582
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:725:14: (k= numeral |)
5583
        	        {
5584
166
        	            int alt10=2;
5585
166
        	            switch ( LA(1) )
5586
        	            {
5587
4
        	            case INTEGER_LITERAL:
5588
        	            	{
5589
4
        	            		alt10=1;
5590
        	            	}
5591
4
        	                break;
5592
162
        	            case SEMICOLON:
5593
        	            	{
5594
162
        	            		alt10=2;
5595
        	            	}
5596
162
        	                break;
5597
5598
        	            default:
5599
        	                if (BACKTRACKING>0)
5600
        	                {
5601
        	                    FAILEDFLAG = ANTLR3_TRUE;
5602
        	                    return ;
5603
        	                }
5604
5605
        	                CONSTRUCTEX();
5606
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5607
        	                EXCEPTION->message      = (void *)"";
5608
        	                EXCEPTION->decisionNum  = 10;
5609
        	                EXCEPTION->state        = 0;
5610
5611
5612
        	                goto rulemainCommandEx;
5613
5614
        	            }
5615
5616
166
        	            switch (alt10)
5617
        	            {
5618
4
        	        	case 1:
5619
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:725:16: k= numeral
5620
        	        	    {
5621
4
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2266);
5622
4
        	        	        k=numeral(ctx);
5623
5624
4
        	        	        FOLLOWPOP();
5625
4
        	        	        if  (HASEXCEPTION())
5626
        	        	        {
5627
        	        	            goto rulemainCommandEx;
5628
        	        	        }
5629
4
        	        	        if (HASFAILED())
5630
        	        	        {
5631
        	        	            return ;
5632
        	        	        }
5633
5634
5635
4
        	        	        if ( BACKTRACKING==0 )
5636
        	        	        {
5637
4
        	        	             cmd->reset(REPEAT_COMMAND(k, PushCommand()));
5638
        	        	        }
5639
5640
5641
        	        	    }
5642
4
        	        	    break;
5643
162
        	        	case 2:
5644
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:726:18:
5645
        	        	    {
5646
162
        	        	        if ( BACKTRACKING==0 )
5647
        	        	        {
5648
162
        	        	             cmd->reset(new PushCommand());
5649
        	        	        }
5650
5651
5652
        	        	    }
5653
162
        	        	    break;
5654
5655
        	            }
5656
        	        }
5657
5658
        	    }
5659
166
        	    break;
5660
162
        	case 6:
5661
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:727:5: POP_TOK (k= numeral |)
5662
        	    {
5663
162
        	         MATCHT(POP_TOK, &FOLLOW_POP_TOK_in_mainCommand2295);
5664
162
        	        if  (HASEXCEPTION())
5665
        	        {
5666
        	            goto rulemainCommandEx;
5667
        	        }
5668
162
        	        if (HASFAILED())
5669
        	        {
5670
        	            return ;
5671
        	        }
5672
5673
5674
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:727:13: (k= numeral |)
5675
        	        {
5676
162
        	            int alt11=2;
5677
162
        	            switch ( LA(1) )
5678
        	            {
5679
4
        	            case INTEGER_LITERAL:
5680
        	            	{
5681
4
        	            		alt11=1;
5682
        	            	}
5683
4
        	                break;
5684
158
        	            case SEMICOLON:
5685
        	            	{
5686
158
        	            		alt11=2;
5687
        	            	}
5688
158
        	                break;
5689
5690
        	            default:
5691
        	                if (BACKTRACKING>0)
5692
        	                {
5693
        	                    FAILEDFLAG = ANTLR3_TRUE;
5694
        	                    return ;
5695
        	                }
5696
5697
        	                CONSTRUCTEX();
5698
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5699
        	                EXCEPTION->message      = (void *)"";
5700
        	                EXCEPTION->decisionNum  = 11;
5701
        	                EXCEPTION->state        = 0;
5702
5703
5704
        	                goto rulemainCommandEx;
5705
5706
        	            }
5707
5708
162
        	            switch (alt11)
5709
        	            {
5710
4
        	        	case 1:
5711
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:727:15: k= numeral
5712
        	        	    {
5713
4
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2301);
5714
4
        	        	        k=numeral(ctx);
5715
5716
4
        	        	        FOLLOWPOP();
5717
4
        	        	        if  (HASEXCEPTION())
5718
        	        	        {
5719
        	        	            goto rulemainCommandEx;
5720
        	        	        }
5721
4
        	        	        if (HASFAILED())
5722
        	        	        {
5723
        	        	            return ;
5724
        	        	        }
5725
5726
5727
4
        	        	        if ( BACKTRACKING==0 )
5728
        	        	        {
5729
4
        	        	             cmd->reset(REPEAT_COMMAND(k, PopCommand()));
5730
        	        	        }
5731
5732
5733
        	        	    }
5734
4
        	        	    break;
5735
158
        	        	case 2:
5736
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:728:17:
5737
        	        	    {
5738
158
        	        	        if ( BACKTRACKING==0 )
5739
        	        	        {
5740
158
        	        	             cmd->reset(new PopCommand());
5741
        	        	        }
5742
5743
5744
        	        	    }
5745
158
        	        	    break;
5746
5747
        	            }
5748
        	        }
5749
5750
        	    }
5751
162
        	    break;
5752
        	case 7:
5753
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:729:5: POPTO_TOK (k= numeral )?
5754
        	    {
5755
        	         MATCHT(POPTO_TOK, &FOLLOW_POPTO_TOK_in_mainCommand2329);
5756
        	        if  (HASEXCEPTION())
5757
        	        {
5758
        	            goto rulemainCommandEx;
5759
        	        }
5760
        	        if (HASFAILED())
5761
        	        {
5762
        	            return ;
5763
        	        }
5764
5765
5766
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:729:16: (k= numeral )?
5767
        	        {
5768
        	            int alt12=2;
5769
        	            switch ( LA(1) )
5770
        	            {
5771
        	                case INTEGER_LITERAL:
5772
        	                	{
5773
        	                		alt12=1;
5774
        	                	}
5775
        	                    break;
5776
        	            }
5777
5778
        	            switch (alt12)
5779
        	            {
5780
        	        	case 1:
5781
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:729:16: k= numeral
5782
        	        	    {
5783
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2333);
5784
        	        	        k=numeral(ctx);
5785
5786
        	        	        FOLLOWPOP();
5787
        	        	        if  (HASEXCEPTION())
5788
        	        	        {
5789
        	        	            goto rulemainCommandEx;
5790
        	        	        }
5791
        	        	        if (HASFAILED())
5792
        	        	        {
5793
        	        	            return ;
5794
        	        	        }
5795
5796
5797
        	        	    }
5798
        	        	    break;
5799
5800
        	            }
5801
        	        }
5802
5803
        	        if ( BACKTRACKING==0 )
5804
        	        {
5805
        	             UNSUPPORTED("POPTO command");
5806
        	        }
5807
5808
5809
        	    }
5810
        	    break;
5811
        	case 8:
5812
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:733:5: PUSH_SCOPE_TOK (k= numeral )?
5813
        	    {
5814
        	         MATCHT(PUSH_SCOPE_TOK, &FOLLOW_PUSH_SCOPE_TOK_in_mainCommand2353);
5815
        	        if  (HASEXCEPTION())
5816
        	        {
5817
        	            goto rulemainCommandEx;
5818
        	        }
5819
        	        if (HASFAILED())
5820
        	        {
5821
        	            return ;
5822
        	        }
5823
5824
5825
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:733:21: (k= numeral )?
5826
        	        {
5827
        	            int alt13=2;
5828
        	            switch ( LA(1) )
5829
        	            {
5830
        	                case INTEGER_LITERAL:
5831
        	                	{
5832
        	                		alt13=1;
5833
        	                	}
5834
        	                    break;
5835
        	            }
5836
5837
        	            switch (alt13)
5838
        	            {
5839
        	        	case 1:
5840
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:733:21: k= numeral
5841
        	        	    {
5842
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2357);
5843
        	        	        k=numeral(ctx);
5844
5845
        	        	        FOLLOWPOP();
5846
        	        	        if  (HASEXCEPTION())
5847
        	        	        {
5848
        	        	            goto rulemainCommandEx;
5849
        	        	        }
5850
        	        	        if (HASFAILED())
5851
        	        	        {
5852
        	        	            return ;
5853
        	        	        }
5854
5855
5856
        	        	    }
5857
        	        	    break;
5858
5859
        	            }
5860
        	        }
5861
5862
        	        if ( BACKTRACKING==0 )
5863
        	        {
5864
        	             UNSUPPORTED("PUSH_SCOPE command");
5865
        	        }
5866
5867
5868
        	    }
5869
        	    break;
5870
        	case 9:
5871
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:735:5: POP_SCOPE_TOK (k= numeral )?
5872
        	    {
5873
        	         MATCHT(POP_SCOPE_TOK, &FOLLOW_POP_SCOPE_TOK_in_mainCommand2370);
5874
        	        if  (HASEXCEPTION())
5875
        	        {
5876
        	            goto rulemainCommandEx;
5877
        	        }
5878
        	        if (HASFAILED())
5879
        	        {
5880
        	            return ;
5881
        	        }
5882
5883
5884
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:735:20: (k= numeral )?
5885
        	        {
5886
        	            int alt14=2;
5887
        	            switch ( LA(1) )
5888
        	            {
5889
        	                case INTEGER_LITERAL:
5890
        	                	{
5891
        	                		alt14=1;
5892
        	                	}
5893
        	                    break;
5894
        	            }
5895
5896
        	            switch (alt14)
5897
        	            {
5898
        	        	case 1:
5899
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:735:20: k= numeral
5900
        	        	    {
5901
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2374);
5902
        	        	        k=numeral(ctx);
5903
5904
        	        	        FOLLOWPOP();
5905
        	        	        if  (HASEXCEPTION())
5906
        	        	        {
5907
        	        	            goto rulemainCommandEx;
5908
        	        	        }
5909
        	        	        if (HASFAILED())
5910
        	        	        {
5911
        	        	            return ;
5912
        	        	        }
5913
5914
5915
        	        	    }
5916
        	        	    break;
5917
5918
        	            }
5919
        	        }
5920
5921
        	        if ( BACKTRACKING==0 )
5922
        	        {
5923
        	             UNSUPPORTED("POP_SCOPE command");
5924
        	        }
5925
5926
5927
        	    }
5928
        	    break;
5929
        	case 10:
5930
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:737:5: POPTO_SCOPE_TOK (k= numeral )?
5931
        	    {
5932
        	         MATCHT(POPTO_SCOPE_TOK, &FOLLOW_POPTO_SCOPE_TOK_in_mainCommand2387);
5933
        	        if  (HASEXCEPTION())
5934
        	        {
5935
        	            goto rulemainCommandEx;
5936
        	        }
5937
        	        if (HASFAILED())
5938
        	        {
5939
        	            return ;
5940
        	        }
5941
5942
5943
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:737:22: (k= numeral )?
5944
        	        {
5945
        	            int alt15=2;
5946
        	            switch ( LA(1) )
5947
        	            {
5948
        	                case INTEGER_LITERAL:
5949
        	                	{
5950
        	                		alt15=1;
5951
        	                	}
5952
        	                    break;
5953
        	            }
5954
5955
        	            switch (alt15)
5956
        	            {
5957
        	        	case 1:
5958
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:737:22: k= numeral
5959
        	        	    {
5960
        	        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2391);
5961
        	        	        k=numeral(ctx);
5962
5963
        	        	        FOLLOWPOP();
5964
        	        	        if  (HASEXCEPTION())
5965
        	        	        {
5966
        	        	            goto rulemainCommandEx;
5967
        	        	        }
5968
        	        	        if (HASFAILED())
5969
        	        	        {
5970
        	        	            return ;
5971
        	        	        }
5972
5973
5974
        	        	    }
5975
        	        	    break;
5976
5977
        	            }
5978
        	        }
5979
5980
        	        if ( BACKTRACKING==0 )
5981
        	        {
5982
        	             UNSUPPORTED("POPTO_SCOPE command");
5983
        	        }
5984
5985
5986
        	    }
5987
        	    break;
5988
8
        	case 11:
5989
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:740:5: RESET_TOK
5990
        	    {
5991
8
        	         MATCHT(RESET_TOK, &FOLLOW_RESET_TOK_in_mainCommand2405);
5992
8
        	        if  (HASEXCEPTION())
5993
        	        {
5994
        	            goto rulemainCommandEx;
5995
        	        }
5996
8
        	        if (HASFAILED())
5997
        	        {
5998
        	            return ;
5999
        	        }
6000
6001
6002
8
        	        if ( BACKTRACKING==0 )
6003
        	        {
6004
6005
8
        	                  cmd->reset(new ResetCommand());
6006
        	                  // reset the state of the parser, which is independent of the symbol
6007
        	                  // manager
6008
8
        	                  PARSER_STATE->reset();
6009
6010
        	        }
6011
6012
6013
        	    }
6014
8
        	    break;
6015
        	case 12:
6016
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:748:5: RESET_TOK ASSERTIONS_TOK
6017
        	    {
6018
        	         MATCHT(RESET_TOK, &FOLLOW_RESET_TOK_in_mainCommand2418);
6019
        	        if  (HASEXCEPTION())
6020
        	        {
6021
        	            goto rulemainCommandEx;
6022
        	        }
6023
        	        if (HASFAILED())
6024
        	        {
6025
        	            return ;
6026
        	        }
6027
6028
6029
        	         MATCHT(ASSERTIONS_TOK, &FOLLOW_ASSERTIONS_TOK_in_mainCommand2420);
6030
        	        if  (HASEXCEPTION())
6031
        	        {
6032
        	            goto rulemainCommandEx;
6033
        	        }
6034
        	        if (HASFAILED())
6035
        	        {
6036
        	            return ;
6037
        	        }
6038
6039
6040
        	        if ( BACKTRACKING==0 )
6041
        	        {
6042
        	             cmd->reset(new ResetAssertionsCommand());
6043
6044
        	        }
6045
6046
6047
        	    }
6048
        	    break;
6049
146
        	case 13:
6050
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:755:5: DATATYPE_TOK datatypeDef[dts] ( COMMA datatypeDef[dts] )* END_TOK
6051
        	    {
6052
146
        	         MATCHT(DATATYPE_TOK, &FOLLOW_DATATYPE_TOK_in_mainCommand2448);
6053
146
        	        if  (HASEXCEPTION())
6054
        	        {
6055
        	            goto rulemainCommandEx;
6056
        	        }
6057
146
        	        if (HASFAILED())
6058
        	        {
6059
        	            return ;
6060
        	        }
6061
6062
6063
146
        	        if ( BACKTRACKING==0 )
6064
        	        {
6065
        	             /* open a scope to keep the UnresolvedTypes contained */
6066
146
        	                  PARSER_STATE->pushScope();
6067
        	        }
6068
6069
6070
146
        	        FOLLOWPUSH(FOLLOW_datatypeDef_in_mainCommand2460);
6071
146
        	        datatypeDef(ctx, dts);
6072
6073
142
        	        FOLLOWPOP();
6074
142
        	        if  (HASEXCEPTION())
6075
        	        {
6076
        	            goto rulemainCommandEx;
6077
        	        }
6078
142
        	        if (HASFAILED())
6079
        	        {
6080
        	            return ;
6081
        	        }
6082
6083
6084
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:759:5: ( COMMA datatypeDef[dts] )*
6085
6086
        	        for (;;)
6087
        	        {
6088
210
        	            int alt16=2;
6089
210
        	            switch ( LA(1) )
6090
        	            {
6091
68
        	            case COMMA:
6092
        	            	{
6093
68
        	            		alt16=1;
6094
        	            	}
6095
68
        	                break;
6096
6097
        	            }
6098
6099
210
        	            switch (alt16)
6100
        	            {
6101
68
        	        	case 1:
6102
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:759:7: COMMA datatypeDef[dts]
6103
        	        	    {
6104
68
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_mainCommand2469);
6105
68
        	        	        if  (HASEXCEPTION())
6106
        	        	        {
6107
        	        	            goto rulemainCommandEx;
6108
        	        	        }
6109
68
        	        	        if (HASFAILED())
6110
        	        	        {
6111
        	        	            return ;
6112
        	        	        }
6113
6114
6115
68
        	        	        FOLLOWPUSH(FOLLOW_datatypeDef_in_mainCommand2471);
6116
68
        	        	        datatypeDef(ctx, dts);
6117
6118
68
        	        	        FOLLOWPOP();
6119
68
        	        	        if  (HASEXCEPTION())
6120
        	        	        {
6121
        	        	            goto rulemainCommandEx;
6122
        	        	        }
6123
68
        	        	        if (HASFAILED())
6124
        	        	        {
6125
        	        	            return ;
6126
        	        	        }
6127
6128
6129
        	        	    }
6130
68
        	        	    break;
6131
6132
142
        	        	default:
6133
142
        	        	    goto loop16;	/* break out of the loop */
6134
        	        	    break;
6135
        	            }
6136
68
        	        }
6137
142
        	        loop16: ; /* Jump out to here if this rule does not match */
6138
6139
6140
142
        	         MATCHT(END_TOK, &FOLLOW_END_TOK_in_mainCommand2481);
6141
142
        	        if  (HASEXCEPTION())
6142
        	        {
6143
        	            goto rulemainCommandEx;
6144
        	        }
6145
142
        	        if (HASFAILED())
6146
        	        {
6147
        	            return ;
6148
        	        }
6149
6150
6151
142
        	        if ( BACKTRACKING==0 )
6152
        	        {
6153
142
        	             PARSER_STATE->popScope();
6154
278
        	                  cmd->reset(new DatatypeDeclarationCommand(
6155
420
        	                      PARSER_STATE->bindMutualDatatypeTypes(dts)));
6156
6157
        	        }
6158
6159
6160
        	    }
6161
139
        	    break;
6162
        	case 14:
6163
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:766:5: CONTEXT_TOK ( ( str[s] | IDENTIFIER ) |)
6164
        	    {
6165
        	         MATCHT(CONTEXT_TOK, &FOLLOW_CONTEXT_TOK_in_mainCommand2494);
6166
        	        if  (HASEXCEPTION())
6167
        	        {
6168
        	            goto rulemainCommandEx;
6169
        	        }
6170
        	        if (HASFAILED())
6171
        	        {
6172
        	            return ;
6173
        	        }
6174
6175
6176
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:767:5: ( ( str[s] | IDENTIFIER ) |)
6177
        	        {
6178
        	            int alt18=2;
6179
        	            switch ( LA(1) )
6180
        	            {
6181
        	            case IDENTIFIER:
6182
        	            case STRING_LITERAL:
6183
        	            	{
6184
        	            		alt18=1;
6185
        	            	}
6186
        	                break;
6187
        	            case SEMICOLON:
6188
        	            	{
6189
        	            		alt18=2;
6190
        	            	}
6191
        	                break;
6192
6193
        	            default:
6194
        	                if (BACKTRACKING>0)
6195
        	                {
6196
        	                    FAILEDFLAG = ANTLR3_TRUE;
6197
        	                    return ;
6198
        	                }
6199
6200
        	                CONSTRUCTEX();
6201
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6202
        	                EXCEPTION->message      = (void *)"";
6203
        	                EXCEPTION->decisionNum  = 18;
6204
        	                EXCEPTION->state        = 0;
6205
6206
6207
        	                goto rulemainCommandEx;
6208
6209
        	            }
6210
6211
        	            switch (alt18)
6212
        	            {
6213
        	        	case 1:
6214
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:767:7: ( str[s] | IDENTIFIER )
6215
        	        	    {
6216
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:767:7: ( str[s] | IDENTIFIER )
6217
        	        	        {
6218
        	        	            int alt17=2;
6219
        	        	            switch ( LA(1) )
6220
        	        	            {
6221
        	        	            case STRING_LITERAL:
6222
        	        	            	{
6223
        	        	            		alt17=1;
6224
        	        	            	}
6225
        	        	                break;
6226
        	        	            case IDENTIFIER:
6227
        	        	            	{
6228
        	        	            		alt17=2;
6229
        	        	            	}
6230
        	        	                break;
6231
6232
        	        	            default:
6233
        	        	                if (BACKTRACKING>0)
6234
        	        	                {
6235
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
6236
        	        	                    return ;
6237
        	        	                }
6238
6239
        	        	                CONSTRUCTEX();
6240
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6241
        	        	                EXCEPTION->message      = (void *)"";
6242
        	        	                EXCEPTION->decisionNum  = 17;
6243
        	        	                EXCEPTION->state        = 0;
6244
6245
6246
        	        	                goto rulemainCommandEx;
6247
6248
        	        	            }
6249
6250
        	        	            switch (alt17)
6251
        	        	            {
6252
        	        	        	case 1:
6253
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:767:9: str[s]
6254
        	        	        	    {
6255
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2504);
6256
        	        	        	        str(ctx, s);
6257
6258
        	        	        	        FOLLOWPOP();
6259
        	        	        	        if  (HASEXCEPTION())
6260
        	        	        	        {
6261
        	        	        	            goto rulemainCommandEx;
6262
        	        	        	        }
6263
        	        	        	        if (HASFAILED())
6264
        	        	        	        {
6265
        	        	        	            return ;
6266
        	        	        	        }
6267
6268
6269
        	        	        	    }
6270
        	        	        	    break;
6271
        	        	        	case 2:
6272
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:767:18: IDENTIFIER
6273
        	        	        	    {
6274
        	        	        	        IDENTIFIER4 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2509);
6275
        	        	        	        if  (HASEXCEPTION())
6276
        	        	        	        {
6277
        	        	        	            goto rulemainCommandEx;
6278
        	        	        	        }
6279
        	        	        	        if (HASFAILED())
6280
        	        	        	        {
6281
        	        	        	            return ;
6282
        	        	        	        }
6283
6284
6285
        	        	        	        if ( BACKTRACKING==0 )
6286
        	        	        	        {
6287
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER4);
6288
        	        	        	        }
6289
6290
6291
        	        	        	    }
6292
        	        	        	    break;
6293
6294
        	        	            }
6295
        	        	        }
6296
6297
        	        	        if ( BACKTRACKING==0 )
6298
        	        	        {
6299
        	        	             UNSUPPORTED("CONTEXT command");
6300
        	        	        }
6301
6302
6303
        	        	    }
6304
        	        	    break;
6305
        	        	case 2:
6306
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:769:7:
6307
        	        	    {
6308
        	        	        if ( BACKTRACKING==0 )
6309
        	        	        {
6310
        	        	             UNSUPPORTED("CONTEXT command");
6311
        	        	        }
6312
6313
6314
        	        	    }
6315
        	        	    break;
6316
6317
        	            }
6318
        	        }
6319
6320
        	    }
6321
        	    break;
6322
        	case 15:
6323
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:772:5: FORGET_TOK identifier[id,CHECK_NONE,SYM_VARIABLE]
6324
        	    {
6325
        	         MATCHT(FORGET_TOK, &FOLLOW_FORGET_TOK_in_mainCommand2542);
6326
        	        if  (HASEXCEPTION())
6327
        	        {
6328
        	            goto rulemainCommandEx;
6329
        	        }
6330
        	        if (HASFAILED())
6331
        	        {
6332
        	            return ;
6333
        	        }
6334
6335
6336
        	        FOLLOWPUSH(FOLLOW_identifier_in_mainCommand2544);
6337
        	        identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
6338
6339
        	        FOLLOWPOP();
6340
        	        if  (HASEXCEPTION())
6341
        	        {
6342
        	            goto rulemainCommandEx;
6343
        	        }
6344
        	        if (HASFAILED())
6345
        	        {
6346
        	            return ;
6347
        	        }
6348
6349
6350
        	        if ( BACKTRACKING==0 )
6351
        	        {
6352
        	             UNSUPPORTED("FORGET command");
6353
        	        }
6354
6355
6356
        	    }
6357
        	    break;
6358
        	case 16:
6359
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:775:5: GET_TYPE_TOK formula[f]
6360
        	    {
6361
        	         MATCHT(GET_TYPE_TOK, &FOLLOW_GET_TYPE_TOK_in_mainCommand2558);
6362
        	        if  (HASEXCEPTION())
6363
        	        {
6364
        	            goto rulemainCommandEx;
6365
        	        }
6366
        	        if (HASFAILED())
6367
        	        {
6368
        	            return ;
6369
        	        }
6370
6371
6372
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2560);
6373
        	        formula(ctx, f);
6374
6375
        	        FOLLOWPOP();
6376
        	        if  (HASEXCEPTION())
6377
        	        {
6378
        	            goto rulemainCommandEx;
6379
        	        }
6380
        	        if (HASFAILED())
6381
        	        {
6382
        	            return ;
6383
        	        }
6384
6385
6386
        	        if ( BACKTRACKING==0 )
6387
        	        {
6388
        	             UNSUPPORTED("GET_TYPE command");
6389
        	        }
6390
6391
6392
        	    }
6393
        	    break;
6394
        	case 17:
6395
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:778:5: CHECK_TYPE_TOK formula[f] COLON type[t,CHECK_DECLARED]
6396
        	    {
6397
        	         MATCHT(CHECK_TYPE_TOK, &FOLLOW_CHECK_TYPE_TOK_in_mainCommand2574);
6398
        	        if  (HASEXCEPTION())
6399
        	        {
6400
        	            goto rulemainCommandEx;
6401
        	        }
6402
        	        if (HASFAILED())
6403
        	        {
6404
        	            return ;
6405
        	        }
6406
6407
6408
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2576);
6409
        	        formula(ctx, f);
6410
6411
        	        FOLLOWPOP();
6412
        	        if  (HASEXCEPTION())
6413
        	        {
6414
        	            goto rulemainCommandEx;
6415
        	        }
6416
        	        if (HASFAILED())
6417
        	        {
6418
        	            return ;
6419
        	        }
6420
6421
6422
        	         MATCHT(COLON, &FOLLOW_COLON_in_mainCommand2579);
6423
        	        if  (HASEXCEPTION())
6424
        	        {
6425
        	            goto rulemainCommandEx;
6426
        	        }
6427
        	        if (HASFAILED())
6428
        	        {
6429
        	            return ;
6430
        	        }
6431
6432
6433
        	        FOLLOWPUSH(FOLLOW_type_in_mainCommand2581);
6434
        	        type(ctx, t, CHECK_DECLARED);
6435
6436
        	        FOLLOWPOP();
6437
        	        if  (HASEXCEPTION())
6438
        	        {
6439
        	            goto rulemainCommandEx;
6440
        	        }
6441
        	        if (HASFAILED())
6442
        	        {
6443
        	            return ;
6444
        	        }
6445
6446
6447
        	        if ( BACKTRACKING==0 )
6448
        	        {
6449
        	             UNSUPPORTED("CHECK_TYPE command");
6450
        	        }
6451
6452
6453
        	    }
6454
        	    break;
6455
        	case 18:
6456
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:781:5: GET_CHILD_TOK formula[f] k= numeral
6457
        	    {
6458
        	         MATCHT(GET_CHILD_TOK, &FOLLOW_GET_CHILD_TOK_in_mainCommand2595);
6459
        	        if  (HASEXCEPTION())
6460
        	        {
6461
        	            goto rulemainCommandEx;
6462
        	        }
6463
        	        if (HASFAILED())
6464
        	        {
6465
        	            return ;
6466
        	        }
6467
6468
6469
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2597);
6470
        	        formula(ctx, f);
6471
6472
        	        FOLLOWPOP();
6473
        	        if  (HASEXCEPTION())
6474
        	        {
6475
        	            goto rulemainCommandEx;
6476
        	        }
6477
        	        if (HASFAILED())
6478
        	        {
6479
        	            return ;
6480
        	        }
6481
6482
6483
        	        FOLLOWPUSH(FOLLOW_numeral_in_mainCommand2602);
6484
        	        k=numeral(ctx);
6485
6486
        	        FOLLOWPOP();
6487
        	        if  (HASEXCEPTION())
6488
        	        {
6489
        	            goto rulemainCommandEx;
6490
        	        }
6491
        	        if (HASFAILED())
6492
        	        {
6493
        	            return ;
6494
        	        }
6495
6496
6497
        	        if ( BACKTRACKING==0 )
6498
        	        {
6499
        	             UNSUPPORTED("GET_CHILD command");
6500
        	        }
6501
6502
6503
        	    }
6504
        	    break;
6505
        	case 19:
6506
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:784:5: GET_OP_TOK formula[f]
6507
        	    {
6508
        	         MATCHT(GET_OP_TOK, &FOLLOW_GET_OP_TOK_in_mainCommand2615);
6509
        	        if  (HASEXCEPTION())
6510
        	        {
6511
        	            goto rulemainCommandEx;
6512
        	        }
6513
        	        if (HASFAILED())
6514
        	        {
6515
        	            return ;
6516
        	        }
6517
6518
6519
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2617);
6520
        	        formula(ctx, f);
6521
6522
        	        FOLLOWPOP();
6523
        	        if  (HASEXCEPTION())
6524
        	        {
6525
        	            goto rulemainCommandEx;
6526
        	        }
6527
        	        if (HASFAILED())
6528
        	        {
6529
        	            return ;
6530
        	        }
6531
6532
6533
        	        if ( BACKTRACKING==0 )
6534
        	        {
6535
        	             UNSUPPORTED("GET_OP command");
6536
        	        }
6537
6538
6539
        	    }
6540
        	    break;
6541
6
        	case 20:
6542
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:787:5: GET_VALUE_TOK formula[f]
6543
        	    {
6544
6
        	         MATCHT(GET_VALUE_TOK, &FOLLOW_GET_VALUE_TOK_in_mainCommand2631);
6545
6
        	        if  (HASEXCEPTION())
6546
        	        {
6547
        	            goto rulemainCommandEx;
6548
        	        }
6549
6
        	        if (HASFAILED())
6550
        	        {
6551
        	            return ;
6552
        	        }
6553
6554
6555
6
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2633);
6556
6
        	        formula(ctx, f);
6557
6558
6
        	        FOLLOWPOP();
6559
6
        	        if  (HASEXCEPTION())
6560
        	        {
6561
        	            goto rulemainCommandEx;
6562
        	        }
6563
6
        	        if (HASFAILED())
6564
        	        {
6565
        	            return ;
6566
        	        }
6567
6568
6569
6
        	        if ( BACKTRACKING==0 )
6570
        	        {
6571
6
        	             cmd->reset(new GetValueCommand(f));
6572
        	        }
6573
6574
6575
        	    }
6576
6
        	    break;
6577
        	case 21:
6578
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:790:5: SUBSTITUTE_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] EQUAL_TOK formula[f] LBRACKET identifier[id,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[f] RBRACKET
6579
        	    {
6580
        	         MATCHT(SUBSTITUTE_TOK, &FOLLOW_SUBSTITUTE_TOK_in_mainCommand2647);
6581
        	        if  (HASEXCEPTION())
6582
        	        {
6583
        	            goto rulemainCommandEx;
6584
        	        }
6585
        	        if (HASFAILED())
6586
        	        {
6587
        	            return ;
6588
        	        }
6589
6590
6591
        	        FOLLOWPUSH(FOLLOW_identifier_in_mainCommand2649);
6592
        	        identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
6593
6594
        	        FOLLOWPOP();
6595
        	        if  (HASEXCEPTION())
6596
        	        {
6597
        	            goto rulemainCommandEx;
6598
        	        }
6599
        	        if (HASFAILED())
6600
        	        {
6601
        	            return ;
6602
        	        }
6603
6604
6605
        	         MATCHT(COLON, &FOLLOW_COLON_in_mainCommand2652);
6606
        	        if  (HASEXCEPTION())
6607
        	        {
6608
        	            goto rulemainCommandEx;
6609
        	        }
6610
        	        if (HASFAILED())
6611
        	        {
6612
        	            return ;
6613
        	        }
6614
6615
6616
        	        FOLLOWPUSH(FOLLOW_type_in_mainCommand2658);
6617
        	        type(ctx, t, CHECK_DECLARED);
6618
6619
        	        FOLLOWPOP();
6620
        	        if  (HASEXCEPTION())
6621
        	        {
6622
        	            goto rulemainCommandEx;
6623
        	        }
6624
        	        if (HASFAILED())
6625
        	        {
6626
        	            return ;
6627
        	        }
6628
6629
6630
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_mainCommand2661);
6631
        	        if  (HASEXCEPTION())
6632
        	        {
6633
        	            goto rulemainCommandEx;
6634
        	        }
6635
        	        if (HASFAILED())
6636
        	        {
6637
        	            return ;
6638
        	        }
6639
6640
6641
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2663);
6642
        	        formula(ctx, f);
6643
6644
        	        FOLLOWPOP();
6645
        	        if  (HASEXCEPTION())
6646
        	        {
6647
        	            goto rulemainCommandEx;
6648
        	        }
6649
        	        if (HASFAILED())
6650
        	        {
6651
        	            return ;
6652
        	        }
6653
6654
6655
        	         MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_mainCommand2666);
6656
        	        if  (HASEXCEPTION())
6657
        	        {
6658
        	            goto rulemainCommandEx;
6659
        	        }
6660
        	        if (HASFAILED())
6661
        	        {
6662
        	            return ;
6663
        	        }
6664
6665
6666
        	        FOLLOWPUSH(FOLLOW_identifier_in_mainCommand2672);
6667
        	        identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
6668
6669
        	        FOLLOWPOP();
6670
        	        if  (HASEXCEPTION())
6671
        	        {
6672
        	            goto rulemainCommandEx;
6673
        	        }
6674
        	        if (HASFAILED())
6675
        	        {
6676
        	            return ;
6677
        	        }
6678
6679
6680
        	         MATCHT(ASSIGN_TOK, &FOLLOW_ASSIGN_TOK_in_mainCommand2675);
6681
        	        if  (HASEXCEPTION())
6682
        	        {
6683
        	            goto rulemainCommandEx;
6684
        	        }
6685
        	        if (HASFAILED())
6686
        	        {
6687
        	            return ;
6688
        	        }
6689
6690
6691
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2677);
6692
        	        formula(ctx, f);
6693
6694
        	        FOLLOWPOP();
6695
        	        if  (HASEXCEPTION())
6696
        	        {
6697
        	            goto rulemainCommandEx;
6698
        	        }
6699
        	        if (HASFAILED())
6700
        	        {
6701
        	            return ;
6702
        	        }
6703
6704
6705
        	         MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_mainCommand2680);
6706
        	        if  (HASEXCEPTION())
6707
        	        {
6708
        	            goto rulemainCommandEx;
6709
        	        }
6710
        	        if (HASFAILED())
6711
        	        {
6712
        	            return ;
6713
        	        }
6714
6715
6716
        	        if ( BACKTRACKING==0 )
6717
        	        {
6718
        	             UNSUPPORTED("SUBSTITUTE command");
6719
        	        }
6720
6721
6722
        	    }
6723
        	    break;
6724
        	case 22:
6725
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:797:5: DBG_TOK ( ( str[s] | IDENTIFIER ) |)
6726
        	    {
6727
        	         MATCHT(DBG_TOK, &FOLLOW_DBG_TOK_in_mainCommand2699);
6728
        	        if  (HASEXCEPTION())
6729
        	        {
6730
        	            goto rulemainCommandEx;
6731
        	        }
6732
        	        if (HASFAILED())
6733
        	        {
6734
        	            return ;
6735
        	        }
6736
6737
6738
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:798:5: ( ( str[s] | IDENTIFIER ) |)
6739
        	        {
6740
        	            int alt20=2;
6741
        	            switch ( LA(1) )
6742
        	            {
6743
        	            case IDENTIFIER:
6744
        	            case STRING_LITERAL:
6745
        	            	{
6746
        	            		alt20=1;
6747
        	            	}
6748
        	                break;
6749
        	            case SEMICOLON:
6750
        	            	{
6751
        	            		alt20=2;
6752
        	            	}
6753
        	                break;
6754
6755
        	            default:
6756
        	                if (BACKTRACKING>0)
6757
        	                {
6758
        	                    FAILEDFLAG = ANTLR3_TRUE;
6759
        	                    return ;
6760
        	                }
6761
6762
        	                CONSTRUCTEX();
6763
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6764
        	                EXCEPTION->message      = (void *)"";
6765
        	                EXCEPTION->decisionNum  = 20;
6766
        	                EXCEPTION->state        = 0;
6767
6768
6769
        	                goto rulemainCommandEx;
6770
6771
        	            }
6772
6773
        	            switch (alt20)
6774
        	            {
6775
        	        	case 1:
6776
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:798:7: ( str[s] | IDENTIFIER )
6777
        	        	    {
6778
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:798:7: ( str[s] | IDENTIFIER )
6779
        	        	        {
6780
        	        	            int alt19=2;
6781
        	        	            switch ( LA(1) )
6782
        	        	            {
6783
        	        	            case STRING_LITERAL:
6784
        	        	            	{
6785
        	        	            		alt19=1;
6786
        	        	            	}
6787
        	        	                break;
6788
        	        	            case IDENTIFIER:
6789
        	        	            	{
6790
        	        	            		alt19=2;
6791
        	        	            	}
6792
        	        	                break;
6793
6794
        	        	            default:
6795
        	        	                if (BACKTRACKING>0)
6796
        	        	                {
6797
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
6798
        	        	                    return ;
6799
        	        	                }
6800
6801
        	        	                CONSTRUCTEX();
6802
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6803
        	        	                EXCEPTION->message      = (void *)"";
6804
        	        	                EXCEPTION->decisionNum  = 19;
6805
        	        	                EXCEPTION->state        = 0;
6806
6807
6808
        	        	                goto rulemainCommandEx;
6809
6810
        	        	            }
6811
6812
        	        	            switch (alt19)
6813
        	        	            {
6814
        	        	        	case 1:
6815
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:798:9: str[s]
6816
        	        	        	    {
6817
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2709);
6818
        	        	        	        str(ctx, s);
6819
6820
        	        	        	        FOLLOWPOP();
6821
        	        	        	        if  (HASEXCEPTION())
6822
        	        	        	        {
6823
        	        	        	            goto rulemainCommandEx;
6824
        	        	        	        }
6825
        	        	        	        if (HASFAILED())
6826
        	        	        	        {
6827
        	        	        	            return ;
6828
        	        	        	        }
6829
6830
6831
        	        	        	    }
6832
        	        	        	    break;
6833
        	        	        	case 2:
6834
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:798:18: IDENTIFIER
6835
        	        	        	    {
6836
        	        	        	        IDENTIFIER5 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2714);
6837
        	        	        	        if  (HASEXCEPTION())
6838
        	        	        	        {
6839
        	        	        	            goto rulemainCommandEx;
6840
        	        	        	        }
6841
        	        	        	        if (HASFAILED())
6842
        	        	        	        {
6843
        	        	        	            return ;
6844
        	        	        	        }
6845
6846
6847
        	        	        	        if ( BACKTRACKING==0 )
6848
        	        	        	        {
6849
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER5);
6850
        	        	        	        }
6851
6852
6853
        	        	        	    }
6854
        	        	        	    break;
6855
6856
        	        	            }
6857
        	        	        }
6858
6859
        	        	        if ( BACKTRACKING==0 )
6860
        	        	        {
6861
        	        	             Debug.on(s); Trace.on(s);
6862
        	        	        }
6863
6864
6865
        	        	    }
6866
        	        	    break;
6867
        	        	case 2:
6868
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:800:7:
6869
        	        	    {
6870
        	        	        if ( BACKTRACKING==0 )
6871
        	        	        {
6872
        	        	             CVC5Message() << "Please specify what to debug." << std::endl;
6873
        	        	        }
6874
6875
6876
        	        	    }
6877
        	        	    break;
6878
6879
        	            }
6880
        	        }
6881
6882
        	    }
6883
        	    break;
6884
        	case 23:
6885
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:803:5: TRACE_TOK ( ( str[s] | IDENTIFIER ) |)
6886
        	    {
6887
        	         MATCHT(TRACE_TOK, &FOLLOW_TRACE_TOK_in_mainCommand2747);
6888
        	        if  (HASEXCEPTION())
6889
        	        {
6890
        	            goto rulemainCommandEx;
6891
        	        }
6892
        	        if (HASFAILED())
6893
        	        {
6894
        	            return ;
6895
        	        }
6896
6897
6898
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:804:5: ( ( str[s] | IDENTIFIER ) |)
6899
        	        {
6900
        	            int alt22=2;
6901
        	            switch ( LA(1) )
6902
        	            {
6903
        	            case IDENTIFIER:
6904
        	            case STRING_LITERAL:
6905
        	            	{
6906
        	            		alt22=1;
6907
        	            	}
6908
        	                break;
6909
        	            case SEMICOLON:
6910
        	            	{
6911
        	            		alt22=2;
6912
        	            	}
6913
        	                break;
6914
6915
        	            default:
6916
        	                if (BACKTRACKING>0)
6917
        	                {
6918
        	                    FAILEDFLAG = ANTLR3_TRUE;
6919
        	                    return ;
6920
        	                }
6921
6922
        	                CONSTRUCTEX();
6923
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6924
        	                EXCEPTION->message      = (void *)"";
6925
        	                EXCEPTION->decisionNum  = 22;
6926
        	                EXCEPTION->state        = 0;
6927
6928
6929
        	                goto rulemainCommandEx;
6930
6931
        	            }
6932
6933
        	            switch (alt22)
6934
        	            {
6935
        	        	case 1:
6936
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:804:7: ( str[s] | IDENTIFIER )
6937
        	        	    {
6938
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:804:7: ( str[s] | IDENTIFIER )
6939
        	        	        {
6940
        	        	            int alt21=2;
6941
        	        	            switch ( LA(1) )
6942
        	        	            {
6943
        	        	            case STRING_LITERAL:
6944
        	        	            	{
6945
        	        	            		alt21=1;
6946
        	        	            	}
6947
        	        	                break;
6948
        	        	            case IDENTIFIER:
6949
        	        	            	{
6950
        	        	            		alt21=2;
6951
        	        	            	}
6952
        	        	                break;
6953
6954
        	        	            default:
6955
        	        	                if (BACKTRACKING>0)
6956
        	        	                {
6957
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
6958
        	        	                    return ;
6959
        	        	                }
6960
6961
        	        	                CONSTRUCTEX();
6962
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6963
        	        	                EXCEPTION->message      = (void *)"";
6964
        	        	                EXCEPTION->decisionNum  = 21;
6965
        	        	                EXCEPTION->state        = 0;
6966
6967
6968
        	        	                goto rulemainCommandEx;
6969
6970
        	        	            }
6971
6972
        	        	            switch (alt21)
6973
        	        	            {
6974
        	        	        	case 1:
6975
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:804:9: str[s]
6976
        	        	        	    {
6977
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2757);
6978
        	        	        	        str(ctx, s);
6979
6980
        	        	        	        FOLLOWPOP();
6981
        	        	        	        if  (HASEXCEPTION())
6982
        	        	        	        {
6983
        	        	        	            goto rulemainCommandEx;
6984
        	        	        	        }
6985
        	        	        	        if (HASFAILED())
6986
        	        	        	        {
6987
        	        	        	            return ;
6988
        	        	        	        }
6989
6990
6991
        	        	        	    }
6992
        	        	        	    break;
6993
        	        	        	case 2:
6994
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:804:18: IDENTIFIER
6995
        	        	        	    {
6996
        	        	        	        IDENTIFIER6 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2762);
6997
        	        	        	        if  (HASEXCEPTION())
6998
        	        	        	        {
6999
        	        	        	            goto rulemainCommandEx;
7000
        	        	        	        }
7001
        	        	        	        if (HASFAILED())
7002
        	        	        	        {
7003
        	        	        	            return ;
7004
        	        	        	        }
7005
7006
7007
        	        	        	        if ( BACKTRACKING==0 )
7008
        	        	        	        {
7009
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER6);
7010
        	        	        	        }
7011
7012
7013
        	        	        	    }
7014
        	        	        	    break;
7015
7016
        	        	            }
7017
        	        	        }
7018
7019
        	        	        if ( BACKTRACKING==0 )
7020
        	        	        {
7021
        	        	             Trace.on(s);
7022
        	        	        }
7023
7024
7025
        	        	    }
7026
        	        	    break;
7027
        	        	case 2:
7028
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:806:7:
7029
        	        	    {
7030
        	        	        if ( BACKTRACKING==0 )
7031
        	        	        {
7032
        	        	             CVC5Message() << "Please specify something to trace." << std::endl;
7033
        	        	        }
7034
7035
7036
        	        	    }
7037
        	        	    break;
7038
7039
        	            }
7040
        	        }
7041
7042
        	    }
7043
        	    break;
7044
        	case 24:
7045
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:808:5: UNTRACE_TOK ( ( str[s] | IDENTIFIER ) |)
7046
        	    {
7047
        	         MATCHT(UNTRACE_TOK, &FOLLOW_UNTRACE_TOK_in_mainCommand2794);
7048
        	        if  (HASEXCEPTION())
7049
        	        {
7050
        	            goto rulemainCommandEx;
7051
        	        }
7052
        	        if (HASFAILED())
7053
        	        {
7054
        	            return ;
7055
        	        }
7056
7057
7058
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:809:5: ( ( str[s] | IDENTIFIER ) |)
7059
        	        {
7060
        	            int alt24=2;
7061
        	            switch ( LA(1) )
7062
        	            {
7063
        	            case IDENTIFIER:
7064
        	            case STRING_LITERAL:
7065
        	            	{
7066
        	            		alt24=1;
7067
        	            	}
7068
        	                break;
7069
        	            case SEMICOLON:
7070
        	            	{
7071
        	            		alt24=2;
7072
        	            	}
7073
        	                break;
7074
7075
        	            default:
7076
        	                if (BACKTRACKING>0)
7077
        	                {
7078
        	                    FAILEDFLAG = ANTLR3_TRUE;
7079
        	                    return ;
7080
        	                }
7081
7082
        	                CONSTRUCTEX();
7083
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7084
        	                EXCEPTION->message      = (void *)"";
7085
        	                EXCEPTION->decisionNum  = 24;
7086
        	                EXCEPTION->state        = 0;
7087
7088
7089
        	                goto rulemainCommandEx;
7090
7091
        	            }
7092
7093
        	            switch (alt24)
7094
        	            {
7095
        	        	case 1:
7096
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:809:7: ( str[s] | IDENTIFIER )
7097
        	        	    {
7098
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:809:7: ( str[s] | IDENTIFIER )
7099
        	        	        {
7100
        	        	            int alt23=2;
7101
        	        	            switch ( LA(1) )
7102
        	        	            {
7103
        	        	            case STRING_LITERAL:
7104
        	        	            	{
7105
        	        	            		alt23=1;
7106
        	        	            	}
7107
        	        	                break;
7108
        	        	            case IDENTIFIER:
7109
        	        	            	{
7110
        	        	            		alt23=2;
7111
        	        	            	}
7112
        	        	                break;
7113
7114
        	        	            default:
7115
        	        	                if (BACKTRACKING>0)
7116
        	        	                {
7117
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
7118
        	        	                    return ;
7119
        	        	                }
7120
7121
        	        	                CONSTRUCTEX();
7122
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7123
        	        	                EXCEPTION->message      = (void *)"";
7124
        	        	                EXCEPTION->decisionNum  = 23;
7125
        	        	                EXCEPTION->state        = 0;
7126
7127
7128
        	        	                goto rulemainCommandEx;
7129
7130
        	        	            }
7131
7132
        	        	            switch (alt23)
7133
        	        	            {
7134
        	        	        	case 1:
7135
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:809:9: str[s]
7136
        	        	        	    {
7137
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2804);
7138
        	        	        	        str(ctx, s);
7139
7140
        	        	        	        FOLLOWPOP();
7141
        	        	        	        if  (HASEXCEPTION())
7142
        	        	        	        {
7143
        	        	        	            goto rulemainCommandEx;
7144
        	        	        	        }
7145
        	        	        	        if (HASFAILED())
7146
        	        	        	        {
7147
        	        	        	            return ;
7148
        	        	        	        }
7149
7150
7151
        	        	        	    }
7152
        	        	        	    break;
7153
        	        	        	case 2:
7154
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:809:18: IDENTIFIER
7155
        	        	        	    {
7156
        	        	        	        IDENTIFIER7 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2809);
7157
        	        	        	        if  (HASEXCEPTION())
7158
        	        	        	        {
7159
        	        	        	            goto rulemainCommandEx;
7160
        	        	        	        }
7161
        	        	        	        if (HASFAILED())
7162
        	        	        	        {
7163
        	        	        	            return ;
7164
        	        	        	        }
7165
7166
7167
        	        	        	        if ( BACKTRACKING==0 )
7168
        	        	        	        {
7169
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER7);
7170
        	        	        	        }
7171
7172
7173
        	        	        	    }
7174
        	        	        	    break;
7175
7176
        	        	            }
7177
        	        	        }
7178
7179
        	        	        if ( BACKTRACKING==0 )
7180
        	        	        {
7181
        	        	             Trace.off(s);
7182
        	        	        }
7183
7184
7185
        	        	    }
7186
        	        	    break;
7187
        	        	case 2:
7188
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:811:7:
7189
        	        	    {
7190
        	        	        if ( BACKTRACKING==0 )
7191
        	        	        {
7192
        	        	             CVC5Message() << "Please specify something to untrace." << std::endl;
7193
        	        	        }
7194
7195
7196
        	        	    }
7197
        	        	    break;
7198
7199
        	            }
7200
        	        }
7201
7202
        	    }
7203
        	    break;
7204
        	case 25:
7205
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:814:5: HELP_TOK ( ( str[s] | IDENTIFIER ) |)
7206
        	    {
7207
        	         MATCHT(HELP_TOK, &FOLLOW_HELP_TOK_in_mainCommand2842);
7208
        	        if  (HASEXCEPTION())
7209
        	        {
7210
        	            goto rulemainCommandEx;
7211
        	        }
7212
        	        if (HASFAILED())
7213
        	        {
7214
        	            return ;
7215
        	        }
7216
7217
7218
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:815:5: ( ( str[s] | IDENTIFIER ) |)
7219
        	        {
7220
        	            int alt26=2;
7221
        	            switch ( LA(1) )
7222
        	            {
7223
        	            case IDENTIFIER:
7224
        	            case STRING_LITERAL:
7225
        	            	{
7226
        	            		alt26=1;
7227
        	            	}
7228
        	                break;
7229
        	            case SEMICOLON:
7230
        	            	{
7231
        	            		alt26=2;
7232
        	            	}
7233
        	                break;
7234
7235
        	            default:
7236
        	                if (BACKTRACKING>0)
7237
        	                {
7238
        	                    FAILEDFLAG = ANTLR3_TRUE;
7239
        	                    return ;
7240
        	                }
7241
7242
        	                CONSTRUCTEX();
7243
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7244
        	                EXCEPTION->message      = (void *)"";
7245
        	                EXCEPTION->decisionNum  = 26;
7246
        	                EXCEPTION->state        = 0;
7247
7248
7249
        	                goto rulemainCommandEx;
7250
7251
        	            }
7252
7253
        	            switch (alt26)
7254
        	            {
7255
        	        	case 1:
7256
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:815:7: ( str[s] | IDENTIFIER )
7257
        	        	    {
7258
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:815:7: ( str[s] | IDENTIFIER )
7259
        	        	        {
7260
        	        	            int alt25=2;
7261
        	        	            switch ( LA(1) )
7262
        	        	            {
7263
        	        	            case STRING_LITERAL:
7264
        	        	            	{
7265
        	        	            		alt25=1;
7266
        	        	            	}
7267
        	        	                break;
7268
        	        	            case IDENTIFIER:
7269
        	        	            	{
7270
        	        	            		alt25=2;
7271
        	        	            	}
7272
        	        	                break;
7273
7274
        	        	            default:
7275
        	        	                if (BACKTRACKING>0)
7276
        	        	                {
7277
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
7278
        	        	                    return ;
7279
        	        	                }
7280
7281
        	        	                CONSTRUCTEX();
7282
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7283
        	        	                EXCEPTION->message      = (void *)"";
7284
        	        	                EXCEPTION->decisionNum  = 25;
7285
        	        	                EXCEPTION->state        = 0;
7286
7287
7288
        	        	                goto rulemainCommandEx;
7289
7290
        	        	            }
7291
7292
        	        	            switch (alt25)
7293
        	        	            {
7294
        	        	        	case 1:
7295
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:815:9: str[s]
7296
        	        	        	    {
7297
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand2852);
7298
        	        	        	        str(ctx, s);
7299
7300
        	        	        	        FOLLOWPOP();
7301
        	        	        	        if  (HASEXCEPTION())
7302
        	        	        	        {
7303
        	        	        	            goto rulemainCommandEx;
7304
        	        	        	        }
7305
        	        	        	        if (HASFAILED())
7306
        	        	        	        {
7307
        	        	        	            return ;
7308
        	        	        	        }
7309
7310
7311
        	        	        	    }
7312
        	        	        	    break;
7313
        	        	        	case 2:
7314
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:815:18: IDENTIFIER
7315
        	        	        	    {
7316
        	        	        	        IDENTIFIER8 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand2857);
7317
        	        	        	        if  (HASEXCEPTION())
7318
        	        	        	        {
7319
        	        	        	            goto rulemainCommandEx;
7320
        	        	        	        }
7321
        	        	        	        if (HASFAILED())
7322
        	        	        	        {
7323
        	        	        	            return ;
7324
        	        	        	        }
7325
7326
7327
        	        	        	        if ( BACKTRACKING==0 )
7328
        	        	        	        {
7329
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER8);
7330
        	        	        	        }
7331
7332
7333
        	        	        	    }
7334
        	        	        	    break;
7335
7336
        	        	            }
7337
        	        	        }
7338
7339
        	        	        if ( BACKTRACKING==0 )
7340
        	        	        {
7341
        	        	             CVC5Message() << "No help available for `" << s << "'." << std::endl;
7342
        	        	        }
7343
7344
7345
        	        	    }
7346
        	        	    break;
7347
        	        	case 2:
7348
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:817:7:
7349
        	        	    {
7350
        	        	        if ( BACKTRACKING==0 )
7351
        	        	        {
7352
        	        	             CVC5Message() << "Please use --help at the command line for help."
7353
        	        	                            << std::endl;
7354
        	        	        }
7355
7356
7357
        	        	    }
7358
        	        	    break;
7359
7360
        	            }
7361
        	        }
7362
7363
        	    }
7364
        	    break;
7365
        	case 26:
7366
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:821:5: TRANSFORM_TOK formula[f]
7367
        	    {
7368
        	         MATCHT(TRANSFORM_TOK, &FOLLOW_TRANSFORM_TOK_in_mainCommand2898);
7369
        	        if  (HASEXCEPTION())
7370
        	        {
7371
        	            goto rulemainCommandEx;
7372
        	        }
7373
        	        if (HASFAILED())
7374
        	        {
7375
        	            return ;
7376
        	        }
7377
7378
7379
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2900);
7380
        	        formula(ctx, f);
7381
7382
        	        FOLLOWPOP();
7383
        	        if  (HASEXCEPTION())
7384
        	        {
7385
        	            goto rulemainCommandEx;
7386
        	        }
7387
        	        if (HASFAILED())
7388
        	        {
7389
        	            return ;
7390
        	        }
7391
7392
7393
        	        if ( BACKTRACKING==0 )
7394
        	        {
7395
        	             cmd->reset(new SimplifyCommand(f));
7396
        	        }
7397
7398
7399
        	    }
7400
        	    break;
7401
        	case 27:
7402
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:824:5: PRINT_TOK formula[f]
7403
        	    {
7404
        	         MATCHT(PRINT_TOK, &FOLLOW_PRINT_TOK_in_mainCommand2914);
7405
        	        if  (HASEXCEPTION())
7406
        	        {
7407
        	            goto rulemainCommandEx;
7408
        	        }
7409
        	        if (HASFAILED())
7410
        	        {
7411
        	            return ;
7412
        	        }
7413
7414
7415
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2916);
7416
        	        formula(ctx, f);
7417
7418
        	        FOLLOWPOP();
7419
        	        if  (HASEXCEPTION())
7420
        	        {
7421
        	            goto rulemainCommandEx;
7422
        	        }
7423
        	        if (HASFAILED())
7424
        	        {
7425
        	            return ;
7426
        	        }
7427
7428
7429
        	        if ( BACKTRACKING==0 )
7430
        	        {
7431
        	             UNSUPPORTED("PRINT command");
7432
        	        }
7433
7434
7435
        	    }
7436
        	    break;
7437
        	case 28:
7438
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:826:5: PRINT_TYPE_TOK type[t,CHECK_DECLARED]
7439
        	    {
7440
        	         MATCHT(PRINT_TYPE_TOK, &FOLLOW_PRINT_TYPE_TOK_in_mainCommand2929);
7441
        	        if  (HASEXCEPTION())
7442
        	        {
7443
        	            goto rulemainCommandEx;
7444
        	        }
7445
        	        if (HASFAILED())
7446
        	        {
7447
        	            return ;
7448
        	        }
7449
7450
7451
        	        FOLLOWPUSH(FOLLOW_type_in_mainCommand2931);
7452
        	        type(ctx, t, CHECK_DECLARED);
7453
7454
        	        FOLLOWPOP();
7455
        	        if  (HASEXCEPTION())
7456
        	        {
7457
        	            goto rulemainCommandEx;
7458
        	        }
7459
        	        if (HASFAILED())
7460
        	        {
7461
        	            return ;
7462
        	        }
7463
7464
7465
        	        if ( BACKTRACKING==0 )
7466
        	        {
7467
        	             UNSUPPORTED("PRINT_TYPE command");
7468
        	        }
7469
7470
7471
        	    }
7472
        	    break;
7473
        	case 29:
7474
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:829:5: CALL_TOK identifier[id,CHECK_NONE,SYM_VARIABLE] formula[f]
7475
        	    {
7476
        	         MATCHT(CALL_TOK, &FOLLOW_CALL_TOK_in_mainCommand2945);
7477
        	        if  (HASEXCEPTION())
7478
        	        {
7479
        	            goto rulemainCommandEx;
7480
        	        }
7481
        	        if (HASFAILED())
7482
        	        {
7483
        	            return ;
7484
        	        }
7485
7486
7487
        	        FOLLOWPUSH(FOLLOW_identifier_in_mainCommand2947);
7488
        	        identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
7489
7490
        	        FOLLOWPOP();
7491
        	        if  (HASEXCEPTION())
7492
        	        {
7493
        	            goto rulemainCommandEx;
7494
        	        }
7495
        	        if (HASFAILED())
7496
        	        {
7497
        	            return ;
7498
        	        }
7499
7500
7501
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand2950);
7502
        	        formula(ctx, f);
7503
7504
        	        FOLLOWPOP();
7505
        	        if  (HASEXCEPTION())
7506
        	        {
7507
        	            goto rulemainCommandEx;
7508
        	        }
7509
        	        if (HASFAILED())
7510
        	        {
7511
        	            return ;
7512
        	        }
7513
7514
7515
        	        if ( BACKTRACKING==0 )
7516
        	        {
7517
        	             UNSUPPORTED("CALL command");
7518
        	        }
7519
7520
7521
        	    }
7522
        	    break;
7523
        	case 30:
7524
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:832:5: ECHO_TOK ( simpleSymbolicExpr[s] |)
7525
        	    {
7526
        	         MATCHT(ECHO_TOK, &FOLLOW_ECHO_TOK_in_mainCommand2964);
7527
        	        if  (HASEXCEPTION())
7528
        	        {
7529
        	            goto rulemainCommandEx;
7530
        	        }
7531
        	        if (HASFAILED())
7532
        	        {
7533
        	            return ;
7534
        	        }
7535
7536
7537
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:833:5: ( simpleSymbolicExpr[s] |)
7538
        	        {
7539
        	            int alt27=2;
7540
        	            switch ( LA(1) )
7541
        	            {
7542
        	            case BINARY_LITERAL:
7543
        	            case DECIMAL_LITERAL:
7544
        	            case HEX_LITERAL:
7545
        	            case IDENTIFIER:
7546
        	            case INTEGER_LITERAL:
7547
        	            case MINUS_TOK:
7548
        	            case STRING_LITERAL:
7549
        	            	{
7550
        	            		alt27=1;
7551
        	            	}
7552
        	                break;
7553
        	            case SEMICOLON:
7554
        	            	{
7555
        	            		alt27=2;
7556
        	            	}
7557
        	                break;
7558
7559
        	            default:
7560
        	                if (BACKTRACKING>0)
7561
        	                {
7562
        	                    FAILEDFLAG = ANTLR3_TRUE;
7563
        	                    return ;
7564
        	                }
7565
7566
        	                CONSTRUCTEX();
7567
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7568
        	                EXCEPTION->message      = (void *)"";
7569
        	                EXCEPTION->decisionNum  = 27;
7570
        	                EXCEPTION->state        = 0;
7571
7572
7573
        	                goto rulemainCommandEx;
7574
7575
        	            }
7576
7577
        	            switch (alt27)
7578
        	            {
7579
        	        	case 1:
7580
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:833:7: simpleSymbolicExpr[s]
7581
        	        	    {
7582
        	        	        FOLLOWPUSH(FOLLOW_simpleSymbolicExpr_in_mainCommand2972);
7583
        	        	        simpleSymbolicExpr(ctx, s);
7584
7585
        	        	        FOLLOWPOP();
7586
        	        	        if  (HASEXCEPTION())
7587
        	        	        {
7588
        	        	            goto rulemainCommandEx;
7589
        	        	        }
7590
        	        	        if (HASFAILED())
7591
        	        	        {
7592
        	        	            return ;
7593
        	        	        }
7594
7595
7596
        	        	        if ( BACKTRACKING==0 )
7597
        	        	        {
7598
        	        	             cmd->reset(new EchoCommand(s));
7599
        	        	        }
7600
7601
7602
        	        	    }
7603
        	        	    break;
7604
        	        	case 2:
7605
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:835:7:
7606
        	        	    {
7607
        	        	        if ( BACKTRACKING==0 )
7608
        	        	        {
7609
        	        	             cmd->reset(new EchoCommand());
7610
        	        	        }
7611
7612
7613
        	        	    }
7614
        	        	    break;
7615
7616
        	            }
7617
        	        }
7618
7619
        	    }
7620
        	    break;
7621
        	case 31:
7622
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:838:5: EXIT_TOK
7623
        	    {
7624
        	         MATCHT(EXIT_TOK, &FOLLOW_EXIT_TOK_in_mainCommand3002);
7625
        	        if  (HASEXCEPTION())
7626
        	        {
7627
        	            goto rulemainCommandEx;
7628
        	        }
7629
        	        if (HASFAILED())
7630
        	        {
7631
        	            return ;
7632
        	        }
7633
7634
7635
        	        if ( BACKTRACKING==0 )
7636
        	        {
7637
        	             cmd->reset(new QuitCommand());
7638
        	        }
7639
7640
7641
        	    }
7642
        	    break;
7643
        	case 32:
7644
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:841:5: INCLUDE_TOK ( ( str[s] | IDENTIFIER ) |)
7645
        	    {
7646
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_mainCommand3015);
7647
        	        if  (HASEXCEPTION())
7648
        	        {
7649
        	            goto rulemainCommandEx;
7650
        	        }
7651
        	        if (HASFAILED())
7652
        	        {
7653
        	            return ;
7654
        	        }
7655
7656
7657
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:842:5: ( ( str[s] | IDENTIFIER ) |)
7658
        	        {
7659
        	            int alt29=2;
7660
        	            switch ( LA(1) )
7661
        	            {
7662
        	            case IDENTIFIER:
7663
        	            case STRING_LITERAL:
7664
        	            	{
7665
        	            		alt29=1;
7666
        	            	}
7667
        	                break;
7668
        	            case SEMICOLON:
7669
        	            	{
7670
        	            		alt29=2;
7671
        	            	}
7672
        	                break;
7673
7674
        	            default:
7675
        	                if (BACKTRACKING>0)
7676
        	                {
7677
        	                    FAILEDFLAG = ANTLR3_TRUE;
7678
        	                    return ;
7679
        	                }
7680
7681
        	                CONSTRUCTEX();
7682
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7683
        	                EXCEPTION->message      = (void *)"";
7684
        	                EXCEPTION->decisionNum  = 29;
7685
        	                EXCEPTION->state        = 0;
7686
7687
7688
        	                goto rulemainCommandEx;
7689
7690
        	            }
7691
7692
        	            switch (alt29)
7693
        	            {
7694
        	        	case 1:
7695
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:842:7: ( str[s] | IDENTIFIER )
7696
        	        	    {
7697
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:842:7: ( str[s] | IDENTIFIER )
7698
        	        	        {
7699
        	        	            int alt28=2;
7700
        	        	            switch ( LA(1) )
7701
        	        	            {
7702
        	        	            case STRING_LITERAL:
7703
        	        	            	{
7704
        	        	            		alt28=1;
7705
        	        	            	}
7706
        	        	                break;
7707
        	        	            case IDENTIFIER:
7708
        	        	            	{
7709
        	        	            		alt28=2;
7710
        	        	            	}
7711
        	        	                break;
7712
7713
        	        	            default:
7714
        	        	                if (BACKTRACKING>0)
7715
        	        	                {
7716
        	        	                    FAILEDFLAG = ANTLR3_TRUE;
7717
        	        	                    return ;
7718
        	        	                }
7719
7720
        	        	                CONSTRUCTEX();
7721
        	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7722
        	        	                EXCEPTION->message      = (void *)"";
7723
        	        	                EXCEPTION->decisionNum  = 28;
7724
        	        	                EXCEPTION->state        = 0;
7725
7726
7727
        	        	                goto rulemainCommandEx;
7728
7729
        	        	            }
7730
7731
        	        	            switch (alt28)
7732
        	        	            {
7733
        	        	        	case 1:
7734
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:842:9: str[s]
7735
        	        	        	    {
7736
        	        	        	        FOLLOWPUSH(FOLLOW_str_in_mainCommand3025);
7737
        	        	        	        str(ctx, s);
7738
7739
        	        	        	        FOLLOWPOP();
7740
        	        	        	        if  (HASEXCEPTION())
7741
        	        	        	        {
7742
        	        	        	            goto rulemainCommandEx;
7743
        	        	        	        }
7744
        	        	        	        if (HASFAILED())
7745
        	        	        	        {
7746
        	        	        	            return ;
7747
        	        	        	        }
7748
7749
7750
        	        	        	    }
7751
        	        	        	    break;
7752
        	        	        	case 2:
7753
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:842:18: IDENTIFIER
7754
        	        	        	    {
7755
        	        	        	        IDENTIFIER9 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_mainCommand3030);
7756
        	        	        	        if  (HASEXCEPTION())
7757
        	        	        	        {
7758
        	        	        	            goto rulemainCommandEx;
7759
        	        	        	        }
7760
        	        	        	        if (HASFAILED())
7761
        	        	        	        {
7762
        	        	        	            return ;
7763
        	        	        	        }
7764
7765
7766
        	        	        	        if ( BACKTRACKING==0 )
7767
        	        	        	        {
7768
        	        	        	             s = AntlrInput::tokenText(IDENTIFIER9);
7769
        	        	        	        }
7770
7771
7772
        	        	        	    }
7773
        	        	        	    break;
7774
7775
        	        	            }
7776
        	        	        }
7777
7778
        	        	        if ( BACKTRACKING==0 )
7779
        	        	        {
7780
        	        	             UNSUPPORTED("INCLUDE command");
7781
        	        	        }
7782
7783
7784
        	        	    }
7785
        	        	    break;
7786
        	        	case 2:
7787
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:844:7:
7788
        	        	    {
7789
        	        	        if ( BACKTRACKING==0 )
7790
        	        	        {
7791
        	        	             PARSER_STATE->parseError("No filename given to INCLUDE command");
7792
        	        	        }
7793
7794
7795
        	        	    }
7796
        	        	    break;
7797
7798
        	            }
7799
        	        }
7800
7801
        	    }
7802
        	    break;
7803
        	case 33:
7804
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:847:5: DUMP_PROOF_TOK
7805
        	    {
7806
        	         MATCHT(DUMP_PROOF_TOK, &FOLLOW_DUMP_PROOF_TOK_in_mainCommand3063);
7807
        	        if  (HASEXCEPTION())
7808
        	        {
7809
        	            goto rulemainCommandEx;
7810
        	        }
7811
        	        if (HASFAILED())
7812
        	        {
7813
        	            return ;
7814
        	        }
7815
7816
7817
        	        if ( BACKTRACKING==0 )
7818
        	        {
7819
        	             cmd->reset(new GetProofCommand());
7820
        	        }
7821
7822
7823
        	    }
7824
        	    break;
7825
        	case 34:
7826
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:850:5: DUMP_UNSAT_CORE_TOK
7827
        	    {
7828
        	         MATCHT(DUMP_UNSAT_CORE_TOK, &FOLLOW_DUMP_UNSAT_CORE_TOK_in_mainCommand3076);
7829
        	        if  (HASEXCEPTION())
7830
        	        {
7831
        	            goto rulemainCommandEx;
7832
        	        }
7833
        	        if (HASFAILED())
7834
        	        {
7835
        	            return ;
7836
        	        }
7837
7838
7839
        	        if ( BACKTRACKING==0 )
7840
        	        {
7841
        	             cmd->reset(new GetUnsatCoreCommand());
7842
        	        }
7843
7844
7845
        	    }
7846
        	    break;
7847
        	case 35:
7848
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:853:5: ( DUMP_ASSUMPTIONS_TOK | DUMP_SIG_TOK | DUMP_TCC_TOK | DUMP_TCC_ASSUMPTIONS_TOK | DUMP_TCC_PROOF_TOK | DUMP_CLOSURE_TOK | DUMP_CLOSURE_PROOF_TOK )
7849
        	    {
7850
        	        if ( ((LA(1) >= DUMP_ASSUMPTIONS_TOK) && (LA(1) <= DUMP_CLOSURE_TOK)) || ((LA(1) >= DUMP_SIG_TOK) && (LA(1) <= DUMP_TCC_TOK)) )
7851
        	        {
7852
        	            CONSUME();
7853
        	            PERRORRECOVERY=ANTLR3_FALSE;
7854
        	            FAILEDFLAG=ANTLR3_FALSE;
7855
7856
        	        }
7857
        	        else
7858
        	        {
7859
        	            if (BACKTRACKING>0)
7860
        	            {
7861
        	                FAILEDFLAG = ANTLR3_TRUE;
7862
        	                return ;
7863
        	            }
7864
7865
        	            CONSTRUCTEX();
7866
        	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
7867
        	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
7868
        	            EXCEPTION->expectingSet = NULL;
7869
7870
        	            goto rulemainCommandEx;
7871
        	        }
7872
7873
7874
        	        if ( BACKTRACKING==0 )
7875
        	        {
7876
        	             UNSUPPORTED("DUMP* command");
7877
        	        }
7878
7879
7880
        	    }
7881
        	    break;
7882
        	case 36:
7883
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:863:5: ( WHERE_TOK | ASSERTIONS_TOK | ASSUMPTIONS_TOK )
7884
        	    {
7885
        	        if ( LA(1) == ASSERTIONS_TOK || LA(1) == ASSUMPTIONS_TOK || LA(1) == WHERE_TOK )
7886
        	        {
7887
        	            CONSUME();
7888
        	            PERRORRECOVERY=ANTLR3_FALSE;
7889
        	            FAILEDFLAG=ANTLR3_FALSE;
7890
7891
        	        }
7892
        	        else
7893
        	        {
7894
        	            if (BACKTRACKING>0)
7895
        	            {
7896
        	                FAILEDFLAG = ANTLR3_TRUE;
7897
        	                return ;
7898
        	            }
7899
7900
        	            CONSTRUCTEX();
7901
        	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
7902
        	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
7903
        	            EXCEPTION->expectingSet = NULL;
7904
7905
        	            goto rulemainCommandEx;
7906
        	        }
7907
7908
7909
        	        if ( BACKTRACKING==0 )
7910
        	        {
7911
        	             cmd->reset(new GetAssertionsCommand());
7912
        	        }
7913
7914
7915
        	    }
7916
        	    break;
7917
6
        	case 37:
7918
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:866:5: COUNTEREXAMPLE_TOK
7919
        	    {
7920
6
        	         MATCHT(COUNTEREXAMPLE_TOK, &FOLLOW_COUNTEREXAMPLE_TOK_in_mainCommand3185);
7921
6
        	        if  (HASEXCEPTION())
7922
        	        {
7923
        	            goto rulemainCommandEx;
7924
        	        }
7925
6
        	        if (HASFAILED())
7926
        	        {
7927
        	            return ;
7928
        	        }
7929
7930
7931
6
        	        if ( BACKTRACKING==0 )
7932
        	        {
7933
6
        	             cmd->reset(new GetModelCommand);
7934
        	        }
7935
7936
7937
        	    }
7938
6
        	    break;
7939
2
        	case 38:
7940
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:868:5: COUNTERMODEL_TOK
7941
        	    {
7942
2
        	         MATCHT(COUNTERMODEL_TOK, &FOLLOW_COUNTERMODEL_TOK_in_mainCommand3197);
7943
2
        	        if  (HASEXCEPTION())
7944
        	        {
7945
        	            goto rulemainCommandEx;
7946
        	        }
7947
2
        	        if (HASFAILED())
7948
        	        {
7949
        	            return ;
7950
        	        }
7951
7952
7953
2
        	        if ( BACKTRACKING==0 )
7954
        	        {
7955
2
        	             cmd->reset(new GetModelCommand);
7956
        	        }
7957
7958
7959
        	    }
7960
2
        	    break;
7961
        	case 39:
7962
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:871:5: ARITH_VAR_ORDER_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN
7963
        	    {
7964
        	         MATCHT(ARITH_VAR_ORDER_TOK, &FOLLOW_ARITH_VAR_ORDER_TOK_in_mainCommand3210);
7965
        	        if  (HASEXCEPTION())
7966
        	        {
7967
        	            goto rulemainCommandEx;
7968
        	        }
7969
        	        if (HASFAILED())
7970
        	        {
7971
        	            return ;
7972
        	        }
7973
7974
7975
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_mainCommand3212);
7976
        	        if  (HASEXCEPTION())
7977
        	        {
7978
        	            goto rulemainCommandEx;
7979
        	        }
7980
        	        if (HASFAILED())
7981
        	        {
7982
        	            return ;
7983
        	        }
7984
7985
7986
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand3214);
7987
        	        formula(ctx, f);
7988
7989
        	        FOLLOWPOP();
7990
        	        if  (HASEXCEPTION())
7991
        	        {
7992
        	            goto rulemainCommandEx;
7993
        	        }
7994
        	        if (HASFAILED())
7995
        	        {
7996
        	            return ;
7997
        	        }
7998
7999
8000
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:871:43: ( COMMA formula[f] )*
8001
8002
        	        for (;;)
8003
        	        {
8004
        	            int alt30=2;
8005
        	            switch ( LA(1) )
8006
        	            {
8007
        	            case COMMA:
8008
        	            	{
8009
        	            		alt30=1;
8010
        	            	}
8011
        	                break;
8012
8013
        	            }
8014
8015
        	            switch (alt30)
8016
        	            {
8017
        	        	case 1:
8018
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:871:45: COMMA formula[f]
8019
        	        	    {
8020
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_mainCommand3219);
8021
        	        	        if  (HASEXCEPTION())
8022
        	        	        {
8023
        	        	            goto rulemainCommandEx;
8024
        	        	        }
8025
        	        	        if (HASFAILED())
8026
        	        	        {
8027
        	        	            return ;
8028
        	        	        }
8029
8030
8031
        	        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand3221);
8032
        	        	        formula(ctx, f);
8033
8034
        	        	        FOLLOWPOP();
8035
        	        	        if  (HASEXCEPTION())
8036
        	        	        {
8037
        	        	            goto rulemainCommandEx;
8038
        	        	        }
8039
        	        	        if (HASFAILED())
8040
        	        	        {
8041
        	        	            return ;
8042
        	        	        }
8043
8044
8045
        	        	    }
8046
        	        	    break;
8047
8048
        	        	default:
8049
        	        	    goto loop30;	/* break out of the loop */
8050
        	        	    break;
8051
        	            }
8052
        	        }
8053
        	        loop30: ; /* Jump out to here if this rule does not match */
8054
8055
8056
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_mainCommand3227);
8057
        	        if  (HASEXCEPTION())
8058
        	        {
8059
        	            goto rulemainCommandEx;
8060
        	        }
8061
        	        if (HASFAILED())
8062
        	        {
8063
        	            return ;
8064
        	        }
8065
8066
8067
        	        if ( BACKTRACKING==0 )
8068
        	        {
8069
        	             UNSUPPORTED("ARITH_VAR_ORDER command");
8070
        	        }
8071
8072
8073
        	    }
8074
        	    break;
8075
        	case 40:
8076
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:874:5: CONTINUE_TOK
8077
        	    {
8078
        	         MATCHT(CONTINUE_TOK, &FOLLOW_CONTINUE_TOK_in_mainCommand3240);
8079
        	        if  (HASEXCEPTION())
8080
        	        {
8081
        	            goto rulemainCommandEx;
8082
        	        }
8083
        	        if (HASFAILED())
8084
        	        {
8085
        	            return ;
8086
        	        }
8087
8088
8089
        	        if ( BACKTRACKING==0 )
8090
        	        {
8091
        	             UNSUPPORTED("CONTINUE command");
8092
        	        }
8093
8094
8095
        	    }
8096
        	    break;
8097
        	case 41:
8098
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:876:5: RESTART_TOK formula[f]
8099
        	    {
8100
        	         MATCHT(RESTART_TOK, &FOLLOW_RESTART_TOK_in_mainCommand3252);
8101
        	        if  (HASEXCEPTION())
8102
        	        {
8103
        	            goto rulemainCommandEx;
8104
        	        }
8105
        	        if (HASFAILED())
8106
        	        {
8107
        	            return ;
8108
        	        }
8109
8110
8111
        	        FOLLOWPUSH(FOLLOW_formula_in_mainCommand3254);
8112
        	        formula(ctx, f);
8113
8114
        	        FOLLOWPOP();
8115
        	        if  (HASEXCEPTION())
8116
        	        {
8117
        	            goto rulemainCommandEx;
8118
        	        }
8119
        	        if (HASFAILED())
8120
        	        {
8121
        	            return ;
8122
        	        }
8123
8124
8125
        	        if ( BACKTRACKING==0 )
8126
        	        {
8127
        	             UNSUPPORTED("RESTART command");
8128
        	        }
8129
8130
8131
        	    }
8132
        	    break;
8133
12
        	case 42:
8134
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:877:5: RECURSIVE_FUNCTION_TOK ( identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ( COMMA )? )+ EQUAL_TOK ( formula[f] ( COMMA )? )+
8135
        	    {
8136
12
        	         MATCHT(RECURSIVE_FUNCTION_TOK, &FOLLOW_RECURSIVE_FUNCTION_TOK_in_mainCommand3263);
8137
12
        	        if  (HASEXCEPTION())
8138
        	        {
8139
        	            goto rulemainCommandEx;
8140
        	        }
8141
12
        	        if (HASFAILED())
8142
        	        {
8143
        	            return ;
8144
        	        }
8145
8146
8147
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:877:28: ( identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ( COMMA )? )+
8148
        	        {
8149
12
        	            int cnt32=0;
8150
8151
        	            for (;;)
8152
        	            {
8153
30
        	                int alt32=2;
8154
30
        	        	switch ( LA(1) )
8155
        	        	{
8156
18
        	        	case IDENTIFIER:
8157
        	        		{
8158
18
        	        			alt32=1;
8159
        	        		}
8160
18
        	        	    break;
8161
8162
        	        	}
8163
8164
30
        	        	switch (alt32)
8165
        	        	{
8166
18
        	        	    case 1:
8167
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:877:29: identifier[id,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ( COMMA )?
8168
        	        	        {
8169
18
        	        	            FOLLOWPUSH(FOLLOW_identifier_in_mainCommand3266);
8170
18
        	        	            identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
8171
8172
18
        	        	            FOLLOWPOP();
8173
18
        	        	            if  (HASEXCEPTION())
8174
        	        	            {
8175
        	        	                goto rulemainCommandEx;
8176
        	        	            }
8177
18
        	        	            if (HASFAILED())
8178
        	        	            {
8179
        	        	                return ;
8180
        	        	            }
8181
8182
8183
18
        	        	            if ( BACKTRACKING==0 )
8184
        	        	            {
8185
8186
18
        	        	                      if(idCommaFlag){
8187
18
        	        	                        idCommaFlag=false;
8188
        	        	                      }
8189
        	        	                      else{
8190
        	        	                        PARSER_STATE->parseError("Identifiers need to be comma separated");
8191
        	        	                      }
8192
8193
        	        	            }
8194
8195
8196
18
        	        	             MATCHT(COLON, &FOLLOW_COLON_in_mainCommand3279);
8197
18
        	        	            if  (HASEXCEPTION())
8198
        	        	            {
8199
        	        	                goto rulemainCommandEx;
8200
        	        	            }
8201
18
        	        	            if (HASFAILED())
8202
        	        	            {
8203
        	        	                return ;
8204
        	        	            }
8205
8206
8207
18
        	        	            FOLLOWPUSH(FOLLOW_type_in_mainCommand3281);
8208
18
        	        	            type(ctx, t, CHECK_DECLARED);
8209
8210
18
        	        	            FOLLOWPOP();
8211
18
        	        	            if  (HASEXCEPTION())
8212
        	        	            {
8213
        	        	                goto rulemainCommandEx;
8214
        	        	            }
8215
18
        	        	            if (HASFAILED())
8216
        	        	            {
8217
        	        	                return ;
8218
        	        	            }
8219
8220
8221
        	        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:886:34: ( COMMA )?
8222
        	        	            {
8223
18
        	        	                int alt31=2;
8224
18
        	        	                switch ( LA(1) )
8225
        	        	                {
8226
6
        	        	                    case COMMA:
8227
        	        	                    	{
8228
6
        	        	                    		alt31=1;
8229
        	        	                    	}
8230
6
        	        	                        break;
8231
        	        	                }
8232
8233
18
        	        	                switch (alt31)
8234
        	        	                {
8235
6
        	        	            	case 1:
8236
        	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:886:35: COMMA
8237
        	        	            	    {
8238
6
        	        	            	         MATCHT(COMMA, &FOLLOW_COMMA_in_mainCommand3285);
8239
6
        	        	            	        if  (HASEXCEPTION())
8240
        	        	            	        {
8241
        	        	            	            goto rulemainCommandEx;
8242
        	        	            	        }
8243
6
        	        	            	        if (HASFAILED())
8244
        	        	            	        {
8245
        	        	            	            return ;
8246
        	        	            	        }
8247
8248
8249
6
        	        	            	        if ( BACKTRACKING==0 )
8250
        	        	            	        {
8251
8252
6
        	        	            	                  idCommaFlag=true;
8253
8254
        	        	            	        }
8255
8256
8257
        	        	            	    }
8258
6
        	        	            	    break;
8259
8260
        	        	                }
8261
        	        	            }
8262
8263
18
        	        	            if ( BACKTRACKING==0 )
8264
        	        	            {
8265
8266
18
        	        	                      func = PARSER_STATE->bindVar(id, t, false, true);
8267
18
        	        	                      ids.push_back(id);
8268
18
        	        	                      types.push_back(t);
8269
18
        	        	                      funcs.push_back(func);
8270
8271
        	        	            }
8272
8273
8274
        	        	        }
8275
18
        	        	        break;
8276
8277
12
        	        	    default:
8278
8279
12
        	        		if ( cnt32 >= 1 )
8280
        	        		{
8281
12
        	        		    goto loop32;
8282
        	        		}
8283
        	        		if (BACKTRACKING>0)
8284
        	        		{
8285
        	        		    FAILEDFLAG = ANTLR3_TRUE;
8286
        	        		    return ;
8287
        	        		}
8288
8289
        	        		/* mismatchedSetEx()
8290
        	        		 */
8291
        	        		CONSTRUCTEX();
8292
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
8293
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
8294
8295
8296
        	        		goto rulemainCommandEx;
8297
        	        	}
8298
18
        	        	cnt32++;
8299
18
        	            }
8300
12
        	            loop32: ;	/* Jump to here if this rule does not match */
8301
        	        }
8302
8303
12
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_mainCommand3303);
8304
12
        	        if  (HASEXCEPTION())
8305
        	        {
8306
        	            goto rulemainCommandEx;
8307
        	        }
8308
12
        	        if (HASFAILED())
8309
        	        {
8310
        	            return ;
8311
        	        }
8312
8313
8314
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:895:15: ( formula[f] ( COMMA )? )+
8315
        	        {
8316
12
        	            int cnt34=0;
8317
8318
        	            for (;;)
8319
        	            {
8320
30
        	                int alt34=2;
8321
30
        	        	switch ( LA(1) )
8322
        	        	{
8323
18
        	        	case ABS_TOK:
8324
        	        	case ARRAY_TOK:
8325
        	        	case BAR:
8326
        	        	case BINARY_LITERAL:
8327
        	        	case BVASHR_TOK:
8328
        	        	case BVCOMP_TOK:
8329
        	        	case BVGE_TOK:
8330
        	        	case BVGT_TOK:
8331
        	        	case BVLE_TOK:
8332
        	        	case BVLSHR_TOK:
8333
        	        	case BVLT_TOK:
8334
        	        	case BVMULT_TOK:
8335
        	        	case BVNAND_TOK:
8336
        	        	case BVNEG_TOK:
8337
        	        	case BVNOR_TOK:
8338
        	        	case BVPLUS_TOK:
8339
        	        	case BVREPEAT_TOK:
8340
        	        	case BVROTL_TOK:
8341
        	        	case BVROTR_TOK:
8342
        	        	case BVSDIV_TOK:
8343
        	        	case BVSGE_TOK:
8344
        	        	case BVSGT_TOK:
8345
        	        	case BVSHL_TOK:
8346
        	        	case BVSLE_TOK:
8347
        	        	case BVSLT_TOK:
8348
        	        	case BVSMOD_TOK:
8349
        	        	case BVSREM_TOK:
8350
        	        	case BVSUB_TOK:
8351
        	        	case BVUDIV_TOK:
8352
        	        	case BVUMINUS_TOK:
8353
        	        	case BVUREM_TOK:
8354
        	        	case BVXNOR_TOK:
8355
        	        	case BVXOR_TOK:
8356
        	        	case BVZEROEXTEND_TOK:
8357
        	        	case DECIMAL_LITERAL:
8358
        	        	case DISTINCT_TOK:
8359
        	        	case DIVISIBLE_TOK:
8360
        	        	case EXISTS_TOK:
8361
        	        	case FALSE_TOK:
8362
        	        	case FLOOR_TOK:
8363
        	        	case FORALL_TOK:
8364
        	        	case HEX_LITERAL:
8365
        	        	case IDENTIFIER:
8366
        	        	case IDEN_TOK:
8367
        	        	case IF_TOK:
8368
        	        	case INTEGER_LITERAL:
8369
        	        	case IS_INTEGER_TOK:
8370
        	        	case LAMBDA_TOK:
8371
        	        	case LBRACE:
8372
        	        	case LET_TOK:
8373
        	        	case LPAREN:
8374
        	        	case MINUS_TOK:
8375
        	        	case NOT_TOK:
8376
        	        	case PARENHASH:
8377
        	        	case REGEXP_COMPLEMENT_TOK:
8378
        	        	case REGEXP_CONCAT_TOK:
8379
        	        	case REGEXP_EMPTY_TOK:
8380
        	        	case REGEXP_INTER_TOK:
8381
        	        	case REGEXP_LOOP_TOK:
8382
        	        	case REGEXP_OPT_TOK:
8383
        	        	case REGEXP_PLUS_TOK:
8384
        	        	case REGEXP_RANGE_TOK:
8385
        	        	case REGEXP_SIGMA_TOK:
8386
        	        	case REGEXP_STAR_TOK:
8387
        	        	case REGEXP_UNION_TOK:
8388
        	        	case SEQ_UNIT_TOK:
8389
        	        	case SETS_CARD_TOK:
8390
        	        	case SETS_CHOOSE_TOK:
8391
        	        	case STRING_CHARAT_TOK:
8392
        	        	case STRING_CONCAT_TOK:
8393
        	        	case STRING_CONTAINS_TOK:
8394
        	        	case STRING_INDEXOF_TOK:
8395
        	        	case STRING_ITOS_TOK:
8396
        	        	case STRING_LENGTH_TOK:
8397
        	        	case STRING_LITERAL:
8398
        	        	case STRING_PREFIXOF_TOK:
8399
        	        	case STRING_REPLACE_ALL_TOK:
8400
        	        	case STRING_REPLACE_TOK:
8401
        	        	case STRING_REV_TOK:
8402
        	        	case STRING_STOI_TOK:
8403
        	        	case STRING_SUBSTR_TOK:
8404
        	        	case STRING_SUFFIXOF_TOK:
8405
        	        	case STRING_TOLOWER_TOK:
8406
        	        	case STRING_TOUPPER_TOK:
8407
        	        	case STRING_TO_REGEXP_TOK:
8408
        	        	case SX_TOK:
8409
        	        	case TRANSCLOSURE_TOK:
8410
        	        	case TRANSPOSE_TOK:
8411
        	        	case TRUE_TOK:
8412
        	        	case TUPLE_TOK:
8413
        	        	case UNIVSET_TOK:
8414
        	        		{
8415
18
        	        			alt34=1;
8416
        	        		}
8417
18
        	        	    break;
8418
8419
        	        	}
8420
8421
30
        	        	switch (alt34)
8422
        	        	{
8423
18
        	        	    case 1:
8424
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:895:16: formula[f] ( COMMA )?
8425
        	        	        {
8426
18
        	        	            FOLLOWPUSH(FOLLOW_formula_in_mainCommand3306);
8427
18
        	        	            formula(ctx, f);
8428
8429
18
        	        	            FOLLOWPOP();
8430
18
        	        	            if  (HASEXCEPTION())
8431
        	        	            {
8432
        	        	                goto rulemainCommandEx;
8433
        	        	            }
8434
18
        	        	            if (HASFAILED())
8435
        	        	            {
8436
        	        	                return ;
8437
        	        	            }
8438
8439
8440
18
        	        	            if ( BACKTRACKING==0 )
8441
        	        	            {
8442
8443
18
        	        	                      if(formCommaFlag){
8444
18
        	        	                        formCommaFlag=false;
8445
        	        	                      }
8446
        	        	                      else{
8447
        	        	                        PARSER_STATE->parseError("Function definitions need to be comma separated");
8448
        	        	                      }
8449
8450
        	        	            }
8451
8452
8453
        	        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:904:5: ( COMMA )?
8454
        	        	            {
8455
18
        	        	                int alt33=2;
8456
18
        	        	                switch ( LA(1) )
8457
        	        	                {
8458
6
        	        	                    case COMMA:
8459
        	        	                    	{
8460
6
        	        	                    		alt33=1;
8461
        	        	                    	}
8462
6
        	        	                        break;
8463
        	        	                }
8464
8465
18
        	        	                switch (alt33)
8466
        	        	                {
8467
6
        	        	            	case 1:
8468
        	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:904:6: COMMA
8469
        	        	            	    {
8470
6
        	        	            	         MATCHT(COMMA, &FOLLOW_COMMA_in_mainCommand3320);
8471
6
        	        	            	        if  (HASEXCEPTION())
8472
        	        	            	        {
8473
        	        	            	            goto rulemainCommandEx;
8474
        	        	            	        }
8475
6
        	        	            	        if (HASFAILED())
8476
        	        	            	        {
8477
        	        	            	            return ;
8478
        	        	            	        }
8479
8480
8481
6
        	        	            	        if ( BACKTRACKING==0 )
8482
        	        	            	        {
8483
8484
6
        	        	            	                  formCommaFlag=true;
8485
8486
        	        	            	        }
8487
8488
8489
        	        	            	    }
8490
6
        	        	            	    break;
8491
8492
        	        	                }
8493
        	        	            }
8494
8495
18
        	        	            if ( BACKTRACKING==0 )
8496
        	        	            {
8497
8498
18
        	        	                      if( f.getKind()==api::LAMBDA ){
8499
15
        	        	                        bvs.insert(bvs.end(), f[0].begin(), f[0].end());
8500
15
        	        	                        formals.push_back(bvs);
8501
15
        	        	                        bvs.clear();
8502
15
        	        	                        f = f[1];
8503
15
        	        	                        formulas.push_back(f);
8504
        	        	                      }
8505
        	        	                      else {
8506
3
        	        	                        formals.push_back(bvs);
8507
3
        	        	                        formulas.push_back(f);
8508
        	        	                      }
8509
8510
        	        	            }
8511
8512
8513
        	        	        }
8514
18
        	        	        break;
8515
8516
12
        	        	    default:
8517
8518
12
        	        		if ( cnt34 >= 1 )
8519
        	        		{
8520
12
        	        		    goto loop34;
8521
        	        		}
8522
        	        		if (BACKTRACKING>0)
8523
        	        		{
8524
        	        		    FAILEDFLAG = ANTLR3_TRUE;
8525
        	        		    return ;
8526
        	        		}
8527
8528
        	        		/* mismatchedSetEx()
8529
        	        		 */
8530
        	        		CONSTRUCTEX();
8531
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
8532
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
8533
8534
8535
        	        		goto rulemainCommandEx;
8536
        	        	}
8537
18
        	        	cnt34++;
8538
18
        	            }
8539
12
        	            loop34: ;	/* Jump to here if this rule does not match */
8540
        	        }
8541
8542
12
        	        if ( BACKTRACKING==0 )
8543
        	        {
8544
8545
12
        	                  if(idCommaFlag){
8546
        	                    PARSER_STATE->parseError("Cannot end function list with comma");
8547
        	                  }
8548
12
        	                  if(formCommaFlag){
8549
        	                    PARSER_STATE->parseError("Cannot end function definition list with comma");
8550
        	                  }
8551
12
        	                  if(funcs.size()!=formulas.size()){
8552
        	                    PARSER_STATE->parseError("Number of functions doesn't match number of function definitions");
8553
        	                  }
8554
30
        	                  for(unsigned int i = 0, size = funcs.size(); i < size; i++){
8555
18
        	                    if(!funcs[i].getSort().isSubsortOf(types[i])){
8556
        	                      PARSER_STATE->parseError("Type mismatch in definition");
8557
        	                    }
8558
        	                  }
8559
12
        	                  cmd->reset(new DefineFunctionRecCommand(funcs, formals, formulas, true));
8560
8561
        	        }
8562
8563
8564
        	    }
8565
12
        	    break;
8566
5300
        	case 43:
8567
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:937:5: toplevelDeclaration[cmd]
8568
        	    {
8569
5300
        	        FOLLOWPUSH(FOLLOW_toplevelDeclaration_in_mainCommand3343);
8570
5300
        	        toplevelDeclaration(ctx, cmd);
8571
8572
5287
        	        FOLLOWPOP();
8573
5287
        	        if  (HASEXCEPTION())
8574
        	        {
8575
        	            goto rulemainCommandEx;
8576
        	        }
8577
5287
        	        if (HASFAILED())
8578
        	        {
8579
        	            return ;
8580
        	        }
8581
8582
8583
        	    }
8584
5287
        	    break;
8585
8586
            }
8587
        }
8588
    }
8589
8590
    // This is where rules clean up and exit
8591
    //
8592
15695
    goto rulemainCommandEx; /* Prevent compiler warnings */
8593
15695
    rulemainCommandEx: ;
8594
8595
15695
            if (HASEXCEPTION())
8596
            {
8597
                PREPORTERROR();
8598
                PRECOVER();
8599
            }
8600
15695
    return ;
8601
}
8602
/* $ANTLR end mainCommand */
8603
8604
/**
8605
 * $ANTLR start simpleSymbolicExpr
8606
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:940:1: simpleSymbolicExpr[std::string& s] : ( INTEGER_LITERAL | MINUS_TOK INTEGER_LITERAL | DECIMAL_LITERAL | HEX_LITERAL | BINARY_LITERAL | str[s] | IDENTIFIER );
8607
 */
8608
static void
8609
267
simpleSymbolicExpr(pCvcParser ctx, std::string& s)
8610
{
8611
    pANTLR3_COMMON_TOKEN    INTEGER_LITERAL10;
8612
    pANTLR3_COMMON_TOKEN    INTEGER_LITERAL11;
8613
    pANTLR3_COMMON_TOKEN    DECIMAL_LITERAL12;
8614
    pANTLR3_COMMON_TOKEN    HEX_LITERAL13;
8615
    pANTLR3_COMMON_TOKEN    BINARY_LITERAL14;
8616
    pANTLR3_COMMON_TOKEN    IDENTIFIER15;
8617
8618
    /* Initialize rule variables
8619
     */
8620
8621
267
    INTEGER_LITERAL10       = NULL;
8622
267
    INTEGER_LITERAL11       = NULL;
8623
267
    DECIMAL_LITERAL12       = NULL;
8624
267
    HEX_LITERAL13       = NULL;
8625
267
    BINARY_LITERAL14       = NULL;
8626
267
    IDENTIFIER15       = NULL;
8627
8628
    {
8629
        {
8630
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:941:3: ( INTEGER_LITERAL | MINUS_TOK INTEGER_LITERAL | DECIMAL_LITERAL | HEX_LITERAL | BINARY_LITERAL | str[s] | IDENTIFIER )
8631
8632
            ANTLR3_UINT32 alt36;
8633
8634
267
            alt36=7;
8635
8636
267
            switch ( LA(1) )
8637
            {
8638
            case INTEGER_LITERAL:
8639
            	{
8640
            		alt36=1;
8641
            	}
8642
                break;
8643
            case MINUS_TOK:
8644
            	{
8645
            		alt36=2;
8646
            	}
8647
                break;
8648
            case DECIMAL_LITERAL:
8649
            	{
8650
            		alt36=3;
8651
            	}
8652
                break;
8653
            case HEX_LITERAL:
8654
            	{
8655
            		alt36=4;
8656
            	}
8657
                break;
8658
            case BINARY_LITERAL:
8659
            	{
8660
            		alt36=5;
8661
            	}
8662
                break;
8663
258
            case STRING_LITERAL:
8664
            	{
8665
258
            		alt36=6;
8666
            	}
8667
258
                break;
8668
9
            case IDENTIFIER:
8669
            	{
8670
9
            		alt36=7;
8671
            	}
8672
9
                break;
8673
8674
            default:
8675
                if (BACKTRACKING>0)
8676
                {
8677
                    FAILEDFLAG = ANTLR3_TRUE;
8678
                    return ;
8679
                }
8680
8681
                CONSTRUCTEX();
8682
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8683
                EXCEPTION->message      = (void *)"";
8684
                EXCEPTION->decisionNum  = 36;
8685
                EXCEPTION->state        = 0;
8686
8687
8688
                goto rulesimpleSymbolicExprEx;
8689
8690
            }
8691
8692
267
            switch (alt36)
8693
            {
8694
        	case 1:
8695
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:941:5: INTEGER_LITERAL
8696
        	    {
8697
        	        INTEGER_LITERAL10 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER_LITERAL, &FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3358);
8698
        	        if  (HASEXCEPTION())
8699
        	        {
8700
        	            goto rulesimpleSymbolicExprEx;
8701
        	        }
8702
        	        if (HASFAILED())
8703
        	        {
8704
        	            return ;
8705
        	        }
8706
8707
8708
        	        if ( BACKTRACKING==0 )
8709
        	        {
8710
        	             s = AntlrInput::tokenText(INTEGER_LITERAL10);
8711
        	        }
8712
8713
8714
        	    }
8715
        	    break;
8716
        	case 2:
8717
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:943:5: MINUS_TOK INTEGER_LITERAL
8718
        	    {
8719
        	         MATCHT(MINUS_TOK, &FOLLOW_MINUS_TOK_in_simpleSymbolicExpr3370);
8720
        	        if  (HASEXCEPTION())
8721
        	        {
8722
        	            goto rulesimpleSymbolicExprEx;
8723
        	        }
8724
        	        if (HASFAILED())
8725
        	        {
8726
        	            return ;
8727
        	        }
8728
8729
8730
        	        INTEGER_LITERAL11 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER_LITERAL, &FOLLOW_INTEGER_LITERAL_in_simpleSymbolicExpr3372);
8731
        	        if  (HASEXCEPTION())
8732
        	        {
8733
        	            goto rulesimpleSymbolicExprEx;
8734
        	        }
8735
        	        if (HASFAILED())
8736
        	        {
8737
        	            return ;
8738
        	        }
8739
8740
8741
        	        if ( BACKTRACKING==0 )
8742
        	        {
8743
        	             s = std::to_string(MINUS_TOK) + AntlrInput::tokenText(INTEGER_LITERAL11);
8744
        	        }
8745
8746
8747
        	    }
8748
        	    break;
8749
        	case 3:
8750
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:945:5: DECIMAL_LITERAL
8751
        	    {
8752
        	        DECIMAL_LITERAL12 = (pANTLR3_COMMON_TOKEN) MATCHT(DECIMAL_LITERAL, &FOLLOW_DECIMAL_LITERAL_in_simpleSymbolicExpr3384);
8753
        	        if  (HASEXCEPTION())
8754
        	        {
8755
        	            goto rulesimpleSymbolicExprEx;
8756
        	        }
8757
        	        if (HASFAILED())
8758
        	        {
8759
        	            return ;
8760
        	        }
8761
8762
8763
        	        if ( BACKTRACKING==0 )
8764
        	        {
8765
        	             s = AntlrInput::tokenText(DECIMAL_LITERAL12);
8766
        	        }
8767
8768
8769
        	    }
8770
        	    break;
8771
        	case 4:
8772
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:947:5: HEX_LITERAL
8773
        	    {
8774
        	        HEX_LITERAL13 = (pANTLR3_COMMON_TOKEN) MATCHT(HEX_LITERAL, &FOLLOW_HEX_LITERAL_in_simpleSymbolicExpr3396);
8775
        	        if  (HASEXCEPTION())
8776
        	        {
8777
        	            goto rulesimpleSymbolicExprEx;
8778
        	        }
8779
        	        if (HASFAILED())
8780
        	        {
8781
        	            return ;
8782
        	        }
8783
8784
8785
        	        if ( BACKTRACKING==0 )
8786
        	        {
8787
        	             s = AntlrInput::tokenText(HEX_LITERAL13);
8788
        	        }
8789
8790
8791
        	    }
8792
        	    break;
8793
        	case 5:
8794
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:949:5: BINARY_LITERAL
8795
        	    {
8796
        	        BINARY_LITERAL14 = (pANTLR3_COMMON_TOKEN) MATCHT(BINARY_LITERAL, &FOLLOW_BINARY_LITERAL_in_simpleSymbolicExpr3408);
8797
        	        if  (HASEXCEPTION())
8798
        	        {
8799
        	            goto rulesimpleSymbolicExprEx;
8800
        	        }
8801
        	        if (HASFAILED())
8802
        	        {
8803
        	            return ;
8804
        	        }
8805
8806
8807
        	        if ( BACKTRACKING==0 )
8808
        	        {
8809
        	             s = AntlrInput::tokenText(BINARY_LITERAL14);
8810
        	        }
8811
8812
8813
        	    }
8814
        	    break;
8815
258
        	case 6:
8816
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:951:5: str[s]
8817
        	    {
8818
258
        	        FOLLOWPUSH(FOLLOW_str_in_simpleSymbolicExpr3420);
8819
258
        	        str(ctx, s);
8820
8821
258
        	        FOLLOWPOP();
8822
258
        	        if  (HASEXCEPTION())
8823
        	        {
8824
        	            goto rulesimpleSymbolicExprEx;
8825
        	        }
8826
258
        	        if (HASFAILED())
8827
        	        {
8828
        	            return ;
8829
        	        }
8830
8831
8832
        	    }
8833
258
        	    break;
8834
9
        	case 7:
8835
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:952:5: IDENTIFIER
8836
        	    {
8837
9
        	        IDENTIFIER15 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_simpleSymbolicExpr3427);
8838
9
        	        if  (HASEXCEPTION())
8839
        	        {
8840
        	            goto rulesimpleSymbolicExprEx;
8841
        	        }
8842
9
        	        if (HASFAILED())
8843
        	        {
8844
        	            return ;
8845
        	        }
8846
8847
8848
9
        	        if ( BACKTRACKING==0 )
8849
        	        {
8850
9
        	             s = AntlrInput::tokenText(IDENTIFIER15);
8851
        	        }
8852
8853
8854
        	    }
8855
9
        	    break;
8856
8857
            }
8858
        }
8859
    }
8860
8861
    // This is where rules clean up and exit
8862
    //
8863
267
    goto rulesimpleSymbolicExprEx; /* Prevent compiler warnings */
8864
267
    rulesimpleSymbolicExprEx: ;
8865
8866
267
            if (HASEXCEPTION())
8867
            {
8868
                PREPORTERROR();
8869
                PRECOVER();
8870
            }
8871
267
    return ;
8872
}
8873
/* $ANTLR end simpleSymbolicExpr */
8874
8875
/**
8876
 * $ANTLR start symbolicExpr
8877
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:956:1: symbolicExpr[cvc5::api::Term& sexpr] : ( simpleSymbolicExpr[s] | LPAREN ( symbolicExpr[sexpr] )* RPAREN );
8878
 */
8879
static void
8880
267
symbolicExpr(pCvcParser ctx, cvc5::api::Term& sexpr)
8881
{
8882
8883
534
      std::string s;
8884
534
      std::vector<api::Term> children;
8885
8886
    /* Initialize rule variables
8887
     */
8888
8889
    {
8890
        {
8891
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:961:3: ( simpleSymbolicExpr[s] | LPAREN ( symbolicExpr[sexpr] )* RPAREN )
8892
8893
            ANTLR3_UINT32 alt38;
8894
8895
267
            alt38=2;
8896
8897
267
            switch ( LA(1) )
8898
            {
8899
267
            case BINARY_LITERAL:
8900
            case DECIMAL_LITERAL:
8901
            case HEX_LITERAL:
8902
            case IDENTIFIER:
8903
            case INTEGER_LITERAL:
8904
            case MINUS_TOK:
8905
            case STRING_LITERAL:
8906
            	{
8907
267
            		alt38=1;
8908
            	}
8909
267
                break;
8910
            case LPAREN:
8911
            	{
8912
            		alt38=2;
8913
            	}
8914
                break;
8915
8916
            default:
8917
                if (BACKTRACKING>0)
8918
                {
8919
                    FAILEDFLAG = ANTLR3_TRUE;
8920
                    return ;
8921
                }
8922
8923
                CONSTRUCTEX();
8924
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8925
                EXCEPTION->message      = (void *)"";
8926
                EXCEPTION->decisionNum  = 38;
8927
                EXCEPTION->state        = 0;
8928
8929
8930
                goto rulesymbolicExprEx;
8931
8932
            }
8933
8934
267
            switch (alt38)
8935
            {
8936
267
        	case 1:
8937
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:961:5: simpleSymbolicExpr[s]
8938
        	    {
8939
267
        	        FOLLOWPUSH(FOLLOW_simpleSymbolicExpr_in_symbolicExpr3452);
8940
267
        	        simpleSymbolicExpr(ctx, s);
8941
8942
267
        	        FOLLOWPOP();
8943
267
        	        if  (HASEXCEPTION())
8944
        	        {
8945
        	            goto rulesymbolicExprEx;
8946
        	        }
8947
267
        	        if (HASFAILED())
8948
        	        {
8949
        	            return ;
8950
        	        }
8951
8952
8953
267
        	        if ( BACKTRACKING==0 )
8954
        	        {
8955
267
        	             sexpr = SOLVER->mkString(PARSER_STATE->processAdHocStringEsc(s));
8956
        	        }
8957
8958
8959
        	    }
8960
267
        	    break;
8961
        	case 2:
8962
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:963:5: LPAREN ( symbolicExpr[sexpr] )* RPAREN
8963
        	    {
8964
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_symbolicExpr3465);
8965
        	        if  (HASEXCEPTION())
8966
        	        {
8967
        	            goto rulesymbolicExprEx;
8968
        	        }
8969
        	        if (HASFAILED())
8970
        	        {
8971
        	            return ;
8972
        	        }
8973
8974
8975
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:963:12: ( symbolicExpr[sexpr] )*
8976
8977
        	        for (;;)
8978
        	        {
8979
        	            int alt37=2;
8980
        	            switch ( LA(1) )
8981
        	            {
8982
        	            case BINARY_LITERAL:
8983
        	            case DECIMAL_LITERAL:
8984
        	            case HEX_LITERAL:
8985
        	            case IDENTIFIER:
8986
        	            case INTEGER_LITERAL:
8987
        	            case LPAREN:
8988
        	            case MINUS_TOK:
8989
        	            case STRING_LITERAL:
8990
        	            	{
8991
        	            		alt37=1;
8992
        	            	}
8993
        	                break;
8994
8995
        	            }
8996
8997
        	            switch (alt37)
8998
        	            {
8999
        	        	case 1:
9000
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:963:13: symbolicExpr[sexpr]
9001
        	        	    {
9002
        	        	        FOLLOWPUSH(FOLLOW_symbolicExpr_in_symbolicExpr3468);
9003
        	        	        symbolicExpr(ctx, sexpr);
9004
9005
        	        	        FOLLOWPOP();
9006
        	        	        if  (HASEXCEPTION())
9007
        	        	        {
9008
        	        	            goto rulesymbolicExprEx;
9009
        	        	        }
9010
        	        	        if (HASFAILED())
9011
        	        	        {
9012
        	        	            return ;
9013
        	        	        }
9014
9015
9016
        	        	        if ( BACKTRACKING==0 )
9017
        	        	        {
9018
        	        	             children.push_back(sexpr);
9019
        	        	        }
9020
9021
9022
        	        	    }
9023
        	        	    break;
9024
9025
        	        	default:
9026
        	        	    goto loop37;	/* break out of the loop */
9027
        	        	    break;
9028
        	            }
9029
        	        }
9030
        	        loop37: ; /* Jump out to here if this rule does not match */
9031
9032
9033
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_symbolicExpr3476);
9034
        	        if  (HASEXCEPTION())
9035
        	        {
9036
        	            goto rulesymbolicExprEx;
9037
        	        }
9038
        	        if (HASFAILED())
9039
        	        {
9040
        	            return ;
9041
        	        }
9042
9043
9044
        	        if ( BACKTRACKING==0 )
9045
        	        {
9046
        	             sexpr = SOLVER->mkTerm(cvc5::api::SEXPR, children);
9047
        	        }
9048
9049
9050
        	    }
9051
        	    break;
9052
9053
            }
9054
        }
9055
    }
9056
9057
    // This is where rules clean up and exit
9058
    //
9059
267
    goto rulesymbolicExprEx; /* Prevent compiler warnings */
9060
267
    rulesymbolicExprEx: ;
9061
9062
267
            if (HASEXCEPTION())
9063
            {
9064
                PREPORTERROR();
9065
                PRECOVER();
9066
            }
9067
267
    return ;
9068
}
9069
/* $ANTLR end symbolicExpr */
9070
9071
/**
9072
 * $ANTLR start toplevelDeclaration
9073
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:970:1: toplevelDeclaration[std::unique_ptr<cvc5::Command>* cmd] : identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON ( declareVariables[cmd,t,ids,true] | declareTypes[cmd,ids] ) ;
9074
 */
9075
static void
9076
5300
toplevelDeclaration(pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd)
9077
{
9078
    /* Initialize rule variables
9079
     */
9080
9081
9082
10600
      std::vector<std::string> ids;
9083
10600
      api::Sort t;
9084
10600
      Debug("parser-extra") << "declaration: " << AntlrInput::tokenText(LT(1))
9085
5300
                            << std::endl;
9086
9087
    {
9088
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:977:3: ( identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON ( declareVariables[cmd,t,ids,true] | declareTypes[cmd,ids] ) )
9089
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:977:5: identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON ( declareVariables[cmd,t,ids,true] | declareTypes[cmd,ids] )
9090
        {
9091
5300
            FOLLOWPUSH(FOLLOW_identifierList_in_toplevelDeclaration3503);
9092
5300
            identifierList(ctx, ids, CHECK_NONE, SYM_VARIABLE);
9093
9094
5300
            FOLLOWPOP();
9095
5300
            if  (HASEXCEPTION())
9096
            {
9097
                goto ruletoplevelDeclarationEx;
9098
            }
9099
5300
            if (HASFAILED())
9100
            {
9101
                return ;
9102
            }
9103
9104
9105
5300
             MATCHT(COLON, &FOLLOW_COLON_in_toplevelDeclaration3506);
9106
5300
            if  (HASEXCEPTION())
9107
            {
9108
                goto ruletoplevelDeclarationEx;
9109
            }
9110
5300
            if (HASFAILED())
9111
            {
9112
                return ;
9113
            }
9114
9115
9116
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:978:5: ( declareVariables[cmd,t,ids,true] | declareTypes[cmd,ids] )
9117
            {
9118
5300
                int alt39=2;
9119
5300
                switch ( LA(1) )
9120
                {
9121
4826
                case ARRAY_TOK:
9122
                case BITVECTOR_TOK:
9123
                case BOOLEAN_TOK:
9124
                case IDENTIFIER:
9125
                case INT_TOK:
9126
                case LBRACKET:
9127
                case LET_TOK:
9128
                case LPAREN:
9129
                case REAL_TOK:
9130
                case SET_TOK:
9131
                case SQHASH:
9132
                case STRING_TOK:
9133
                case SUBTYPE_TOK:
9134
                	{
9135
4826
                		alt39=1;
9136
                	}
9137
4826
                    break;
9138
474
                case TYPE_TOK:
9139
                	{
9140
474
                		alt39=2;
9141
                	}
9142
474
                    break;
9143
9144
                default:
9145
                    if (BACKTRACKING>0)
9146
                    {
9147
                        FAILEDFLAG = ANTLR3_TRUE;
9148
                        return ;
9149
                    }
9150
9151
                    CONSTRUCTEX();
9152
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9153
                    EXCEPTION->message      = (void *)"";
9154
                    EXCEPTION->decisionNum  = 39;
9155
                    EXCEPTION->state        = 0;
9156
9157
9158
                    goto ruletoplevelDeclarationEx;
9159
9160
                }
9161
9162
5300
                switch (alt39)
9163
                {
9164
4826
            	case 1:
9165
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:978:7: declareVariables[cmd,t,ids,true]
9166
            	    {
9167
4826
            	        FOLLOWPUSH(FOLLOW_declareVariables_in_toplevelDeclaration3514);
9168
4826
            	        declareVariables(ctx, cmd, t, ids, true);
9169
9170
4815
            	        FOLLOWPOP();
9171
4815
            	        if  (HASEXCEPTION())
9172
            	        {
9173
            	            goto ruletoplevelDeclarationEx;
9174
            	        }
9175
4815
            	        if (HASFAILED())
9176
            	        {
9177
            	            return ;
9178
            	        }
9179
9180
9181
            	    }
9182
4815
            	    break;
9183
474
            	case 2:
9184
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:979:7: declareTypes[cmd,ids]
9185
            	    {
9186
474
            	        FOLLOWPUSH(FOLLOW_declareTypes_in_toplevelDeclaration3523);
9187
474
            	        declareTypes(ctx, cmd, ids);
9188
9189
472
            	        FOLLOWPOP();
9190
472
            	        if  (HASEXCEPTION())
9191
            	        {
9192
            	            goto ruletoplevelDeclarationEx;
9193
            	        }
9194
472
            	        if (HASFAILED())
9195
            	        {
9196
            	            return ;
9197
            	        }
9198
9199
9200
            	    }
9201
472
            	    break;
9202
9203
                }
9204
            }
9205
9206
        }
9207
9208
    }
9209
9210
    // This is where rules clean up and exit
9211
    //
9212
5287
    goto ruletoplevelDeclarationEx; /* Prevent compiler warnings */
9213
5287
    ruletoplevelDeclarationEx: ;
9214
9215
5287
            if (HASEXCEPTION())
9216
            {
9217
                PREPORTERROR();
9218
                PRECOVER();
9219
            }
9220
5287
    return ;
9221
}
9222
/* $ANTLR end toplevelDeclaration */
9223
9224
/**
9225
 * $ANTLR start boundVarDecl
9226
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:985:1: boundVarDecl[std::vector<std::string>& ids, cvc5::api::Sort& t] : identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON declareVariables[&local_cmd,t,ids,false] ;
9227
 */
9228
static void
9229
52
boundVarDecl(pCvcParser ctx, std::vector<std::string>& ids, cvc5::api::Sort& t)
9230
{
9231
    /* Initialize rule variables
9232
     */
9233
9234
9235
104
      std::unique_ptr<Command> local_cmd;
9236
9237
    {
9238
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:989:3: ( identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON declareVariables[&local_cmd,t,ids,false] )
9239
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:989:5: identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON declareVariables[&local_cmd,t,ids,false]
9240
        {
9241
52
            FOLLOWPUSH(FOLLOW_identifierList_in_boundVarDecl3547);
9242
52
            identifierList(ctx, ids, CHECK_NONE, SYM_VARIABLE);
9243
9244
52
            FOLLOWPOP();
9245
52
            if  (HASEXCEPTION())
9246
            {
9247
                goto ruleboundVarDeclEx;
9248
            }
9249
52
            if (HASFAILED())
9250
            {
9251
                return ;
9252
            }
9253
9254
9255
52
             MATCHT(COLON, &FOLLOW_COLON_in_boundVarDecl3550);
9256
52
            if  (HASEXCEPTION())
9257
            {
9258
                goto ruleboundVarDeclEx;
9259
            }
9260
52
            if (HASFAILED())
9261
            {
9262
                return ;
9263
            }
9264
9265
9266
52
            FOLLOWPUSH(FOLLOW_declareVariables_in_boundVarDecl3556);
9267
52
            declareVariables(ctx, &local_cmd, t, ids, false);
9268
9269
52
            FOLLOWPOP();
9270
52
            if  (HASEXCEPTION())
9271
            {
9272
                goto ruleboundVarDeclEx;
9273
            }
9274
52
            if (HASFAILED())
9275
            {
9276
                return ;
9277
            }
9278
9279
9280
        }
9281
9282
    }
9283
9284
    // This is where rules clean up and exit
9285
    //
9286
52
    goto ruleboundVarDeclEx; /* Prevent compiler warnings */
9287
52
    ruleboundVarDeclEx: ;
9288
9289
52
            if (HASEXCEPTION())
9290
            {
9291
                PREPORTERROR();
9292
                PRECOVER();
9293
            }
9294
52
    return ;
9295
}
9296
/* $ANTLR end boundVarDecl */
9297
9298
/**
9299
 * $ANTLR start boundVarDecls
9300
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:996:1: boundVarDecls : boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )* ;
9301
 */
9302
static void
9303
boundVarDecls(pCvcParser ctx)
9304
{
9305
    /* Initialize rule variables
9306
     */
9307
9308
9309
      std::vector<std::string> ids;
9310
      api::Sort t;
9311
9312
    {
9313
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1001:3: ( boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )* )
9314
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1001:5: boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )*
9315
        {
9316
            FOLLOWPUSH(FOLLOW_boundVarDecl_in_boundVarDecls3577);
9317
            boundVarDecl(ctx, ids, t);
9318
9319
            FOLLOWPOP();
9320
            if  (HASEXCEPTION())
9321
            {
9322
                goto ruleboundVarDeclsEx;
9323
            }
9324
            if (HASFAILED())
9325
            {
9326
                return ;
9327
            }
9328
9329
9330
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1001:25: ( COMMA boundVarDecl[ids,t] )*
9331
9332
            for (;;)
9333
            {
9334
                int alt40=2;
9335
                switch ( LA(1) )
9336
                {
9337
                case COMMA:
9338
                	{
9339
                		alt40=1;
9340
                	}
9341
                    break;
9342
9343
                }
9344
9345
                switch (alt40)
9346
                {
9347
            	case 1:
9348
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1001:27: COMMA boundVarDecl[ids,t]
9349
            	    {
9350
            	         MATCHT(COMMA, &FOLLOW_COMMA_in_boundVarDecls3582);
9351
            	        if  (HASEXCEPTION())
9352
            	        {
9353
            	            goto ruleboundVarDeclsEx;
9354
            	        }
9355
            	        if (HASFAILED())
9356
            	        {
9357
            	            return ;
9358
            	        }
9359
9360
9361
            	        FOLLOWPUSH(FOLLOW_boundVarDecl_in_boundVarDecls3584);
9362
            	        boundVarDecl(ctx, ids, t);
9363
9364
            	        FOLLOWPOP();
9365
            	        if  (HASEXCEPTION())
9366
            	        {
9367
            	            goto ruleboundVarDeclsEx;
9368
            	        }
9369
            	        if (HASFAILED())
9370
            	        {
9371
            	            return ;
9372
            	        }
9373
9374
9375
            	    }
9376
            	    break;
9377
9378
            	default:
9379
            	    goto loop40;	/* break out of the loop */
9380
            	    break;
9381
                }
9382
            }
9383
            loop40: ; /* Jump out to here if this rule does not match */
9384
9385
9386
        }
9387
9388
    }
9389
9390
    // This is where rules clean up and exit
9391
    //
9392
    goto ruleboundVarDeclsEx; /* Prevent compiler warnings */
9393
    ruleboundVarDeclsEx: ;
9394
9395
            if (HASEXCEPTION())
9396
            {
9397
                PREPORTERROR();
9398
                PRECOVER();
9399
            }
9400
    return ;
9401
}
9402
/* $ANTLR end boundVarDecls */
9403
9404
/**
9405
 * $ANTLR start boundVarDeclsReturn
9406
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1004:1: boundVarDeclsReturn[std::vector<cvc5::api::Term>& terms,\n std::vector<cvc5::api::Sort>& types] : boundVarDeclReturn[terms,types] ( COMMA boundVarDeclReturn[terms,types] )* ;
9407
 */
9408
static void
9409
24
boundVarDeclsReturn(pCvcParser ctx, std::vector<cvc5::api::Term>& terms, std::vector<cvc5::api::Sort>& types)
9410
{
9411
    /* Initialize rule variables
9412
     */
9413
9414
9415
48
      std::vector<std::string> ids;
9416
48
      api::Sort t;
9417
24
      terms.clear();
9418
24
      types.clear();
9419
9420
    {
9421
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1012:3: ( boundVarDeclReturn[terms,types] ( COMMA boundVarDeclReturn[terms,types] )* )
9422
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1012:5: boundVarDeclReturn[terms,types] ( COMMA boundVarDeclReturn[terms,types] )*
9423
        {
9424
24
            FOLLOWPUSH(FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3607);
9425
24
            boundVarDeclReturn(ctx, terms, types);
9426
9427
24
            FOLLOWPOP();
9428
24
            if  (HASEXCEPTION())
9429
            {
9430
                goto ruleboundVarDeclsReturnEx;
9431
            }
9432
24
            if (HASFAILED())
9433
            {
9434
                return ;
9435
            }
9436
9437
9438
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1012:37: ( COMMA boundVarDeclReturn[terms,types] )*
9439
9440
            for (;;)
9441
            {
9442
30
                int alt41=2;
9443
30
                switch ( LA(1) )
9444
                {
9445
6
                case COMMA:
9446
                	{
9447
6
                		alt41=1;
9448
                	}
9449
6
                    break;
9450
9451
                }
9452
9453
30
                switch (alt41)
9454
                {
9455
6
            	case 1:
9456
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1012:39: COMMA boundVarDeclReturn[terms,types]
9457
            	    {
9458
6
            	         MATCHT(COMMA, &FOLLOW_COMMA_in_boundVarDeclsReturn3612);
9459
6
            	        if  (HASEXCEPTION())
9460
            	        {
9461
            	            goto ruleboundVarDeclsReturnEx;
9462
            	        }
9463
6
            	        if (HASFAILED())
9464
            	        {
9465
            	            return ;
9466
            	        }
9467
9468
9469
6
            	        FOLLOWPUSH(FOLLOW_boundVarDeclReturn_in_boundVarDeclsReturn3614);
9470
6
            	        boundVarDeclReturn(ctx, terms, types);
9471
9472
6
            	        FOLLOWPOP();
9473
6
            	        if  (HASEXCEPTION())
9474
            	        {
9475
            	            goto ruleboundVarDeclsReturnEx;
9476
            	        }
9477
6
            	        if (HASFAILED())
9478
            	        {
9479
            	            return ;
9480
            	        }
9481
9482
9483
            	    }
9484
6
            	    break;
9485
9486
24
            	default:
9487
24
            	    goto loop41;	/* break out of the loop */
9488
            	    break;
9489
                }
9490
6
            }
9491
24
            loop41: ; /* Jump out to here if this rule does not match */
9492
9493
9494
        }
9495
9496
    }
9497
9498
    // This is where rules clean up and exit
9499
    //
9500
24
    goto ruleboundVarDeclsReturnEx; /* Prevent compiler warnings */
9501
24
    ruleboundVarDeclsReturnEx: ;
9502
9503
24
            if (HASEXCEPTION())
9504
            {
9505
                PREPORTERROR();
9506
                PRECOVER();
9507
            }
9508
24
    return ;
9509
}
9510
/* $ANTLR end boundVarDeclsReturn */
9511
9512
/**
9513
 * $ANTLR start boundVarDeclReturn
9514
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1015:1: boundVarDeclReturn[std::vector<cvc5::api::Term>& terms,\n std::vector<cvc5::api::Sort>& types] : identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] ;
9515
 */
9516
static void
9517
30
boundVarDeclReturn(pCvcParser ctx, std::vector<cvc5::api::Term>& terms, std::vector<cvc5::api::Sort>& types)
9518
{
9519
    /* Initialize rule variables
9520
     */
9521
9522
9523
60
      std::vector<std::string> ids;
9524
60
      api::Sort t;
9525
      // NOTE: do not clear the vectors here!
9526
9527
    {
9528
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1022:3: ( identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED] )
9529
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1022:5: identifierList[ids,CHECK_NONE,SYM_VARIABLE] COLON type[t,CHECK_DECLARED]
9530
        {
9531
30
            FOLLOWPUSH(FOLLOW_identifierList_in_boundVarDeclReturn3637);
9532
30
            identifierList(ctx, ids, CHECK_NONE, SYM_VARIABLE);
9533
9534
30
            FOLLOWPOP();
9535
30
            if  (HASEXCEPTION())
9536
            {
9537
                goto ruleboundVarDeclReturnEx;
9538
            }
9539
30
            if (HASFAILED())
9540
            {
9541
                return ;
9542
            }
9543
9544
9545
30
             MATCHT(COLON, &FOLLOW_COLON_in_boundVarDeclReturn3640);
9546
30
            if  (HASEXCEPTION())
9547
            {
9548
                goto ruleboundVarDeclReturnEx;
9549
            }
9550
30
            if (HASFAILED())
9551
            {
9552
                return ;
9553
            }
9554
9555
9556
30
            FOLLOWPUSH(FOLLOW_type_in_boundVarDeclReturn3642);
9557
30
            type(ctx, t, CHECK_DECLARED);
9558
9559
30
            FOLLOWPOP();
9560
30
            if  (HASEXCEPTION())
9561
            {
9562
                goto ruleboundVarDeclReturnEx;
9563
            }
9564
30
            if (HASFAILED())
9565
            {
9566
                return ;
9567
            }
9568
9569
9570
30
            if ( BACKTRACKING==0 )
9571
            {
9572
60
                 const std::vector<api::Term>& vars = PARSER_STATE->bindBoundVars(ids, t);
9573
30
                      terms.insert(terms.end(), vars.begin(), vars.end());
9574
60
                      for(unsigned i = 0; i < vars.size(); ++i) {
9575
30
                        types.push_back(t);
9576
                      }
9577
9578
            }
9579
9580
9581
        }
9582
9583
    }
9584
9585
    // This is where rules clean up and exit
9586
    //
9587
30
    goto ruleboundVarDeclReturnEx; /* Prevent compiler warnings */
9588
30
    ruleboundVarDeclReturnEx: ;
9589
9590
30
            if (HASEXCEPTION())
9591
            {
9592
                PREPORTERROR();
9593
                PRECOVER();
9594
            }
9595
30
    return ;
9596
}
9597
/* $ANTLR end boundVarDeclReturn */
9598
9599
/**
9600
 * $ANTLR start declareTypes
9601
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1038:1: declareTypes[std::unique_ptr<cvc5::Command>* cmd,\n const std::vector<std::string>& idList] : ( TYPE_TOK | TYPE_TOK EQUAL_TOK type[t,CHECK_DECLARED] );
9602
 */
9603
static void
9604
474
declareTypes(pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd, const std::vector<std::string>& idList)
9605
{
9606
    /* Initialize rule variables
9607
     */
9608
9609
9610
948
      api::Sort t;
9611
9612
    {
9613
        {
9614
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1044:3: ( TYPE_TOK | TYPE_TOK EQUAL_TOK type[t,CHECK_DECLARED] )
9615
9616
            ANTLR3_UINT32 alt42;
9617
9618
474
            alt42=2;
9619
9620
474
            switch ( LA(1) )
9621
            {
9622
474
            case TYPE_TOK:
9623
            	{
9624
474
            		switch ( LA(2) )
9625
            		{
9626
359
            		case EQUAL_TOK:
9627
            			{
9628
359
            				alt42=2;
9629
            			}
9630
359
            		    break;
9631
115
            		case SEMICOLON:
9632
            			{
9633
115
            				alt42=1;
9634
            			}
9635
115
            		    break;
9636
9637
            		default:
9638
            		    if (BACKTRACKING>0)
9639
            		    {
9640
            		        FAILEDFLAG = ANTLR3_TRUE;
9641
            		        return ;
9642
            		    }
9643
9644
            		    CONSTRUCTEX();
9645
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9646
            		    EXCEPTION->message      = (void *)"";
9647
            		    EXCEPTION->decisionNum  = 42;
9648
            		    EXCEPTION->state        = 1;
9649
9650
9651
            		    goto ruledeclareTypesEx;
9652
9653
            		}
9654
9655
            	}
9656
474
                break;
9657
9658
            default:
9659
                if (BACKTRACKING>0)
9660
                {
9661
                    FAILEDFLAG = ANTLR3_TRUE;
9662
                    return ;
9663
                }
9664
9665
                CONSTRUCTEX();
9666
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9667
                EXCEPTION->message      = (void *)"";
9668
                EXCEPTION->decisionNum  = 42;
9669
                EXCEPTION->state        = 0;
9670
9671
9672
                goto ruledeclareTypesEx;
9673
9674
            }
9675
9676
474
            switch (alt42)
9677
            {
9678
115
        	case 1:
9679
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1044:5: TYPE_TOK
9680
        	    {
9681
115
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_declareTypes3676);
9682
115
        	        if  (HASEXCEPTION())
9683
        	        {
9684
        	            goto ruledeclareTypesEx;
9685
        	        }
9686
115
        	        if (HASFAILED())
9687
        	        {
9688
        	            return ;
9689
        	        }
9690
9691
9692
115
        	        if ( BACKTRACKING==0 )
9693
        	        {
9694
230
        	             std::unique_ptr<DeclarationSequence> seq(new DeclarationSequence());
9695
230
        	                  for(std::vector<std::string>::const_iterator i = idList.begin();
9696
230
        	                      i != idList.end(); ++i) {
9697
        	                    // Don't allow a type variable to clash with a previously
9698
        	                    // declared type variable, however a type variable and a
9699
        	                    // non-type variable can clash unambiguously.  Break from CVC3
9700
        	                    // behavior here.
9701
119
        	                    PARSER_STATE->checkDeclaration(*i, CHECK_UNDECLARED, SYM_SORT);
9702
230
        	                    api::Sort sort = PARSER_STATE->mkSort(*i);
9703
115
        	                    Command* decl = new DeclareSortCommand(*i, 0, sort);
9704
115
        	                    seq->addCommand(decl);
9705
        	                  }
9706
113
        	                  cmd->reset(seq.release());
9707
9708
        	        }
9709
9710
9711
        	    }
9712
113
        	    break;
9713
359
        	case 2:
9714
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1061:5: TYPE_TOK EQUAL_TOK type[t,CHECK_DECLARED]
9715
        	    {
9716
359
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_declareTypes3695);
9717
359
        	        if  (HASEXCEPTION())
9718
        	        {
9719
        	            goto ruledeclareTypesEx;
9720
        	        }
9721
359
        	        if (HASFAILED())
9722
        	        {
9723
        	            return ;
9724
        	        }
9725
9726
9727
359
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_declareTypes3697);
9728
359
        	        if  (HASEXCEPTION())
9729
        	        {
9730
        	            goto ruledeclareTypesEx;
9731
        	        }
9732
359
        	        if (HASFAILED())
9733
        	        {
9734
        	            return ;
9735
        	        }
9736
9737
9738
359
        	        FOLLOWPUSH(FOLLOW_type_in_declareTypes3699);
9739
359
        	        type(ctx, t, CHECK_DECLARED);
9740
9741
359
        	        FOLLOWPOP();
9742
359
        	        if  (HASEXCEPTION())
9743
        	        {
9744
        	            goto ruledeclareTypesEx;
9745
        	        }
9746
359
        	        if (HASFAILED())
9747
        	        {
9748
        	            return ;
9749
        	        }
9750
9751
9752
359
        	        if ( BACKTRACKING==0 )
9753
        	        {
9754
718
        	             for(std::vector<std::string>::const_iterator i = idList.begin();
9755
718
        	                      i != idList.end();
9756
        	                      ++i) {
9757
359
        	                    PARSER_STATE->checkDeclaration(*i, CHECK_UNDECLARED, SYM_SORT);
9758
359
        	                    PARSER_STATE->defineType(*i, t);
9759
        	                  }
9760
9761
        	        }
9762
9763
9764
        	    }
9765
359
        	    break;
9766
9767
            }
9768
        }
9769
    }
9770
9771
    // This is where rules clean up and exit
9772
    //
9773
472
    goto ruledeclareTypesEx; /* Prevent compiler warnings */
9774
472
    ruledeclareTypesEx: ;
9775
9776
472
            if (HASEXCEPTION())
9777
            {
9778
                PREPORTERROR();
9779
                PRECOVER();
9780
            }
9781
472
    return ;
9782
}
9783
/* $ANTLR end declareTypes */
9784
9785
/**
9786
 * $ANTLR start declareVariables
9787
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1080:1: declareVariables[std::unique_ptr<cvc5::Command>* cmd, cvc5::api::Sort& t,\n const std::vector<std::string>& idList, bool topLevel] : type[t,CHECK_DECLARED] ( EQUAL_TOK formula[f] )? ;
9788
 */
9789
static void
9790
4878
declareVariables(pCvcParser ctx, std::unique_ptr<cvc5::Command>* cmd, cvc5::api::Sort& t, const std::vector<std::string>& idList, bool topLevel)
9791
{
9792
    /* Initialize rule variables
9793
     */
9794
9795
9796
9756
      api::Term f;
9797
4878
      Debug("parser-extra") << "declType: " << AntlrInput::tokenText(LT(1)) << std::endl;
9798
9799
    {
9800
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1087:3: ( type[t,CHECK_DECLARED] ( EQUAL_TOK formula[f] )? )
9801
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1087:5: type[t,CHECK_DECLARED] ( EQUAL_TOK formula[f] )?
9802
        {
9803
4878
            FOLLOWPUSH(FOLLOW_type_in_declareVariables3733);
9804
4878
            type(ctx, t, CHECK_DECLARED);
9805
9806
4875
            FOLLOWPOP();
9807
4875
            if  (HASEXCEPTION())
9808
            {
9809
                goto ruledeclareVariablesEx;
9810
            }
9811
4875
            if (HASFAILED())
9812
            {
9813
                return ;
9814
            }
9815
9816
9817
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1087:28: ( EQUAL_TOK formula[f] )?
9818
            {
9819
4875
                int alt43=2;
9820
4875
                switch ( LA(1) )
9821
                {
9822
260
                    case EQUAL_TOK:
9823
                    	{
9824
260
                    		alt43=1;
9825
                    	}
9826
260
                        break;
9827
                }
9828
9829
4875
                switch (alt43)
9830
                {
9831
260
            	case 1:
9832
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1087:30: EQUAL_TOK formula[f]
9833
            	    {
9834
260
            	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_declareVariables3738);
9835
260
            	        if  (HASEXCEPTION())
9836
            	        {
9837
            	            goto ruledeclareVariablesEx;
9838
            	        }
9839
260
            	        if (HASFAILED())
9840
            	        {
9841
            	            return ;
9842
            	        }
9843
9844
9845
260
            	        FOLLOWPUSH(FOLLOW_formula_in_declareVariables3740);
9846
260
            	        formula(ctx, f);
9847
9848
260
            	        FOLLOWPOP();
9849
260
            	        if  (HASEXCEPTION())
9850
            	        {
9851
            	            goto ruledeclareVariablesEx;
9852
            	        }
9853
260
            	        if (HASFAILED())
9854
            	        {
9855
            	            return ;
9856
            	        }
9857
9858
9859
            	    }
9860
260
            	    break;
9861
9862
                }
9863
            }
9864
9865
4875
            if ( BACKTRACKING==0 )
9866
            {
9867
9750
                 std::unique_ptr<DeclarationSequence> seq;
9868
4875
                      if(topLevel) {
9869
4823
                        seq.reset(new DeclarationSequence());
9870
                      }
9871
4875
                      if(f.isNull()) {
9872
9230
                        Debug("parser") << "working on " << idList.front() << " : " << t
9873
4615
                                        << std::endl;
9874
                        // CVC language allows redeclaration of variables if types are the same
9875
11842
                        for(std::vector<std::string>::const_iterator i = idList.begin(),
9876
4615
                              i_end = idList.end();
9877
11842
                            i != i_end;
9878
                            ++i) {
9879
7233
                          if(PARSER_STATE->isDeclared(*i, SYM_VARIABLE)) {
9880
20
                            api::Sort oldType = PARSER_STATE->getVariable(*i).getSort();
9881
20
                            Debug("parser") << "  " << *i << " was declared previously "
9882
10
                                            << "with type " << oldType << std::endl;
9883
10
                            if(oldType != t) {
9884
12
                              std::stringstream ss;
9885
12
                              ss << language::SetLanguage(Language::LANG_CVC)
9886
6
                                 << "incompatible type for `" << *i << "':" << std::endl
9887
6
                                 << "  old type: " << oldType << std::endl
9888
6
                                 << "  new type: " << t << std::endl;
9889
12
                              PARSER_STATE->parseError(ss.str());
9890
                            } else {
9891
8
                              Debug("parser") << "  types " << t << " and " << oldType
9892
4
                                              << " are compatible" << std::endl;
9893
                            }
9894
                          } else {
9895
7223
                            Debug("parser") << "  " << *i << " not declared" << std::endl;
9896
7223
                            if(topLevel) {
9897
14322
                              api::Term func = PARSER_STATE->bindVar(*i, t);
9898
7161
                              Command* decl = new DeclareFunctionCommand(*i, func, t);
9899
7161
                              seq->addCommand(decl);
9900
                            } else {
9901
62
                              PARSER_STATE->bindBoundVar(*i, t);
9902
                            }
9903
                          }
9904
                        }
9905
                      } else {
9906
                        // f is not null-- meaning this is a definition not a declaration
9907
                        //Check if the formula f has the correct type, declared as t.
9908
260
                        if(!f.getSort().isSubsortOf(t)){
9909
                          PARSER_STATE->parseError("Type mismatch in definition");
9910
                        }
9911
260
                        if(!topLevel) {
9912
                          // must be top-level; doesn't make sense to write something
9913
                          // like e.g. FORALL(x:INT = 4): [...]
9914
                          PARSER_STATE->parseError("cannot construct a definition here; maybe you want a LET");
9915
                        }
9916
260
                        Assert(!idList.empty());
9917
520
                        api::Term fterm = f;
9918
520
                        std::vector<api::Term> formals;
9919
260
                        if (f.getKind()==api::LAMBDA)
9920
                        {
9921
9
                          formals.insert(formals.end(), f[0].begin(), f[0].end());
9922
9
                          f = f[1];
9923
                        }
9924
518
                        for(std::vector<std::string>::const_iterator i = idList.begin(),
9925
260
                              i_end = idList.end();
9926
518
                            i != i_end;
9927
                            ++i) {
9928
260
                          Debug("parser") << "making " << *i << " : " << t << " = " << f << std::endl;
9929
262
                          PARSER_STATE->checkDeclaration(*i, CHECK_UNDECLARED, SYM_VARIABLE);
9930
516
                          api::Term func = SOLVER->mkConst(t, *i);
9931
258
                          PARSER_STATE->defineVar(*i, fterm);
9932
258
                          Command* decl = new DefineFunctionCommand(*i, func, formals, f, true);
9933
258
                          seq->addCommand(decl);
9934
                        }
9935
                      }
9936
4867
                      if(topLevel) {
9937
4815
                        cmd->reset(seq.release());
9938
                      }
9939
9940
            }
9941
9942
9943
        }
9944
9945
    }
9946
9947
    // This is where rules clean up and exit
9948
    //
9949
4867
    goto ruledeclareVariablesEx; /* Prevent compiler warnings */
9950
4867
    ruledeclareVariablesEx: ;
9951
9952
4867
            if (HASEXCEPTION())
9953
            {
9954
                PREPORTERROR();
9955
                PRECOVER();
9956
            }
9957
4867
    return ;
9958
}
9959
/* $ANTLR end declareVariables */
9960
9961
/**
9962
 * $ANTLR start identifierList
9963
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1169:1: identifierList[std::vector<std::string>& idList,\n cvc5::parser::DeclarationCheck check,\n cvc5::parser::SymbolType type] : identifier[id,check,type] ( COMMA identifier[id,check,type] )* ;
9964
 */
9965
static void
9966
5382
identifierList(pCvcParser ctx, std::vector<std::string>& idList, cvc5::parser::DeclarationCheck check, cvc5::parser::SymbolType type)
9967
{
9968
    /* Initialize rule variables
9969
     */
9970
9971
9972
10764
      std::string id;
9973
5382
      idList.clear();
9974
9975
    {
9976
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1176:3: ( identifier[id,check,type] ( COMMA identifier[id,check,type] )* )
9977
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1176:5: identifier[id,check,type] ( COMMA identifier[id,check,type] )*
9978
        {
9979
5382
            FOLLOWPUSH(FOLLOW_identifier_in_identifierList3771);
9980
5382
            identifier(ctx, id, check, type);
9981
9982
5382
            FOLLOWPOP();
9983
5382
            if  (HASEXCEPTION())
9984
            {
9985
                goto ruleidentifierListEx;
9986
            }
9987
5382
            if (HASFAILED())
9988
            {
9989
                return ;
9990
            }
9991
9992
9993
5382
            if ( BACKTRACKING==0 )
9994
            {
9995
5382
                 idList.push_back(id);
9996
            }
9997
9998
9999
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1177:5: ( COMMA identifier[id,check,type] )*
10000
10001
            for (;;)
10002
            {
10003
8004
                int alt44=2;
10004
8004
                switch ( LA(1) )
10005
                {
10006
2622
                case COMMA:
10007
                	{
10008
2622
                		alt44=1;
10009
                	}
10010
2622
                    break;
10011
10012
                }
10013
10014
8004
                switch (alt44)
10015
                {
10016
2622
            	case 1:
10017
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1177:7: COMMA identifier[id,check,type]
10018
            	    {
10019
2622
            	         MATCHT(COMMA, &FOLLOW_COMMA_in_identifierList3782);
10020
2622
            	        if  (HASEXCEPTION())
10021
            	        {
10022
            	            goto ruleidentifierListEx;
10023
            	        }
10024
2622
            	        if (HASFAILED())
10025
            	        {
10026
            	            return ;
10027
            	        }
10028
10029
10030
2622
            	        FOLLOWPUSH(FOLLOW_identifier_in_identifierList3784);
10031
2622
            	        identifier(ctx, id, check, type);
10032
10033
2622
            	        FOLLOWPOP();
10034
2622
            	        if  (HASEXCEPTION())
10035
            	        {
10036
            	            goto ruleidentifierListEx;
10037
            	        }
10038
2622
            	        if (HASFAILED())
10039
            	        {
10040
            	            return ;
10041
            	        }
10042
10043
10044
2622
            	        if ( BACKTRACKING==0 )
10045
            	        {
10046
2622
            	             idList.push_back(id);
10047
            	        }
10048
10049
10050
            	    }
10051
2622
            	    break;
10052
10053
5382
            	default:
10054
5382
            	    goto loop44;	/* break out of the loop */
10055
            	    break;
10056
                }
10057
2622
            }
10058
5382
            loop44: ; /* Jump out to here if this rule does not match */
10059
10060
10061
        }
10062
10063
    }
10064
10065
    // This is where rules clean up and exit
10066
    //
10067
5382
    goto ruleidentifierListEx; /* Prevent compiler warnings */
10068
5382
    ruleidentifierListEx: ;
10069
10070
5382
            if (HASEXCEPTION())
10071
            {
10072
                PREPORTERROR();
10073
                PRECOVER();
10074
            }
10075
5382
    return ;
10076
}
10077
/* $ANTLR end identifierList */
10078
10079
/**
10080
 * $ANTLR start identifier
10081
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1183:1: identifier[std::string& id,\n cvc5::parser::DeclarationCheck check,\n cvc5::parser::SymbolType type] : IDENTIFIER ;
10082
 */
10083
static void
10084
56395
identifier(pCvcParser ctx, std::string& id, cvc5::parser::DeclarationCheck check, cvc5::parser::SymbolType type)
10085
{
10086
    pANTLR3_COMMON_TOKEN    IDENTIFIER16;
10087
10088
    /* Initialize rule variables
10089
     */
10090
10091
56395
    IDENTIFIER16       = NULL;
10092
10093
    {
10094
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1186:3: ( IDENTIFIER )
10095
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1186:5: IDENTIFIER
10096
        {
10097
56395
            IDENTIFIER16 = (pANTLR3_COMMON_TOKEN) MATCHT(IDENTIFIER, &FOLLOW_IDENTIFIER_in_identifier3806);
10098
56395
            if  (HASEXCEPTION())
10099
            {
10100
                goto ruleidentifierEx;
10101
            }
10102
56395
            if (HASFAILED())
10103
            {
10104
                return ;
10105
            }
10106
10107
10108
56395
            if ( BACKTRACKING==0 )
10109
            {
10110
56395
                 id = AntlrInput::tokenText(IDENTIFIER16);
10111
56398
                      PARSER_STATE->checkDeclaration(id, check, type);
10112
            }
10113
10114
10115
        }
10116
10117
    }
10118
10119
    // This is where rules clean up and exit
10120
    //
10121
56392
    goto ruleidentifierEx; /* Prevent compiler warnings */
10122
56392
    ruleidentifierEx: ;
10123
10124
56392
            if (HASEXCEPTION())
10125
            {
10126
                PREPORTERROR();
10127
                PRECOVER();
10128
            }
10129
56392
    return ;
10130
}
10131
/* $ANTLR end identifier */
10132
10133
/**
10134
 * $ANTLR start type
10135
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1203:1: type[cvc5::api::Sort& t,\n cvc5::parser::DeclarationCheck check] : ( restrictedTypePossiblyFunctionLHS[t,check,lhs] ( ARROW_TOK type[t2,check] )? | LET_TOK typeLetDecl[check] ( COMMA typeLetDecl[check] )* IN_TOK type[t,check] );
10136
 */
10137
static void
10138
6867
type(pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check)
10139
{
10140
    /* Initialize rule variables
10141
     */
10142
10143
10144
13734
      api::Sort t2;
10145
      bool lhs;
10146
13734
      std::vector<api::Sort> args;
10147
10148
    {
10149
        {
10150
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1211:3: ( restrictedTypePossiblyFunctionLHS[t,check,lhs] ( ARROW_TOK type[t2,check] )? | LET_TOK typeLetDecl[check] ( COMMA typeLetDecl[check] )* IN_TOK type[t,check] )
10151
10152
            ANTLR3_UINT32 alt47;
10153
10154
6867
            alt47=2;
10155
10156
6867
            switch ( LA(1) )
10157
            {
10158
6867
            case ARRAY_TOK:
10159
            case BITVECTOR_TOK:
10160
            case BOOLEAN_TOK:
10161
            case IDENTIFIER:
10162
            case INT_TOK:
10163
            case LBRACKET:
10164
            case LPAREN:
10165
            case REAL_TOK:
10166
            case SET_TOK:
10167
            case SQHASH:
10168
            case STRING_TOK:
10169
            case SUBTYPE_TOK:
10170
            	{
10171
6867
            		alt47=1;
10172
            	}
10173
6867
                break;
10174
            case LET_TOK:
10175
            	{
10176
            		alt47=2;
10177
            	}
10178
                break;
10179
10180
            default:
10181
                if (BACKTRACKING>0)
10182
                {
10183
                    FAILEDFLAG = ANTLR3_TRUE;
10184
                    return ;
10185
                }
10186
10187
                CONSTRUCTEX();
10188
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10189
                EXCEPTION->message      = (void *)"";
10190
                EXCEPTION->decisionNum  = 47;
10191
                EXCEPTION->state        = 0;
10192
10193
10194
                goto ruletypeEx;
10195
10196
            }
10197
10198
6867
            switch (alt47)
10199
            {
10200
6867
        	case 1:
10201
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1211:5: restrictedTypePossiblyFunctionLHS[t,check,lhs] ( ARROW_TOK type[t2,check] )?
10202
        	    {
10203
6867
        	        FOLLOWPUSH(FOLLOW_restrictedTypePossiblyFunctionLHS_in_type3839);
10204
6867
        	        restrictedTypePossiblyFunctionLHS(ctx, t, check, lhs);
10205
10206
6864
        	        FOLLOWPOP();
10207
6864
        	        if  (HASEXCEPTION())
10208
        	        {
10209
        	            goto ruletypeEx;
10210
        	        }
10211
6864
        	        if (HASFAILED())
10212
        	        {
10213
        	            return ;
10214
        	        }
10215
10216
10217
6864
        	        if ( BACKTRACKING==0 )
10218
        	        {
10219
6864
        	             if(lhs) {
10220
29
        	                    Assert(t.isTuple());
10221
29
        	                    args = t.getTupleSorts();
10222
        	                  } else {
10223
6835
        	                    args.push_back(t);
10224
        	                  }
10225
10226
        	        }
10227
10228
10229
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1219:5: ( ARROW_TOK type[t2,check] )?
10230
        	        {
10231
6864
        	            int alt45=2;
10232
6864
        	            switch ( LA(1) )
10233
        	            {
10234
117
        	                case ARROW_TOK:
10235
        	                	{
10236
117
        	                		alt45=1;
10237
        	                	}
10238
117
        	                    break;
10239
        	            }
10240
10241
6864
        	            switch (alt45)
10242
        	            {
10243
117
        	        	case 1:
10244
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1219:7: ARROW_TOK type[t2,check]
10245
        	        	    {
10246
117
        	        	         MATCHT(ARROW_TOK, &FOLLOW_ARROW_TOK_in_type3854);
10247
117
        	        	        if  (HASEXCEPTION())
10248
        	        	        {
10249
        	        	            goto ruletypeEx;
10250
        	        	        }
10251
117
        	        	        if (HASFAILED())
10252
        	        	        {
10253
        	        	            return ;
10254
        	        	        }
10255
10256
10257
117
        	        	        FOLLOWPUSH(FOLLOW_type_in_type3856);
10258
117
        	        	        type(ctx, t2, check);
10259
10260
117
        	        	        FOLLOWPOP();
10261
117
        	        	        if  (HASEXCEPTION())
10262
        	        	        {
10263
        	        	            goto ruletypeEx;
10264
        	        	        }
10265
117
        	        	        if (HASFAILED())
10266
        	        	        {
10267
        	        	            return ;
10268
        	        	        }
10269
10270
10271
        	        	    }
10272
117
        	        	    break;
10273
10274
        	            }
10275
        	        }
10276
10277
6864
        	        if ( BACKTRACKING==0 )
10278
        	        {
10279
6864
        	             if(t2.isNull()) {
10280
6747
        	                    if(lhs) {
10281
4
        	                      PARSER_STATE->parseError("improperly-placed type list; expected `->' after to define a function; or else maybe these parentheses were meant to be square brackets, to define a tuple type?");
10282
        	                    }
10283
        	                  } else {
10284
117
        	                    t = SOLVER->mkFunctionSort(args, t2);
10285
        	                  }
10286
10287
        	        }
10288
10289
10290
        	    }
10291
6862
        	    break;
10292
        	case 2:
10293
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1232:5: LET_TOK typeLetDecl[check] ( COMMA typeLetDecl[check] )* IN_TOK type[t,check]
10294
        	    {
10295
        	         MATCHT(LET_TOK, &FOLLOW_LET_TOK_in_type3879);
10296
        	        if  (HASEXCEPTION())
10297
        	        {
10298
        	            goto ruletypeEx;
10299
        	        }
10300
        	        if (HASFAILED())
10301
        	        {
10302
        	            return ;
10303
        	        }
10304
10305
10306
        	        if ( BACKTRACKING==0 )
10307
        	        {
10308
        	             PARSER_STATE->pushScope();
10309
        	        }
10310
10311
10312
        	        FOLLOWPUSH(FOLLOW_typeLetDecl_in_type3887);
10313
        	        typeLetDecl(ctx, check);
10314
10315
        	        FOLLOWPOP();
10316
        	        if  (HASEXCEPTION())
10317
        	        {
10318
        	            goto ruletypeEx;
10319
        	        }
10320
        	        if (HASFAILED())
10321
        	        {
10322
        	            return ;
10323
        	        }
10324
10325
10326
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1233:24: ( COMMA typeLetDecl[check] )*
10327
10328
        	        for (;;)
10329
        	        {
10330
        	            int alt46=2;
10331
        	            switch ( LA(1) )
10332
        	            {
10333
        	            case COMMA:
10334
        	            	{
10335
        	            		alt46=1;
10336
        	            	}
10337
        	                break;
10338
10339
        	            }
10340
10341
        	            switch (alt46)
10342
        	            {
10343
        	        	case 1:
10344
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1233:26: COMMA typeLetDecl[check]
10345
        	        	    {
10346
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_type3892);
10347
        	        	        if  (HASEXCEPTION())
10348
        	        	        {
10349
        	        	            goto ruletypeEx;
10350
        	        	        }
10351
        	        	        if (HASFAILED())
10352
        	        	        {
10353
        	        	            return ;
10354
        	        	        }
10355
10356
10357
        	        	        FOLLOWPUSH(FOLLOW_typeLetDecl_in_type3894);
10358
        	        	        typeLetDecl(ctx, check);
10359
10360
        	        	        FOLLOWPOP();
10361
        	        	        if  (HASEXCEPTION())
10362
        	        	        {
10363
        	        	            goto ruletypeEx;
10364
        	        	        }
10365
        	        	        if (HASFAILED())
10366
        	        	        {
10367
        	        	            return ;
10368
        	        	        }
10369
10370
10371
        	        	    }
10372
        	        	    break;
10373
10374
        	        	default:
10375
        	        	    goto loop46;	/* break out of the loop */
10376
        	        	    break;
10377
        	            }
10378
        	        }
10379
        	        loop46: ; /* Jump out to here if this rule does not match */
10380
10381
10382
        	         MATCHT(IN_TOK, &FOLLOW_IN_TOK_in_type3900);
10383
        	        if  (HASEXCEPTION())
10384
        	        {
10385
        	            goto ruletypeEx;
10386
        	        }
10387
        	        if (HASFAILED())
10388
        	        {
10389
        	            return ;
10390
        	        }
10391
10392
10393
        	        FOLLOWPUSH(FOLLOW_type_in_type3902);
10394
        	        type(ctx, t, check);
10395
10396
        	        FOLLOWPOP();
10397
        	        if  (HASEXCEPTION())
10398
        	        {
10399
        	            goto ruletypeEx;
10400
        	        }
10401
        	        if (HASFAILED())
10402
        	        {
10403
        	            return ;
10404
        	        }
10405
10406
10407
        	        if ( BACKTRACKING==0 )
10408
        	        {
10409
        	             PARSER_STATE->popScope();
10410
        	        }
10411
10412
10413
        	    }
10414
        	    break;
10415
10416
            }
10417
        }
10418
    }
10419
10420
    // This is where rules clean up and exit
10421
    //
10422
6862
    goto ruletypeEx; /* Prevent compiler warnings */
10423
6862
    ruletypeEx: ;
10424
10425
6862
            if (HASEXCEPTION())
10426
            {
10427
                PREPORTERROR();
10428
                PRECOVER();
10429
            }
10430
6862
    return ;
10431
}
10432
/* $ANTLR end type */
10433
10434
/**
10435
 * $ANTLR start restrictedType
10436
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1247:1: restrictedType[cvc5::api::Sort& t,\n cvc5::parser::DeclarationCheck check] : restrictedTypePossiblyFunctionLHS[t,check,lhs] ;
10437
 */
10438
static void
10439
1293
restrictedType(pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check)
10440
{
10441
    /* Initialize rule variables
10442
     */
10443
10444
10445
      bool lhs;
10446
10447
    {
10448
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1252:3: ( restrictedTypePossiblyFunctionLHS[t,check,lhs] )
10449
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1252:5: restrictedTypePossiblyFunctionLHS[t,check,lhs]
10450
        {
10451
1293
            FOLLOWPUSH(FOLLOW_restrictedTypePossiblyFunctionLHS_in_restrictedType3938);
10452
1293
            restrictedTypePossiblyFunctionLHS(ctx, t, check, lhs);
10453
10454
1293
            FOLLOWPOP();
10455
1293
            if  (HASEXCEPTION())
10456
            {
10457
                goto rulerestrictedTypeEx;
10458
            }
10459
1293
            if (HASFAILED())
10460
            {
10461
                return ;
10462
            }
10463
10464
10465
1293
            if ( BACKTRACKING==0 )
10466
            {
10467
1293
                 if(lhs) { PARSER_STATE->parseError("improperly-placed type list; maybe these parentheses were meant to be square brackets, to define a tuple type?"); }
10468
            }
10469
10470
10471
        }
10472
10473
    }
10474
10475
    // This is where rules clean up and exit
10476
    //
10477
1293
    goto rulerestrictedTypeEx; /* Prevent compiler warnings */
10478
1293
    rulerestrictedTypeEx: ;
10479
10480
1293
            if (HASEXCEPTION())
10481
            {
10482
                PREPORTERROR();
10483
                PRECOVER();
10484
            }
10485
1293
    return ;
10486
}
10487
/* $ANTLR end restrictedType */
10488
10489
/**
10490
 * $ANTLR start restrictedTypePossiblyFunctionLHS
10491
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1260:1: restrictedTypePossiblyFunctionLHS[cvc5::api::Sort& t,\n cvc5::parser::DeclarationCheck check,\n bool& lhs] : ( identifier[id,check,SYM_SORT] ( parameterization[check,types] )? | ARRAY_TOK restrictedType[t,check] OF_TOK restrictedType[t2,check] | SET_TOK OF_TOK restrictedType[t,check] | SUBTYPE_TOK LPAREN formula[f] ( COMMA formula[f2] )? RPAREN | LBRACKET ( type[t,check] ( COMMA type[t,check] )* )? RBRACKET | SQHASH ( identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )* )? HASHSQ | BITVECTOR_TOK LPAREN k= numeral RPAREN | STRING_TOK | BOOLEAN_TOK | REAL_TOK | INT_TOK | LPAREN type[t,check] ( COMMA type[t,check] )* RPAREN );
10492
 */
10493
static void
10494
8160
restrictedTypePossiblyFunctionLHS(pCvcParser ctx, cvc5::api::Sort& t, cvc5::parser::DeclarationCheck check, bool& lhs)
10495
{
10496
    unsigned k;
10497
    #undef	RETURN_TYPE_k
10498
    #define	RETURN_TYPE_k unsigned
10499
10500
    /* Initialize rule variables
10501
     */
10502
10503
10504
16320
      api::Sort t2;
10505
16320
      api::Term f, f2;
10506
16320
      std::string id;
10507
16320
      std::vector<api::Sort> types;
10508
16320
      std::vector< std::pair<std::string, api::Sort> > typeIds;
10509
      //SymbolTable* symtab;
10510
      Parser* parser;
10511
8160
      lhs = false;
10512
10513
    {
10514
        {
10515
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1274:3: ( identifier[id,check,SYM_SORT] ( parameterization[check,types] )? | ARRAY_TOK restrictedType[t,check] OF_TOK restrictedType[t2,check] | SET_TOK OF_TOK restrictedType[t,check] | SUBTYPE_TOK LPAREN formula[f] ( COMMA formula[f2] )? RPAREN | LBRACKET ( type[t,check] ( COMMA type[t,check] )* )? RBRACKET | SQHASH ( identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )* )? HASHSQ | BITVECTOR_TOK LPAREN k= numeral RPAREN | STRING_TOK | BOOLEAN_TOK | REAL_TOK | INT_TOK | LPAREN type[t,check] ( COMMA type[t,check] )* RPAREN )
10516
10517
            ANTLR3_UINT32 alt55;
10518
10519
8160
            alt55=12;
10520
10521
8160
            switch ( LA(1) )
10522
            {
10523
3302
            case IDENTIFIER:
10524
            	{
10525
3302
            		alt55=1;
10526
            	}
10527
3302
                break;
10528
126
            case ARRAY_TOK:
10529
            	{
10530
126
            		alt55=2;
10531
            	}
10532
126
                break;
10533
949
            case SET_TOK:
10534
            	{
10535
949
            		alt55=3;
10536
            	}
10537
949
                break;
10538
            case SUBTYPE_TOK:
10539
            	{
10540
            		alt55=4;
10541
            	}
10542
                break;
10543
489
            case LBRACKET:
10544
            	{
10545
489
            		alt55=5;
10546
            	}
10547
489
                break;
10548
71
            case SQHASH:
10549
            	{
10550
71
            		alt55=6;
10551
            	}
10552
71
                break;
10553
159
            case BITVECTOR_TOK:
10554
            	{
10555
159
            		alt55=7;
10556
            	}
10557
159
                break;
10558
26
            case STRING_TOK:
10559
            	{
10560
26
            		alt55=8;
10561
            	}
10562
26
                break;
10563
1589
            case BOOLEAN_TOK:
10564
            	{
10565
1589
            		alt55=9;
10566
            	}
10567
1589
                break;
10568
185
            case REAL_TOK:
10569
            	{
10570
185
            		alt55=10;
10571
            	}
10572
185
                break;
10573
1215
            case INT_TOK:
10574
            	{
10575
1215
            		alt55=11;
10576
            	}
10577
1215
                break;
10578
49
            case LPAREN:
10579
            	{
10580
49
            		alt55=12;
10581
            	}
10582
49
                break;
10583
10584
            default:
10585
                if (BACKTRACKING>0)
10586
                {
10587
                    FAILEDFLAG = ANTLR3_TRUE;
10588
                    return ;
10589
                }
10590
10591
                CONSTRUCTEX();
10592
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10593
                EXCEPTION->message      = (void *)"";
10594
                EXCEPTION->decisionNum  = 55;
10595
                EXCEPTION->state        = 0;
10596
10597
10598
                goto rulerestrictedTypePossiblyFunctionLHSEx;
10599
10600
            }
10601
10602
8160
            switch (alt55)
10603
            {
10604
3302
        	case 1:
10605
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1274:5: identifier[id,check,SYM_SORT] ( parameterization[check,types] )?
10606
        	    {
10607
3302
        	        FOLLOWPUSH(FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS3972);
10608
3302
        	        identifier(ctx, id, check, SYM_SORT);
10609
10610
3299
        	        FOLLOWPOP();
10611
3299
        	        if  (HASEXCEPTION())
10612
        	        {
10613
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10614
        	        }
10615
3299
        	        if (HASFAILED())
10616
        	        {
10617
        	            return ;
10618
        	        }
10619
10620
10621
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1275:5: ( parameterization[check,types] )?
10622
        	        {
10623
3299
        	            int alt48=2;
10624
3299
        	            switch ( LA(1) )
10625
        	            {
10626
38
        	                case LBRACKET:
10627
        	                	{
10628
38
        	                		switch ( LA(2) )
10629
        	                		{
10630
10
        	                		    case IDENTIFIER:
10631
        	                		    	{
10632
10
        	                		    		switch ( LA(3) )
10633
        	                		    		{
10634
10
        	                		    		    case COMMA:
10635
        	                		    		    case LBRACKET:
10636
        	                		    		    case RBRACKET:
10637
        	                		    		    	{
10638
10
        	                		    		    		alt48=1;
10639
        	                		    		    	}
10640
10
        	                		    		        break;
10641
        	                		    		}
10642
10643
        	                		    	}
10644
10
        	                		        break;
10645
28
        	                		    case ARRAY_TOK:
10646
        	                		    case BITVECTOR_TOK:
10647
        	                		    case BOOLEAN_TOK:
10648
        	                		    case INT_TOK:
10649
        	                		    case LBRACKET:
10650
        	                		    case LPAREN:
10651
        	                		    case REAL_TOK:
10652
        	                		    case SET_TOK:
10653
        	                		    case SQHASH:
10654
        	                		    case STRING_TOK:
10655
        	                		    case SUBTYPE_TOK:
10656
        	                		    	{
10657
28
        	                		    		alt48=1;
10658
        	                		    	}
10659
28
        	                		        break;
10660
        	                		}
10661
10662
        	                	}
10663
38
        	                    break;
10664
        	            }
10665
10666
3299
        	            switch (alt48)
10667
        	            {
10668
38
        	        	case 1:
10669
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1275:5: parameterization[check,types]
10670
        	        	    {
10671
38
        	        	        FOLLOWPUSH(FOLLOW_parameterization_in_restrictedTypePossiblyFunctionLHS3979);
10672
38
        	        	        parameterization(ctx, check, types);
10673
10674
38
        	        	        FOLLOWPOP();
10675
38
        	        	        if  (HASEXCEPTION())
10676
        	        	        {
10677
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10678
        	        	        }
10679
38
        	        	        if (HASFAILED())
10680
        	        	        {
10681
        	        	            return ;
10682
        	        	        }
10683
10684
10685
        	        	    }
10686
38
        	        	    break;
10687
10688
        	            }
10689
        	        }
10690
10691
3299
        	        if ( BACKTRACKING==0 )
10692
        	        {
10693
10694
3554
        	                  if(check == CHECK_DECLARED ||
10695
255
        	                     PARSER_STATE->isDeclared(id, SYM_SORT)) {
10696
6178
        	                    Debug("parser-param") << "param: getSort " << id << " " << types.size() << " " << PARSER_STATE->getArity( id )
10697
3089
        	                                          << " " << PARSER_STATE->isDeclared(id, SYM_SORT) << std::endl;
10698
3089
        	                    if(types.size() != PARSER_STATE->getArity(id)) {
10699
        	                      std::stringstream ss;
10700
        	                      ss << "incorrect arity for symbol `" << id << "': expected "
10701
        	                         << PARSER_STATE->getArity( id ) << " type arguments, got "
10702
        	                         << types.size();
10703
        	                      PARSER_STATE->parseError(ss.str());
10704
        	                    }
10705
3089
        	                    if(types.size() > 0) {
10706
28
        	                      t = PARSER_STATE->getSort(id, types);
10707
        	                    }else{
10708
3061
        	                      t = PARSER_STATE->getSort(id);
10709
        	                    }
10710
        	                  } else {
10711
210
        	                    if(types.empty()) {
10712
200
        	                      t = PARSER_STATE->mkUnresolvedType(id);
10713
200
        	                      Debug("parser-param") << "param: make unres type " << id << std::endl;
10714
        	                    }else{
10715
10
        	                      t = PARSER_STATE->mkUnresolvedTypeConstructor(id,types);
10716
10
        	                      t = t.instantiate( types );
10717
20
        	                      Debug("parser-param") << "param: make unres param type " << id << " " << types.size() << " "
10718
10
        	                                            << PARSER_STATE->getArity( id ) << std::endl;
10719
        	                    }
10720
        	                  }
10721
10722
        	        }
10723
10724
10725
        	    }
10726
3299
        	    break;
10727
126
        	case 2:
10728
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1307:5: ARRAY_TOK restrictedType[t,check] OF_TOK restrictedType[t2,check]
10729
        	    {
10730
126
        	         MATCHT(ARRAY_TOK, &FOLLOW_ARRAY_TOK_in_restrictedTypePossiblyFunctionLHS4000);
10731
126
        	        if  (HASEXCEPTION())
10732
        	        {
10733
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10734
        	        }
10735
126
        	        if (HASFAILED())
10736
        	        {
10737
        	            return ;
10738
        	        }
10739
10740
10741
126
        	        FOLLOWPUSH(FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4002);
10742
126
        	        restrictedType(ctx, t, check);
10743
10744
126
        	        FOLLOWPOP();
10745
126
        	        if  (HASEXCEPTION())
10746
        	        {
10747
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10748
        	        }
10749
126
        	        if (HASFAILED())
10750
        	        {
10751
        	            return ;
10752
        	        }
10753
10754
10755
126
        	         MATCHT(OF_TOK, &FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4005);
10756
126
        	        if  (HASEXCEPTION())
10757
        	        {
10758
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10759
        	        }
10760
126
        	        if (HASFAILED())
10761
        	        {
10762
        	            return ;
10763
        	        }
10764
10765
10766
126
        	        FOLLOWPUSH(FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4007);
10767
126
        	        restrictedType(ctx, t2, check);
10768
10769
126
        	        FOLLOWPOP();
10770
126
        	        if  (HASEXCEPTION())
10771
        	        {
10772
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10773
        	        }
10774
126
        	        if (HASFAILED())
10775
        	        {
10776
        	            return ;
10777
        	        }
10778
10779
10780
126
        	        if ( BACKTRACKING==0 )
10781
        	        {
10782
126
        	             t = SOLVER->mkArraySort(t, t2);
10783
        	        }
10784
10785
10786
        	    }
10787
126
        	    break;
10788
949
        	case 3:
10789
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1309:5: SET_TOK OF_TOK restrictedType[t,check]
10790
        	    {
10791
949
        	         MATCHT(SET_TOK, &FOLLOW_SET_TOK_in_restrictedTypePossiblyFunctionLHS4020);
10792
949
        	        if  (HASEXCEPTION())
10793
        	        {
10794
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10795
        	        }
10796
949
        	        if (HASFAILED())
10797
        	        {
10798
        	            return ;
10799
        	        }
10800
10801
10802
949
        	         MATCHT(OF_TOK, &FOLLOW_OF_TOK_in_restrictedTypePossiblyFunctionLHS4022);
10803
949
        	        if  (HASEXCEPTION())
10804
        	        {
10805
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10806
        	        }
10807
949
        	        if (HASFAILED())
10808
        	        {
10809
        	            return ;
10810
        	        }
10811
10812
10813
949
        	        FOLLOWPUSH(FOLLOW_restrictedType_in_restrictedTypePossiblyFunctionLHS4024);
10814
949
        	        restrictedType(ctx, t, check);
10815
10816
949
        	        FOLLOWPOP();
10817
949
        	        if  (HASEXCEPTION())
10818
        	        {
10819
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10820
        	        }
10821
949
        	        if (HASFAILED())
10822
        	        {
10823
        	            return ;
10824
        	        }
10825
10826
10827
949
        	        if ( BACKTRACKING==0 )
10828
        	        {
10829
949
        	             t = SOLVER->mkSetSort(t);
10830
        	        }
10831
10832
10833
        	    }
10834
949
        	    break;
10835
        	case 4:
10836
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1313:5: SUBTYPE_TOK LPAREN formula[f] ( COMMA formula[f2] )? RPAREN
10837
        	    {
10838
        	         MATCHT(SUBTYPE_TOK, &FOLLOW_SUBTYPE_TOK_in_restrictedTypePossiblyFunctionLHS4044);
10839
        	        if  (HASEXCEPTION())
10840
        	        {
10841
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10842
        	        }
10843
        	        if (HASFAILED())
10844
        	        {
10845
        	            return ;
10846
        	        }
10847
10848
10849
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4046);
10850
        	        if  (HASEXCEPTION())
10851
        	        {
10852
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10853
        	        }
10854
        	        if (HASFAILED())
10855
        	        {
10856
        	            return ;
10857
        	        }
10858
10859
10860
        	        FOLLOWPUSH(FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4058);
10861
        	        formula(ctx, f);
10862
10863
        	        FOLLOWPOP();
10864
        	        if  (HASEXCEPTION())
10865
        	        {
10866
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10867
        	        }
10868
        	        if (HASFAILED())
10869
        	        {
10870
        	            return ;
10871
        	        }
10872
10873
10874
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1318:16: ( COMMA formula[f2] )?
10875
        	        {
10876
        	            int alt49=2;
10877
        	            switch ( LA(1) )
10878
        	            {
10879
        	                case COMMA:
10880
        	                	{
10881
        	                		alt49=1;
10882
        	                	}
10883
        	                    break;
10884
        	            }
10885
10886
        	            switch (alt49)
10887
        	            {
10888
        	        	case 1:
10889
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1318:18: COMMA formula[f2]
10890
        	        	    {
10891
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4063);
10892
        	        	        if  (HASEXCEPTION())
10893
        	        	        {
10894
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10895
        	        	        }
10896
        	        	        if (HASFAILED())
10897
        	        	        {
10898
        	        	            return ;
10899
        	        	        }
10900
10901
10902
        	        	        FOLLOWPUSH(FOLLOW_formula_in_restrictedTypePossiblyFunctionLHS4065);
10903
        	        	        formula(ctx, f2);
10904
10905
        	        	        FOLLOWPOP();
10906
        	        	        if  (HASEXCEPTION())
10907
        	        	        {
10908
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10909
        	        	        }
10910
        	        	        if (HASFAILED())
10911
        	        	        {
10912
        	        	            return ;
10913
        	        	        }
10914
10915
10916
        	        	    }
10917
        	        	    break;
10918
10919
        	            }
10920
        	        }
10921
10922
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4071);
10923
        	        if  (HASEXCEPTION())
10924
        	        {
10925
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10926
        	        }
10927
        	        if (HASFAILED())
10928
        	        {
10929
        	            return ;
10930
        	        }
10931
10932
10933
        	        if ( BACKTRACKING==0 )
10934
        	        {
10935
10936
        	                  PARSER_STATE->unimplementedFeature("predicate subtyping not supported in this release");
10937
10938
        	        }
10939
10940
10941
        	    }
10942
        	    break;
10943
489
        	case 5:
10944
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1324:5: LBRACKET ( type[t,check] ( COMMA type[t,check] )* )? RBRACKET
10945
        	    {
10946
489
        	         MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_restrictedTypePossiblyFunctionLHS4090);
10947
489
        	        if  (HASEXCEPTION())
10948
        	        {
10949
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10950
        	        }
10951
489
        	        if (HASFAILED())
10952
        	        {
10953
        	            return ;
10954
        	        }
10955
10956
10957
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1324:14: ( type[t,check] ( COMMA type[t,check] )* )?
10958
        	        {
10959
489
        	            int alt51=2;
10960
489
        	            switch ( LA(1) )
10961
        	            {
10962
480
        	                case ARRAY_TOK:
10963
        	                case BITVECTOR_TOK:
10964
        	                case BOOLEAN_TOK:
10965
        	                case IDENTIFIER:
10966
        	                case INT_TOK:
10967
        	                case LBRACKET:
10968
        	                case LET_TOK:
10969
        	                case LPAREN:
10970
        	                case REAL_TOK:
10971
        	                case SET_TOK:
10972
        	                case SQHASH:
10973
        	                case STRING_TOK:
10974
        	                case SUBTYPE_TOK:
10975
        	                	{
10976
480
        	                		alt51=1;
10977
        	                	}
10978
480
        	                    break;
10979
        	            }
10980
10981
489
        	            switch (alt51)
10982
        	            {
10983
480
        	        	case 1:
10984
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1324:16: type[t,check] ( COMMA type[t,check] )*
10985
        	        	    {
10986
480
        	        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4094);
10987
480
        	        	        type(ctx, t, check);
10988
10989
480
        	        	        FOLLOWPOP();
10990
480
        	        	        if  (HASEXCEPTION())
10991
        	        	        {
10992
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
10993
        	        	        }
10994
480
        	        	        if (HASFAILED())
10995
        	        	        {
10996
        	        	            return ;
10997
        	        	        }
10998
10999
11000
480
        	        	        if ( BACKTRACKING==0 )
11001
        	        	        {
11002
480
        	        	             types.push_back(t);
11003
        	        	        }
11004
11005
11006
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1325:5: ( COMMA type[t,check] )*
11007
11008
        	        	        for (;;)
11009
        	        	        {
11010
950
        	        	            int alt50=2;
11011
950
        	        	            switch ( LA(1) )
11012
        	        	            {
11013
470
        	        	            case COMMA:
11014
        	        	            	{
11015
470
        	        	            		alt50=1;
11016
        	        	            	}
11017
470
        	        	                break;
11018
11019
        	        	            }
11020
11021
950
        	        	            switch (alt50)
11022
        	        	            {
11023
470
        	        	        	case 1:
11024
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1325:7: COMMA type[t,check]
11025
        	        	        	    {
11026
470
        	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4105);
11027
470
        	        	        	        if  (HASEXCEPTION())
11028
        	        	        	        {
11029
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11030
        	        	        	        }
11031
470
        	        	        	        if (HASFAILED())
11032
        	        	        	        {
11033
        	        	        	            return ;
11034
        	        	        	        }
11035
11036
11037
470
        	        	        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4107);
11038
470
        	        	        	        type(ctx, t, check);
11039
11040
470
        	        	        	        FOLLOWPOP();
11041
470
        	        	        	        if  (HASEXCEPTION())
11042
        	        	        	        {
11043
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11044
        	        	        	        }
11045
470
        	        	        	        if (HASFAILED())
11046
        	        	        	        {
11047
        	        	        	            return ;
11048
        	        	        	        }
11049
11050
11051
470
        	        	        	        if ( BACKTRACKING==0 )
11052
        	        	        	        {
11053
470
        	        	        	             types.push_back(t);
11054
        	        	        	        }
11055
11056
11057
        	        	        	    }
11058
470
        	        	        	    break;
11059
11060
480
        	        	        	default:
11061
480
        	        	        	    goto loop50;	/* break out of the loop */
11062
        	        	        	    break;
11063
        	        	            }
11064
470
        	        	        }
11065
480
        	        	        loop50: ; /* Jump out to here if this rule does not match */
11066
11067
11068
        	        	    }
11069
480
        	        	    break;
11070
11071
        	            }
11072
        	        }
11073
11074
489
        	         MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_restrictedTypePossiblyFunctionLHS4118);
11075
489
        	        if  (HASEXCEPTION())
11076
        	        {
11077
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11078
        	        }
11079
489
        	        if (HASFAILED())
11080
        	        {
11081
        	            return ;
11082
        	        }
11083
11084
11085
489
        	        if ( BACKTRACKING==0 )
11086
        	        {
11087
489
        	             if(types.size() == 1 && types.front().isFunction()) {
11088
        	                    // old style function syntax [ T -> U ]
11089
        	                    PARSER_STATE->parseError("old-style function type syntax not supported anymore; please use the new syntax");
11090
        	                  } else {
11091
        	                    // tuple type [ T, U, V... ]
11092
489
        	                    t = SOLVER->mkTupleSort(types);
11093
        	                  }
11094
11095
        	        }
11096
11097
11098
        	    }
11099
489
        	    break;
11100
71
        	case 6:
11101
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1336:5: SQHASH ( identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )* )? HASHSQ
11102
        	    {
11103
71
        	         MATCHT(SQHASH, &FOLLOW_SQHASH_in_restrictedTypePossiblyFunctionLHS4137);
11104
71
        	        if  (HASEXCEPTION())
11105
        	        {
11106
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11107
        	        }
11108
71
        	        if (HASFAILED())
11109
        	        {
11110
        	            return ;
11111
        	        }
11112
11113
11114
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1336:12: ( identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )* )?
11115
        	        {
11116
71
        	            int alt53=2;
11117
71
        	            switch ( LA(1) )
11118
        	            {
11119
65
        	                case IDENTIFIER:
11120
        	                	{
11121
65
        	                		alt53=1;
11122
        	                	}
11123
65
        	                    break;
11124
        	            }
11125
11126
71
        	            switch (alt53)
11127
        	            {
11128
65
        	        	case 1:
11129
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1336:14: identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )*
11130
        	        	    {
11131
65
        	        	        FOLLOWPUSH(FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4141);
11132
65
        	        	        identifier(ctx, id, CHECK_NONE, SYM_SORT);
11133
11134
65
        	        	        FOLLOWPOP();
11135
65
        	        	        if  (HASEXCEPTION())
11136
        	        	        {
11137
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11138
        	        	        }
11139
65
        	        	        if (HASFAILED())
11140
        	        	        {
11141
        	        	            return ;
11142
        	        	        }
11143
11144
11145
65
        	        	         MATCHT(COLON, &FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4144);
11146
65
        	        	        if  (HASEXCEPTION())
11147
        	        	        {
11148
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11149
        	        	        }
11150
65
        	        	        if (HASFAILED())
11151
        	        	        {
11152
        	        	            return ;
11153
        	        	        }
11154
11155
11156
65
        	        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4146);
11157
65
        	        	        type(ctx, t, check);
11158
11159
65
        	        	        FOLLOWPOP();
11160
65
        	        	        if  (HASEXCEPTION())
11161
        	        	        {
11162
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11163
        	        	        }
11164
65
        	        	        if (HASFAILED())
11165
        	        	        {
11166
        	        	            return ;
11167
        	        	        }
11168
11169
11170
65
        	        	        if ( BACKTRACKING==0 )
11171
        	        	        {
11172
65
        	        	             typeIds.push_back(std::make_pair(id, t));
11173
        	        	        }
11174
11175
11176
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1337:5: ( COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check] )*
11177
11178
        	        	        for (;;)
11179
        	        	        {
11180
109
        	        	            int alt52=2;
11181
109
        	        	            switch ( LA(1) )
11182
        	        	            {
11183
44
        	        	            case COMMA:
11184
        	        	            	{
11185
44
        	        	            		alt52=1;
11186
        	        	            	}
11187
44
        	        	                break;
11188
11189
        	        	            }
11190
11191
109
        	        	            switch (alt52)
11192
        	        	            {
11193
44
        	        	        	case 1:
11194
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1337:7: COMMA identifier[id,CHECK_NONE,SYM_SORT] COLON type[t,check]
11195
        	        	        	    {
11196
44
        	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4157);
11197
44
        	        	        	        if  (HASEXCEPTION())
11198
        	        	        	        {
11199
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11200
        	        	        	        }
11201
44
        	        	        	        if (HASFAILED())
11202
        	        	        	        {
11203
        	        	        	            return ;
11204
        	        	        	        }
11205
11206
11207
44
        	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_restrictedTypePossiblyFunctionLHS4159);
11208
44
        	        	        	        identifier(ctx, id, CHECK_NONE, SYM_SORT);
11209
11210
44
        	        	        	        FOLLOWPOP();
11211
44
        	        	        	        if  (HASEXCEPTION())
11212
        	        	        	        {
11213
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11214
        	        	        	        }
11215
44
        	        	        	        if (HASFAILED())
11216
        	        	        	        {
11217
        	        	        	            return ;
11218
        	        	        	        }
11219
11220
11221
44
        	        	        	         MATCHT(COLON, &FOLLOW_COLON_in_restrictedTypePossiblyFunctionLHS4162);
11222
44
        	        	        	        if  (HASEXCEPTION())
11223
        	        	        	        {
11224
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11225
        	        	        	        }
11226
44
        	        	        	        if (HASFAILED())
11227
        	        	        	        {
11228
        	        	        	            return ;
11229
        	        	        	        }
11230
11231
11232
44
        	        	        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4164);
11233
44
        	        	        	        type(ctx, t, check);
11234
11235
44
        	        	        	        FOLLOWPOP();
11236
44
        	        	        	        if  (HASEXCEPTION())
11237
        	        	        	        {
11238
        	        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11239
        	        	        	        }
11240
44
        	        	        	        if (HASFAILED())
11241
        	        	        	        {
11242
        	        	        	            return ;
11243
        	        	        	        }
11244
11245
11246
44
        	        	        	        if ( BACKTRACKING==0 )
11247
        	        	        	        {
11248
44
        	        	        	             typeIds.push_back(std::make_pair(id, t));
11249
        	        	        	        }
11250
11251
11252
        	        	        	    }
11253
44
        	        	        	    break;
11254
11255
65
        	        	        	default:
11256
65
        	        	        	    goto loop52;	/* break out of the loop */
11257
        	        	        	    break;
11258
        	        	            }
11259
44
        	        	        }
11260
65
        	        	        loop52: ; /* Jump out to here if this rule does not match */
11261
11262
11263
        	        	    }
11264
65
        	        	    break;
11265
11266
        	            }
11267
        	        }
11268
11269
71
        	         MATCHT(HASHSQ, &FOLLOW_HASHSQ_in_restrictedTypePossiblyFunctionLHS4175);
11270
71
        	        if  (HASEXCEPTION())
11271
        	        {
11272
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11273
        	        }
11274
71
        	        if (HASFAILED())
11275
        	        {
11276
        	            return ;
11277
        	        }
11278
11279
11280
71
        	        if ( BACKTRACKING==0 )
11281
        	        {
11282
71
        	             t = SOLVER->mkRecordSort(typeIds);
11283
        	        }
11284
11285
11286
        	    }
11287
71
        	    break;
11288
159
        	case 7:
11289
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1341:5: BITVECTOR_TOK LPAREN k= numeral RPAREN
11290
        	    {
11291
159
        	         MATCHT(BITVECTOR_TOK, &FOLLOW_BITVECTOR_TOK_in_restrictedTypePossiblyFunctionLHS4194);
11292
159
        	        if  (HASEXCEPTION())
11293
        	        {
11294
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11295
        	        }
11296
159
        	        if (HASFAILED())
11297
        	        {
11298
        	            return ;
11299
        	        }
11300
11301
11302
159
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4196);
11303
159
        	        if  (HASEXCEPTION())
11304
        	        {
11305
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11306
        	        }
11307
159
        	        if (HASFAILED())
11308
        	        {
11309
        	            return ;
11310
        	        }
11311
11312
11313
159
        	        FOLLOWPUSH(FOLLOW_numeral_in_restrictedTypePossiblyFunctionLHS4200);
11314
159
        	        k=numeral(ctx);
11315
11316
159
        	        FOLLOWPOP();
11317
159
        	        if  (HASEXCEPTION())
11318
        	        {
11319
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11320
        	        }
11321
159
        	        if (HASFAILED())
11322
        	        {
11323
        	            return ;
11324
        	        }
11325
11326
11327
159
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4202);
11328
159
        	        if  (HASEXCEPTION())
11329
        	        {
11330
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11331
        	        }
11332
159
        	        if (HASFAILED())
11333
        	        {
11334
        	            return ;
11335
        	        }
11336
11337
11338
159
        	        if ( BACKTRACKING==0 )
11339
        	        {
11340
159
        	             if(k == 0) {
11341
        	                    PARSER_STATE->parseError("Illegal bitvector size: 0");
11342
        	                  }
11343
159
        	                  t = SOLVER->mkBitVectorSort(k);
11344
11345
        	        }
11346
11347
11348
        	    }
11349
159
        	    break;
11350
26
        	case 8:
11351
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1349:5: STRING_TOK
11352
        	    {
11353
26
        	         MATCHT(STRING_TOK, &FOLLOW_STRING_TOK_in_restrictedTypePossiblyFunctionLHS4221);
11354
26
        	        if  (HASEXCEPTION())
11355
        	        {
11356
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11357
        	        }
11358
26
        	        if (HASFAILED())
11359
        	        {
11360
        	            return ;
11361
        	        }
11362
11363
11364
26
        	        if ( BACKTRACKING==0 )
11365
        	        {
11366
26
        	             t = SOLVER->getStringSort();
11367
        	        }
11368
11369
11370
        	    }
11371
26
        	    break;
11372
1589
        	case 9:
11373
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1352:5: BOOLEAN_TOK
11374
        	    {
11375
1589
        	         MATCHT(BOOLEAN_TOK, &FOLLOW_BOOLEAN_TOK_in_restrictedTypePossiblyFunctionLHS4236);
11376
1589
        	        if  (HASEXCEPTION())
11377
        	        {
11378
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11379
        	        }
11380
1589
        	        if (HASFAILED())
11381
        	        {
11382
        	            return ;
11383
        	        }
11384
11385
11386
1589
        	        if ( BACKTRACKING==0 )
11387
        	        {
11388
1589
        	             t = SOLVER->getBooleanSort();
11389
        	        }
11390
11391
11392
        	    }
11393
1589
        	    break;
11394
185
        	case 10:
11395
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1353:5: REAL_TOK
11396
        	    {
11397
185
        	         MATCHT(REAL_TOK, &FOLLOW_REAL_TOK_in_restrictedTypePossiblyFunctionLHS4244);
11398
185
        	        if  (HASEXCEPTION())
11399
        	        {
11400
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11401
        	        }
11402
185
        	        if (HASFAILED())
11403
        	        {
11404
        	            return ;
11405
        	        }
11406
11407
11408
185
        	        if ( BACKTRACKING==0 )
11409
        	        {
11410
185
        	             t = SOLVER->getRealSort();
11411
        	        }
11412
11413
11414
        	    }
11415
185
        	    break;
11416
1215
        	case 11:
11417
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1354:5: INT_TOK
11418
        	    {
11419
1215
        	         MATCHT(INT_TOK, &FOLLOW_INT_TOK_in_restrictedTypePossiblyFunctionLHS4252);
11420
1215
        	        if  (HASEXCEPTION())
11421
        	        {
11422
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11423
        	        }
11424
1215
        	        if (HASFAILED())
11425
        	        {
11426
        	            return ;
11427
        	        }
11428
11429
11430
1215
        	        if ( BACKTRACKING==0 )
11431
        	        {
11432
1215
        	             t = SOLVER->getIntegerSort();
11433
        	        }
11434
11435
11436
        	    }
11437
1215
        	    break;
11438
49
        	case 12:
11439
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1359:5: LPAREN type[t,check] ( COMMA type[t,check] )* RPAREN
11440
        	    {
11441
49
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_restrictedTypePossiblyFunctionLHS4267);
11442
49
        	        if  (HASEXCEPTION())
11443
        	        {
11444
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11445
        	        }
11446
49
        	        if (HASFAILED())
11447
        	        {
11448
        	            return ;
11449
        	        }
11450
11451
11452
49
        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4269);
11453
49
        	        type(ctx, t, check);
11454
11455
49
        	        FOLLOWPOP();
11456
49
        	        if  (HASEXCEPTION())
11457
        	        {
11458
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11459
        	        }
11460
49
        	        if (HASFAILED())
11461
        	        {
11462
        	            return ;
11463
        	        }
11464
11465
11466
49
        	        if ( BACKTRACKING==0 )
11467
        	        {
11468
49
        	             types.push_back(t);
11469
        	        }
11470
11471
11472
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1360:5: ( COMMA type[t,check] )*
11473
11474
        	        for (;;)
11475
        	        {
11476
84
        	            int alt54=2;
11477
84
        	            switch ( LA(1) )
11478
        	            {
11479
35
        	            case COMMA:
11480
        	            	{
11481
35
        	            		alt54=1;
11482
        	            	}
11483
35
        	                break;
11484
11485
        	            }
11486
11487
84
        	            switch (alt54)
11488
        	            {
11489
35
        	        	case 1:
11490
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1360:7: COMMA type[t,check]
11491
        	        	    {
11492
35
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_restrictedTypePossiblyFunctionLHS4280);
11493
35
        	        	        if  (HASEXCEPTION())
11494
        	        	        {
11495
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11496
        	        	        }
11497
35
        	        	        if (HASFAILED())
11498
        	        	        {
11499
        	        	            return ;
11500
        	        	        }
11501
11502
11503
35
        	        	        FOLLOWPUSH(FOLLOW_type_in_restrictedTypePossiblyFunctionLHS4282);
11504
35
        	        	        type(ctx, t, check);
11505
11506
35
        	        	        FOLLOWPOP();
11507
35
        	        	        if  (HASEXCEPTION())
11508
        	        	        {
11509
        	        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11510
        	        	        }
11511
35
        	        	        if (HASFAILED())
11512
        	        	        {
11513
        	        	            return ;
11514
        	        	        }
11515
11516
11517
35
        	        	        if ( BACKTRACKING==0 )
11518
        	        	        {
11519
35
        	        	             lhs = true; types.push_back(t);
11520
        	        	        }
11521
11522
11523
        	        	    }
11524
35
        	        	    break;
11525
11526
49
        	        	default:
11527
49
        	        	    goto loop54;	/* break out of the loop */
11528
        	        	    break;
11529
        	            }
11530
35
        	        }
11531
49
        	        loop54: ; /* Jump out to here if this rule does not match */
11532
11533
11534
49
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_restrictedTypePossiblyFunctionLHS4290);
11535
49
        	        if  (HASEXCEPTION())
11536
        	        {
11537
        	            goto rulerestrictedTypePossiblyFunctionLHSEx;
11538
        	        }
11539
49
        	        if (HASFAILED())
11540
        	        {
11541
        	            return ;
11542
        	        }
11543
11544
11545
49
        	        if ( BACKTRACKING==0 )
11546
        	        {
11547
49
        	             if(lhs) { t = SOLVER->mkTupleSort(types); }
11548
        	                  // if !lhs, t is already set up correctly, nothing to do..
11549
11550
        	        }
11551
11552
11553
        	    }
11554
49
        	    break;
11555
11556
            }
11557
        }
11558
    }
11559
11560
    // This is where rules clean up and exit
11561
    //
11562
8157
    goto rulerestrictedTypePossiblyFunctionLHSEx; /* Prevent compiler warnings */
11563
8157
    rulerestrictedTypePossiblyFunctionLHSEx: ;
11564
11565
8157
            if (HASEXCEPTION())
11566
            {
11567
                PREPORTERROR();
11568
                PRECOVER();
11569
            }
11570
8157
    return ;
11571
}
11572
/* $ANTLR end restrictedTypePossiblyFunctionLHS */
11573
11574
/**
11575
 * $ANTLR start parameterization
11576
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1366:1: parameterization[cvc5::parser::DeclarationCheck check,\n std::vector<cvc5::api::Sort>& params] : LBRACKET restrictedType[t,check] ( COMMA restrictedType[t,check] )* RBRACKET ;
11577
 */
11578
static void
11579
38
parameterization(pCvcParser ctx, cvc5::parser::DeclarationCheck check, std::vector<cvc5::api::Sort>& params)
11580
{
11581
    /* Initialize rule variables
11582
     */
11583
11584
11585
76
      api::Sort t;
11586
11587
    {
11588
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1371:3: ( LBRACKET restrictedType[t,check] ( COMMA restrictedType[t,check] )* RBRACKET )
11589
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1371:5: LBRACKET restrictedType[t,check] ( COMMA restrictedType[t,check] )* RBRACKET
11590
        {
11591
38
             MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_parameterization4315);
11592
38
            if  (HASEXCEPTION())
11593
            {
11594
                goto ruleparameterizationEx;
11595
            }
11596
38
            if (HASFAILED())
11597
            {
11598
                return ;
11599
            }
11600
11601
11602
38
            FOLLOWPUSH(FOLLOW_restrictedType_in_parameterization4317);
11603
38
            restrictedType(ctx, t, check);
11604
11605
38
            FOLLOWPOP();
11606
38
            if  (HASEXCEPTION())
11607
            {
11608
                goto ruleparameterizationEx;
11609
            }
11610
38
            if (HASFAILED())
11611
            {
11612
                return ;
11613
            }
11614
11615
11616
38
            if ( BACKTRACKING==0 )
11617
            {
11618
38
                 Debug("parser-param") << "t = " << t << std::endl; params.push_back( t );
11619
            }
11620
11621
11622
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1372:5: ( COMMA restrictedType[t,check] )*
11623
11624
            for (;;)
11625
            {
11626
46
                int alt56=2;
11627
46
                switch ( LA(1) )
11628
                {
11629
8
                case COMMA:
11630
                	{
11631
8
                		alt56=1;
11632
                	}
11633
8
                    break;
11634
11635
                }
11636
11637
46
                switch (alt56)
11638
                {
11639
8
            	case 1:
11640
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1372:7: COMMA restrictedType[t,check]
11641
            	    {
11642
8
            	         MATCHT(COMMA, &FOLLOW_COMMA_in_parameterization4328);
11643
8
            	        if  (HASEXCEPTION())
11644
            	        {
11645
            	            goto ruleparameterizationEx;
11646
            	        }
11647
8
            	        if (HASFAILED())
11648
            	        {
11649
            	            return ;
11650
            	        }
11651
11652
11653
8
            	        FOLLOWPUSH(FOLLOW_restrictedType_in_parameterization4330);
11654
8
            	        restrictedType(ctx, t, check);
11655
11656
8
            	        FOLLOWPOP();
11657
8
            	        if  (HASEXCEPTION())
11658
            	        {
11659
            	            goto ruleparameterizationEx;
11660
            	        }
11661
8
            	        if (HASFAILED())
11662
            	        {
11663
            	            return ;
11664
            	        }
11665
11666
11667
8
            	        if ( BACKTRACKING==0 )
11668
            	        {
11669
8
            	             Debug("parser-param") << "t = " << t << std::endl; params.push_back( t );
11670
            	        }
11671
11672
11673
            	    }
11674
8
            	    break;
11675
11676
38
            	default:
11677
38
            	    goto loop56;	/* break out of the loop */
11678
            	    break;
11679
                }
11680
8
            }
11681
38
            loop56: ; /* Jump out to here if this rule does not match */
11682
11683
11684
38
             MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_parameterization4338);
11685
38
            if  (HASEXCEPTION())
11686
            {
11687
                goto ruleparameterizationEx;
11688
            }
11689
38
            if (HASFAILED())
11690
            {
11691
                return ;
11692
            }
11693
11694
11695
        }
11696
11697
    }
11698
11699
    // This is where rules clean up and exit
11700
    //
11701
38
    goto ruleparameterizationEx; /* Prevent compiler warnings */
11702
38
    ruleparameterizationEx: ;
11703
11704
38
            if (HASEXCEPTION())
11705
            {
11706
                PREPORTERROR();
11707
                PRECOVER();
11708
            }
11709
38
    return ;
11710
}
11711
/* $ANTLR end parameterization */
11712
11713
/**
11714
 * $ANTLR start typeLetDecl
11715
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1375:1: typeLetDecl[cvc5::parser::DeclarationCheck check] : identifier[id,CHECK_NONE,SYM_SORT] ( COLON TYPE_TOK )? EQUAL_TOK restrictedType[t,check] ;
11716
 */
11717
static void
11718
typeLetDecl(pCvcParser ctx, cvc5::parser::DeclarationCheck check)
11719
{
11720
    /* Initialize rule variables
11721
     */
11722
11723
11724
      api::Sort t;
11725
      std::string id;
11726
11727
    {
11728
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1380:3: ( identifier[id,CHECK_NONE,SYM_SORT] ( COLON TYPE_TOK )? EQUAL_TOK restrictedType[t,check] )
11729
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1380:5: identifier[id,CHECK_NONE,SYM_SORT] ( COLON TYPE_TOK )? EQUAL_TOK restrictedType[t,check]
11730
        {
11731
            FOLLOWPUSH(FOLLOW_identifier_in_typeLetDecl4357);
11732
            identifier(ctx, id, CHECK_NONE, SYM_SORT);
11733
11734
            FOLLOWPOP();
11735
            if  (HASEXCEPTION())
11736
            {
11737
                goto ruletypeLetDeclEx;
11738
            }
11739
            if (HASFAILED())
11740
            {
11741
                return ;
11742
            }
11743
11744
11745
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1380:40: ( COLON TYPE_TOK )?
11746
            {
11747
                int alt57=2;
11748
                switch ( LA(1) )
11749
                {
11750
                    case COLON:
11751
                    	{
11752
                    		alt57=1;
11753
                    	}
11754
                        break;
11755
                }
11756
11757
                switch (alt57)
11758
                {
11759
            	case 1:
11760
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1380:41: COLON TYPE_TOK
11761
            	    {
11762
            	         MATCHT(COLON, &FOLLOW_COLON_in_typeLetDecl4361);
11763
            	        if  (HASEXCEPTION())
11764
            	        {
11765
            	            goto ruletypeLetDeclEx;
11766
            	        }
11767
            	        if (HASFAILED())
11768
            	        {
11769
            	            return ;
11770
            	        }
11771
11772
11773
            	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_typeLetDecl4363);
11774
            	        if  (HASEXCEPTION())
11775
            	        {
11776
            	            goto ruletypeLetDeclEx;
11777
            	        }
11778
            	        if (HASFAILED())
11779
            	        {
11780
            	            return ;
11781
            	        }
11782
11783
11784
            	    }
11785
            	    break;
11786
11787
                }
11788
            }
11789
11790
             MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_typeLetDecl4367);
11791
            if  (HASEXCEPTION())
11792
            {
11793
                goto ruletypeLetDeclEx;
11794
            }
11795
            if (HASFAILED())
11796
            {
11797
                return ;
11798
            }
11799
11800
11801
            FOLLOWPUSH(FOLLOW_restrictedType_in_typeLetDecl4369);
11802
            restrictedType(ctx, t, check);
11803
11804
            FOLLOWPOP();
11805
            if  (HASEXCEPTION())
11806
            {
11807
                goto ruletypeLetDeclEx;
11808
            }
11809
            if (HASFAILED())
11810
            {
11811
                return ;
11812
            }
11813
11814
11815
            if ( BACKTRACKING==0 )
11816
            {
11817
                 PARSER_STATE->defineType(id, t);
11818
            }
11819
11820
11821
        }
11822
11823
    }
11824
11825
    // This is where rules clean up and exit
11826
    //
11827
    goto ruletypeLetDeclEx; /* Prevent compiler warnings */
11828
    ruletypeLetDeclEx: ;
11829
11830
            if (HASEXCEPTION())
11831
            {
11832
                PREPORTERROR();
11833
                PRECOVER();
11834
            }
11835
    return ;
11836
}
11837
/* $ANTLR end typeLetDecl */
11838
11839
/**
11840
 * $ANTLR start formula
11841
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1391:1: formula[cvc5::api::Term& f] : n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? ) ;
11842
 */
11843
static void
11844
47019
formula(pCvcParser ctx, cvc5::api::Term& f)
11845
{
11846
    size_t n;
11847
    #undef	RETURN_TYPE_n
11848
    #define	RETURN_TYPE_n size_t
11849
11850
    /* Initialize rule variables
11851
     */
11852
11853
11854
47019
      Debug("parser-extra") << "formula: " << AntlrInput::tokenText(LT(1)) << std::endl;
11855
94038
      api::Term f2;
11856
94038
      std::vector<cvc5::api::Term> expressions;
11857
94038
      std::vector<unsigned> operators;
11858
      unsigned op;
11859
11860
    {
11861
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1399:3: (n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? ) )
11862
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1399:5: n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? )
11863
        {
11864
47019
            FOLLOWPUSH(FOLLOW_nots_in_formula4399);
11865
47019
            n=nots(ctx);
11866
11867
47019
            FOLLOWPOP();
11868
47019
            if  (HASEXCEPTION())
11869
            {
11870
                goto ruleformulaEx;
11871
            }
11872
47019
            if (HASFAILED())
11873
            {
11874
                return ;
11875
            }
11876
11877
11878
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1400:5: ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? )
11879
            {
11880
47019
                int alt59=2;
11881
47019
                switch ( LA(1) )
11882
                {
11883
255
                case EXISTS_TOK:
11884
                case FORALL_TOK:
11885
                case LAMBDA_TOK:
11886
                case LET_TOK:
11887
                	{
11888
255
                		alt59=1;
11889
                	}
11890
255
                    break;
11891
46760
                case ABS_TOK:
11892
                case ARRAY_TOK:
11893
                case BAR:
11894
                case BINARY_LITERAL:
11895
                case BVASHR_TOK:
11896
                case BVCOMP_TOK:
11897
                case BVGE_TOK:
11898
                case BVGT_TOK:
11899
                case BVLE_TOK:
11900
                case BVLSHR_TOK:
11901
                case BVLT_TOK:
11902
                case BVMULT_TOK:
11903
                case BVNAND_TOK:
11904
                case BVNEG_TOK:
11905
                case BVNOR_TOK:
11906
                case BVPLUS_TOK:
11907
                case BVREPEAT_TOK:
11908
                case BVROTL_TOK:
11909
                case BVROTR_TOK:
11910
                case BVSDIV_TOK:
11911
                case BVSGE_TOK:
11912
                case BVSGT_TOK:
11913
                case BVSHL_TOK:
11914
                case BVSLE_TOK:
11915
                case BVSLT_TOK:
11916
                case BVSMOD_TOK:
11917
                case BVSREM_TOK:
11918
                case BVSUB_TOK:
11919
                case BVUDIV_TOK:
11920
                case BVUMINUS_TOK:
11921
                case BVUREM_TOK:
11922
                case BVXNOR_TOK:
11923
                case BVXOR_TOK:
11924
                case BVZEROEXTEND_TOK:
11925
                case DECIMAL_LITERAL:
11926
                case DISTINCT_TOK:
11927
                case DIVISIBLE_TOK:
11928
                case FALSE_TOK:
11929
                case FLOOR_TOK:
11930
                case HEX_LITERAL:
11931
                case IDENTIFIER:
11932
                case IDEN_TOK:
11933
                case IF_TOK:
11934
                case INTEGER_LITERAL:
11935
                case IS_INTEGER_TOK:
11936
                case LBRACE:
11937
                case LPAREN:
11938
                case MINUS_TOK:
11939
                case PARENHASH:
11940
                case REGEXP_COMPLEMENT_TOK:
11941
                case REGEXP_CONCAT_TOK:
11942
                case REGEXP_EMPTY_TOK:
11943
                case REGEXP_INTER_TOK:
11944
                case REGEXP_LOOP_TOK:
11945
                case REGEXP_OPT_TOK:
11946
                case REGEXP_PLUS_TOK:
11947
                case REGEXP_RANGE_TOK:
11948
                case REGEXP_SIGMA_TOK:
11949
                case REGEXP_STAR_TOK:
11950
                case REGEXP_UNION_TOK:
11951
                case SEQ_UNIT_TOK:
11952
                case SETS_CARD_TOK:
11953
                case SETS_CHOOSE_TOK:
11954
                case STRING_CHARAT_TOK:
11955
                case STRING_CONCAT_TOK:
11956
                case STRING_CONTAINS_TOK:
11957
                case STRING_INDEXOF_TOK:
11958
                case STRING_ITOS_TOK:
11959
                case STRING_LENGTH_TOK:
11960
                case STRING_LITERAL:
11961
                case STRING_PREFIXOF_TOK:
11962
                case STRING_REPLACE_ALL_TOK:
11963
                case STRING_REPLACE_TOK:
11964
                case STRING_REV_TOK:
11965
                case STRING_STOI_TOK:
11966
                case STRING_SUBSTR_TOK:
11967
                case STRING_SUFFIXOF_TOK:
11968
                case STRING_TOLOWER_TOK:
11969
                case STRING_TOUPPER_TOK:
11970
                case STRING_TO_REGEXP_TOK:
11971
                case SX_TOK:
11972
                case TRANSCLOSURE_TOK:
11973
                case TRANSPOSE_TOK:
11974
                case TRUE_TOK:
11975
                case TUPLE_TOK:
11976
                case UNIVSET_TOK:
11977
                	{
11978
46760
                		alt59=2;
11979
                	}
11980
46760
                    break;
11981
11982
4
                default:
11983
4
                    if (BACKTRACKING>0)
11984
                    {
11985
                        FAILEDFLAG = ANTLR3_TRUE;
11986
                        return ;
11987
                    }
11988
11989
4
                    CONSTRUCTEX();
11990
4
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11991
4
                    EXCEPTION->message      = (void *)"";
11992
4
                    EXCEPTION->decisionNum  = 59;
11993
4
                    EXCEPTION->state        = 0;
11994
11995
11996
4
                    goto ruleformulaEx;
11997
11998
                }
11999
12000
47015
                switch (alt59)
12001
                {
12002
255
            	case 1:
12003
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1400:7: prefixFormula[f]
12004
            	    {
12005
255
            	        FOLLOWPUSH(FOLLOW_prefixFormula_in_formula4407);
12006
255
            	        prefixFormula(ctx, f);
12007
12008
255
            	        FOLLOWPOP();
12009
255
            	        if  (HASEXCEPTION())
12010
            	        {
12011
            	            goto ruleformulaEx;
12012
            	        }
12013
255
            	        if (HASFAILED())
12014
            	        {
12015
            	            return ;
12016
            	        }
12017
12018
12019
255
            	        if ( BACKTRACKING==0 )
12020
            	        {
12021
255
            	             f = addNots(SOLVER, n, f);
12022
            	        }
12023
12024
12025
            	    }
12026
255
            	    break;
12027
46760
            	case 2:
12028
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1402:7: comparison[f] ( morecomparisons[expressions,operators] )?
12029
            	    {
12030
46760
            	        FOLLOWPUSH(FOLLOW_comparison_in_formula4424);
12031
46760
            	        comparison(ctx, f);
12032
12033
46758
            	        FOLLOWPOP();
12034
46758
            	        if  (HASEXCEPTION())
12035
            	        {
12036
            	            goto ruleformulaEx;
12037
            	        }
12038
46758
            	        if (HASFAILED())
12039
            	        {
12040
            	            return ;
12041
            	        }
12042
12043
12044
46758
            	        if ( BACKTRACKING==0 )
12045
            	        {
12046
46758
            	             f = addNots(SOLVER, n, f);
12047
46758
            	                    expressions.push_back(f);
12048
12049
            	        }
12050
12051
12052
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1406:7: ( morecomparisons[expressions,operators] )?
12053
            	        {
12054
46758
            	            int alt58=2;
12055
46758
            	            switch ( LA(1) )
12056
            	            {
12057
16645
            	                case AND_TOK:
12058
            	                case IFF_TOK:
12059
            	                case IMPLIES_TOK:
12060
            	                case OR_TOK:
12061
            	                case XOR_TOK:
12062
            	                	{
12063
16645
            	                		alt58=1;
12064
            	                	}
12065
16645
            	                    break;
12066
            	            }
12067
12068
46758
            	            switch (alt58)
12069
            	            {
12070
16645
            	        	case 1:
12071
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1406:7: morecomparisons[expressions,operators]
12072
            	        	    {
12073
16645
            	        	        FOLLOWPUSH(FOLLOW_morecomparisons_in_formula4441);
12074
16645
            	        	        morecomparisons(ctx, expressions, operators);
12075
12076
16645
            	        	        FOLLOWPOP();
12077
16645
            	        	        if  (HASEXCEPTION())
12078
            	        	        {
12079
            	        	            goto ruleformulaEx;
12080
            	        	        }
12081
16645
            	        	        if (HASFAILED())
12082
            	        	        {
12083
            	        	            return ;
12084
            	        	        }
12085
12086
12087
            	        	    }
12088
16645
            	        	    break;
12089
12090
            	            }
12091
            	        }
12092
12093
46758
            	        if ( BACKTRACKING==0 )
12094
            	        {
12095
12096
46758
            	                    f = createPrecedenceTree(PARSER_STATE, SOLVER, expressions, operators);
12097
12098
            	        }
12099
12100
12101
            	    }
12102
46758
            	    break;
12103
12104
                }
12105
            }
12106
12107
        }
12108
12109
    }
12110
12111
    // This is where rules clean up and exit
12112
    //
12113
47013
    goto ruleformulaEx; /* Prevent compiler warnings */
12114
47017
    ruleformulaEx: ;
12115
12116
47017
            if (HASEXCEPTION())
12117
            {
12118
4
                PREPORTERROR();
12119
                PRECOVER();
12120
            }
12121
47013
    return ;
12122
}
12123
/* $ANTLR end formula */
12124
12125
/**
12126
 * $ANTLR start morecomparisons
12127
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1413:1: morecomparisons[std::vector<cvc5::api::Term>& expressions,\n std::vector<unsigned>& operators] returns [size_t i = 0] : booleanBinop[op] n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? ) ;
12128
 */
12129
static size_t
12130
27690
morecomparisons(pCvcParser ctx, std::vector<cvc5::api::Term>& expressions, std::vector<unsigned>& operators)
12131
{
12132
    size_t i;
12133
12134
12135
    size_t n;
12136
    #undef	RETURN_TYPE_n
12137
    #define	RETURN_TYPE_n size_t
12138
12139
    /* Initialize rule variables
12140
     */
12141
27690
    i =  0;
12142
12143
12144
12145
      unsigned op;
12146
55380
      api::Term f;
12147
27690
      i= expressions.size();
12148
12149
12150
    {
12151
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1420:3: ( booleanBinop[op] n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? ) )
12152
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1420:5: booleanBinop[op] n= nots ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? )
12153
        {
12154
27690
            FOLLOWPUSH(FOLLOW_booleanBinop_in_morecomparisons4480);
12155
27690
            booleanBinop(ctx, op);
12156
12157
27690
            FOLLOWPOP();
12158
27690
            if  (HASEXCEPTION())
12159
            {
12160
                goto rulemorecomparisonsEx;
12161
            }
12162
27690
            if (HASFAILED())
12163
            {
12164
                return i;
12165
            }
12166
12167
12168
27690
            if ( BACKTRACKING==0 )
12169
            {
12170
27690
                 operators.push_back(op);
12171
            }
12172
12173
12174
27690
            FOLLOWPUSH(FOLLOW_nots_in_morecomparisons4491);
12175
27690
            n=nots(ctx);
12176
12177
27690
            FOLLOWPOP();
12178
27690
            if  (HASEXCEPTION())
12179
            {
12180
                goto rulemorecomparisonsEx;
12181
            }
12182
27690
            if (HASFAILED())
12183
            {
12184
                return i;
12185
            }
12186
12187
12188
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1422:5: ( prefixFormula[f] | comparison[f] ( morecomparisons[expressions,operators] )? )
12189
            {
12190
27690
                int alt61=2;
12191
27690
                switch ( LA(1) )
12192
                {
12193
2
                case EXISTS_TOK:
12194
                case FORALL_TOK:
12195
                case LAMBDA_TOK:
12196
                case LET_TOK:
12197
                	{
12198
2
                		alt61=1;
12199
                	}
12200
2
                    break;
12201
27688
                case ABS_TOK:
12202
                case ARRAY_TOK:
12203
                case BAR:
12204
                case BINARY_LITERAL:
12205
                case BVASHR_TOK:
12206
                case BVCOMP_TOK:
12207
                case BVGE_TOK:
12208
                case BVGT_TOK:
12209
                case BVLE_TOK:
12210
                case BVLSHR_TOK:
12211
                case BVLT_TOK:
12212
                case BVMULT_TOK:
12213
                case BVNAND_TOK:
12214
                case BVNEG_TOK:
12215
                case BVNOR_TOK:
12216
                case BVPLUS_TOK:
12217
                case BVREPEAT_TOK:
12218
                case BVROTL_TOK:
12219
                case BVROTR_TOK:
12220
                case BVSDIV_TOK:
12221
                case BVSGE_TOK:
12222
                case BVSGT_TOK:
12223
                case BVSHL_TOK:
12224
                case BVSLE_TOK:
12225
                case BVSLT_TOK:
12226
                case BVSMOD_TOK:
12227
                case BVSREM_TOK:
12228
                case BVSUB_TOK:
12229
                case BVUDIV_TOK:
12230
                case BVUMINUS_TOK:
12231
                case BVUREM_TOK:
12232
                case BVXNOR_TOK:
12233
                case BVXOR_TOK:
12234
                case BVZEROEXTEND_TOK:
12235
                case DECIMAL_LITERAL:
12236
                case DISTINCT_TOK:
12237
                case DIVISIBLE_TOK:
12238
                case FALSE_TOK:
12239
                case FLOOR_TOK:
12240
                case HEX_LITERAL:
12241
                case IDENTIFIER:
12242
                case IDEN_TOK:
12243
                case IF_TOK:
12244
                case INTEGER_LITERAL:
12245
                case IS_INTEGER_TOK:
12246
                case LBRACE:
12247
                case LPAREN:
12248
                case MINUS_TOK:
12249
                case PARENHASH:
12250
                case REGEXP_COMPLEMENT_TOK:
12251
                case REGEXP_CONCAT_TOK:
12252
                case REGEXP_EMPTY_TOK:
12253
                case REGEXP_INTER_TOK:
12254
                case REGEXP_LOOP_TOK:
12255
                case REGEXP_OPT_TOK:
12256
                case REGEXP_PLUS_TOK:
12257
                case REGEXP_RANGE_TOK:
12258
                case REGEXP_SIGMA_TOK:
12259
                case REGEXP_STAR_TOK:
12260
                case REGEXP_UNION_TOK:
12261
                case SEQ_UNIT_TOK:
12262
                case SETS_CARD_TOK:
12263
                case SETS_CHOOSE_TOK:
12264
                case STRING_CHARAT_TOK:
12265
                case STRING_CONCAT_TOK:
12266
                case STRING_CONTAINS_TOK:
12267
                case STRING_INDEXOF_TOK:
12268
                case STRING_ITOS_TOK:
12269
                case STRING_LENGTH_TOK:
12270
                case STRING_LITERAL:
12271
                case STRING_PREFIXOF_TOK:
12272
                case STRING_REPLACE_ALL_TOK:
12273
                case STRING_REPLACE_TOK:
12274
                case STRING_REV_TOK:
12275
                case STRING_STOI_TOK:
12276
                case STRING_SUBSTR_TOK:
12277
                case STRING_SUFFIXOF_TOK:
12278
                case STRING_TOLOWER_TOK:
12279
                case STRING_TOUPPER_TOK:
12280
                case STRING_TO_REGEXP_TOK:
12281
                case SX_TOK:
12282
                case TRANSCLOSURE_TOK:
12283
                case TRANSPOSE_TOK:
12284
                case TRUE_TOK:
12285
                case TUPLE_TOK:
12286
                case UNIVSET_TOK:
12287
                	{
12288
27688
                		alt61=2;
12289
                	}
12290
27688
                    break;
12291
12292
                default:
12293
                    if (BACKTRACKING>0)
12294
                    {
12295
                        FAILEDFLAG = ANTLR3_TRUE;
12296
                        return i;
12297
                    }
12298
12299
                    CONSTRUCTEX();
12300
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12301
                    EXCEPTION->message      = (void *)"";
12302
                    EXCEPTION->decisionNum  = 61;
12303
                    EXCEPTION->state        = 0;
12304
12305
12306
                    goto rulemorecomparisonsEx;
12307
12308
                }
12309
12310
27690
                switch (alt61)
12311
                {
12312
2
            	case 1:
12313
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1422:7: prefixFormula[f]
12314
            	    {
12315
2
            	        FOLLOWPUSH(FOLLOW_prefixFormula_in_morecomparisons4499);
12316
2
            	        prefixFormula(ctx, f);
12317
12318
2
            	        FOLLOWPOP();
12319
2
            	        if  (HASEXCEPTION())
12320
            	        {
12321
            	            goto rulemorecomparisonsEx;
12322
            	        }
12323
2
            	        if (HASFAILED())
12324
            	        {
12325
            	            return i;
12326
            	        }
12327
12328
12329
2
            	        if ( BACKTRACKING==0 )
12330
            	        {
12331
2
            	             expressions.push_back(addNots(SOLVER, n, f));
12332
            	        }
12333
12334
12335
            	    }
12336
2
            	    break;
12337
27688
            	case 2:
12338
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1424:7: comparison[f] ( morecomparisons[expressions,operators] )?
12339
            	    {
12340
27688
            	        FOLLOWPUSH(FOLLOW_comparison_in_morecomparisons4516);
12341
27688
            	        comparison(ctx, f);
12342
12343
27688
            	        FOLLOWPOP();
12344
27688
            	        if  (HASEXCEPTION())
12345
            	        {
12346
            	            goto rulemorecomparisonsEx;
12347
            	        }
12348
27688
            	        if (HASFAILED())
12349
            	        {
12350
            	            return i;
12351
            	        }
12352
12353
12354
27688
            	        if ( BACKTRACKING==0 )
12355
            	        {
12356
27688
            	             f = addNots(SOLVER, n, f);
12357
27688
            	                    expressions.push_back(f);
12358
12359
            	        }
12360
12361
12362
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1428:7: ( morecomparisons[expressions,operators] )?
12363
            	        {
12364
27688
            	            int alt60=2;
12365
27688
            	            switch ( LA(1) )
12366
            	            {
12367
11045
            	                case AND_TOK:
12368
            	                case IFF_TOK:
12369
            	                case IMPLIES_TOK:
12370
            	                case OR_TOK:
12371
            	                case XOR_TOK:
12372
            	                	{
12373
11045
            	                		alt60=1;
12374
            	                	}
12375
11045
            	                    break;
12376
            	            }
12377
12378
27688
            	            switch (alt60)
12379
            	            {
12380
11045
            	        	case 1:
12381
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1428:7: morecomparisons[expressions,operators]
12382
            	        	    {
12383
11045
            	        	        FOLLOWPUSH(FOLLOW_morecomparisons_in_morecomparisons4533);
12384
11045
            	        	        morecomparisons(ctx, expressions, operators);
12385
12386
11045
            	        	        FOLLOWPOP();
12387
11045
            	        	        if  (HASEXCEPTION())
12388
            	        	        {
12389
            	        	            goto rulemorecomparisonsEx;
12390
            	        	        }
12391
11045
            	        	        if (HASFAILED())
12392
            	        	        {
12393
            	        	            return i;
12394
            	        	        }
12395
12396
12397
            	        	    }
12398
11045
            	        	    break;
12399
12400
            	            }
12401
            	        }
12402
12403
            	    }
12404
27688
            	    break;
12405
12406
                }
12407
            }
12408
12409
        }
12410
12411
    }
12412
12413
    // This is where rules clean up and exit
12414
    //
12415
27690
    goto rulemorecomparisonsEx; /* Prevent compiler warnings */
12416
27690
    rulemorecomparisonsEx: ;
12417
12418
27690
            if (HASEXCEPTION())
12419
            {
12420
                PREPORTERROR();
12421
                PRECOVER();
12422
            }
12423
27690
    return i;
12424
}
12425
/* $ANTLR end morecomparisons */
12426
12427
/**
12428
 * $ANTLR start nots
12429
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1433:1: nots returns [size_t n = 0] : ( NOT_TOK )* ;
12430
 */
12431
static size_t
12432
74709
nots(pCvcParser ctx)
12433
{
12434
    size_t n;
12435
12436
12437
    /* Initialize rule variables
12438
     */
12439
74709
    n =  0;
12440
12441
12442
    {
12443
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1434:3: ( ( NOT_TOK )* )
12444
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1434:5: ( NOT_TOK )*
12445
        {
12446
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1434:5: ( NOT_TOK )*
12447
12448
            for (;;)
12449
            {
12450
97800
                int alt62=2;
12451
97800
                switch ( LA(1) )
12452
                {
12453
23091
                case NOT_TOK:
12454
                	{
12455
23091
                		alt62=1;
12456
                	}
12457
23091
                    break;
12458
12459
                }
12460
12461
97800
                switch (alt62)
12462
                {
12463
23091
            	case 1:
12464
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1434:7: NOT_TOK
12465
            	    {
12466
23091
            	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_nots4562);
12467
23091
            	        if  (HASEXCEPTION())
12468
            	        {
12469
            	            goto rulenotsEx;
12470
            	        }
12471
23091
            	        if (HASFAILED())
12472
            	        {
12473
            	            return n;
12474
            	        }
12475
12476
12477
23091
            	        if ( BACKTRACKING==0 )
12478
            	        {
12479
23091
            	             ++n
12480
            	            ;
12481
            	        }
12482
12483
12484
            	    }
12485
23091
            	    break;
12486
12487
74709
            	default:
12488
74709
            	    goto loop62;	/* break out of the loop */
12489
            	    break;
12490
                }
12491
23091
            }
12492
74709
            loop62: ; /* Jump out to here if this rule does not match */
12493
12494
12495
        }
12496
12497
    }
12498
12499
    // This is where rules clean up and exit
12500
    //
12501
74709
    goto rulenotsEx; /* Prevent compiler warnings */
12502
74709
    rulenotsEx: ;
12503
12504
74709
            if (HASEXCEPTION())
12505
            {
12506
                PREPORTERROR();
12507
                PRECOVER();
12508
            }
12509
74709
    return n;
12510
}
12511
/* $ANTLR end nots */
12512
12513
/**
12514
 * $ANTLR start prefixFormula
12515
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1437:1: prefixFormula[cvc5::api::Term& f] : ( ( FORALL_TOK | EXISTS_TOK ) LPAREN boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )* RPAREN COLON ( instantiationPatterns[ipl] )? formula[f] | LET_TOK letDecl ( COMMA letDecl )* IN_TOK formula[f] | LAMBDA_TOK LPAREN boundVarDeclsReturn[terms,types] RPAREN COLON formula[f] );
12516
 */
12517
static void
12518
257
prefixFormula(pCvcParser ctx, cvc5::api::Term& f)
12519
{
12520
    /* Initialize rule variables
12521
     */
12522
12523
12524
514
      std::vector<std::string> ids;
12525
514
      std::vector<api::Term> terms;
12526
514
      std::vector<api::Sort> types;
12527
514
      std::vector<api::Term> bvs;
12528
514
      api::Sort t;
12529
      api::Kind k;
12530
514
      api::Term ipl;
12531
12532
    {
12533
        {
12534
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1448:3: ( ( FORALL_TOK | EXISTS_TOK ) LPAREN boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )* RPAREN COLON ( instantiationPatterns[ipl] )? formula[f] | LET_TOK letDecl ( COMMA letDecl )* IN_TOK formula[f] | LAMBDA_TOK LPAREN boundVarDeclsReturn[terms,types] RPAREN COLON formula[f] )
12535
12536
            ANTLR3_UINT32 alt67;
12537
12538
257
            alt67=3;
12539
12540
257
            switch ( LA(1) )
12541
            {
12542
40
            case EXISTS_TOK:
12543
            case FORALL_TOK:
12544
            	{
12545
40
            		alt67=1;
12546
            	}
12547
40
                break;
12548
193
            case LET_TOK:
12549
            	{
12550
193
            		alt67=2;
12551
            	}
12552
193
                break;
12553
24
            case LAMBDA_TOK:
12554
            	{
12555
24
            		alt67=3;
12556
            	}
12557
24
                break;
12558
12559
            default:
12560
                if (BACKTRACKING>0)
12561
                {
12562
                    FAILEDFLAG = ANTLR3_TRUE;
12563
                    return ;
12564
                }
12565
12566
                CONSTRUCTEX();
12567
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12568
                EXCEPTION->message      = (void *)"";
12569
                EXCEPTION->decisionNum  = 67;
12570
                EXCEPTION->state        = 0;
12571
12572
12573
                goto ruleprefixFormulaEx;
12574
12575
            }
12576
12577
257
            switch (alt67)
12578
            {
12579
40
        	case 1:
12580
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1448:5: ( FORALL_TOK | EXISTS_TOK ) LPAREN boundVarDecl[ids,t] ( COMMA boundVarDecl[ids,t] )* RPAREN COLON ( instantiationPatterns[ipl] )? formula[f]
12581
        	    {
12582
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1448:5: ( FORALL_TOK | EXISTS_TOK )
12583
        	        {
12584
40
        	            int alt63=2;
12585
40
        	            switch ( LA(1) )
12586
        	            {
12587
31
        	            case FORALL_TOK:
12588
        	            	{
12589
31
        	            		alt63=1;
12590
        	            	}
12591
31
        	                break;
12592
9
        	            case EXISTS_TOK:
12593
        	            	{
12594
9
        	            		alt63=2;
12595
        	            	}
12596
9
        	                break;
12597
12598
        	            default:
12599
        	                if (BACKTRACKING>0)
12600
        	                {
12601
        	                    FAILEDFLAG = ANTLR3_TRUE;
12602
        	                    return ;
12603
        	                }
12604
12605
        	                CONSTRUCTEX();
12606
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12607
        	                EXCEPTION->message      = (void *)"";
12608
        	                EXCEPTION->decisionNum  = 63;
12609
        	                EXCEPTION->state        = 0;
12610
12611
12612
        	                goto ruleprefixFormulaEx;
12613
12614
        	            }
12615
12616
40
        	            switch (alt63)
12617
        	            {
12618
31
        	        	case 1:
12619
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1448:7: FORALL_TOK
12620
        	        	    {
12621
31
        	        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_prefixFormula4594);
12622
31
        	        	        if  (HASEXCEPTION())
12623
        	        	        {
12624
        	        	            goto ruleprefixFormulaEx;
12625
        	        	        }
12626
31
        	        	        if (HASFAILED())
12627
        	        	        {
12628
        	        	            return ;
12629
        	        	        }
12630
12631
12632
31
        	        	        if ( BACKTRACKING==0 )
12633
        	        	        {
12634
31
        	        	             k = api::FORALL;
12635
        	        	        }
12636
12637
12638
        	        	    }
12639
31
        	        	    break;
12640
9
        	        	case 2:
12641
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1448:41: EXISTS_TOK
12642
        	        	    {
12643
9
        	        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_prefixFormula4600);
12644
9
        	        	        if  (HASEXCEPTION())
12645
        	        	        {
12646
        	        	            goto ruleprefixFormulaEx;
12647
        	        	        }
12648
9
        	        	        if (HASFAILED())
12649
        	        	        {
12650
        	        	            return ;
12651
        	        	        }
12652
12653
12654
9
        	        	        if ( BACKTRACKING==0 )
12655
        	        	        {
12656
9
        	        	             k = api::EXISTS;
12657
        	        	        }
12658
12659
12660
        	        	    }
12661
9
        	        	    break;
12662
12663
        	            }
12664
        	        }
12665
12666
40
        	        if ( BACKTRACKING==0 )
12667
        	        {
12668
40
        	             PARSER_STATE->pushScope();
12669
        	        }
12670
12671
12672
40
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_prefixFormula4612);
12673
40
        	        if  (HASEXCEPTION())
12674
        	        {
12675
        	            goto ruleprefixFormulaEx;
12676
        	        }
12677
40
        	        if (HASFAILED())
12678
        	        {
12679
        	            return ;
12680
        	        }
12681
12682
12683
40
        	        FOLLOWPUSH(FOLLOW_boundVarDecl_in_prefixFormula4618);
12684
40
        	        boundVarDecl(ctx, ids, t);
12685
12686
40
        	        FOLLOWPOP();
12687
40
        	        if  (HASEXCEPTION())
12688
        	        {
12689
        	            goto ruleprefixFormulaEx;
12690
        	        }
12691
40
        	        if (HASFAILED())
12692
        	        {
12693
        	            return ;
12694
        	        }
12695
12696
12697
40
        	        if ( BACKTRACKING==0 )
12698
        	        {
12699
88
        	             for(std::vector<std::string>::const_iterator i = ids.begin(); i != ids.end(); ++i) {
12700
48
        	                    bvs.push_back(PARSER_STATE->bindBoundVar(*i, t));
12701
        	                  }
12702
40
        	                  ids.clear();
12703
12704
        	        }
12705
12706
12707
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1456:5: ( COMMA boundVarDecl[ids,t] )*
12708
12709
        	        for (;;)
12710
        	        {
12711
52
        	            int alt64=2;
12712
52
        	            switch ( LA(1) )
12713
        	            {
12714
12
        	            case COMMA:
12715
        	            	{
12716
12
        	            		alt64=1;
12717
        	            	}
12718
12
        	                break;
12719
12720
        	            }
12721
12722
52
        	            switch (alt64)
12723
        	            {
12724
12
        	        	case 1:
12725
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1456:7: COMMA boundVarDecl[ids,t]
12726
        	        	    {
12727
12
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_prefixFormula4633);
12728
12
        	        	        if  (HASEXCEPTION())
12729
        	        	        {
12730
        	        	            goto ruleprefixFormulaEx;
12731
        	        	        }
12732
12
        	        	        if (HASFAILED())
12733
        	        	        {
12734
        	        	            return ;
12735
        	        	        }
12736
12737
12738
12
        	        	        FOLLOWPUSH(FOLLOW_boundVarDecl_in_prefixFormula4635);
12739
12
        	        	        boundVarDecl(ctx, ids, t);
12740
12741
12
        	        	        FOLLOWPOP();
12742
12
        	        	        if  (HASEXCEPTION())
12743
        	        	        {
12744
        	        	            goto ruleprefixFormulaEx;
12745
        	        	        }
12746
12
        	        	        if (HASFAILED())
12747
        	        	        {
12748
        	        	            return ;
12749
        	        	        }
12750
12751
12752
12
        	        	        if ( BACKTRACKING==0 )
12753
        	        	        {
12754
12755
26
        	        	                    for(std::vector<std::string>::const_iterator i = ids.begin(); i != ids.end(); ++i) {
12756
14
        	        	                      bvs.push_back(PARSER_STATE->bindBoundVar(*i, t));
12757
        	        	                    }
12758
12
        	        	                    ids.clear();
12759
12760
        	        	        }
12761
12762
12763
        	        	    }
12764
12
        	        	    break;
12765
12766
40
        	        	default:
12767
40
        	        	    goto loop64;	/* break out of the loop */
12768
        	        	    break;
12769
        	            }
12770
12
        	        }
12771
40
        	        loop64: ; /* Jump out to here if this rule does not match */
12772
12773
12774
40
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_prefixFormula4653);
12775
40
        	        if  (HASEXCEPTION())
12776
        	        {
12777
        	            goto ruleprefixFormulaEx;
12778
        	        }
12779
40
        	        if (HASFAILED())
12780
        	        {
12781
        	            return ;
12782
        	        }
12783
12784
12785
40
        	        if ( BACKTRACKING==0 )
12786
        	        {
12787
12788
40
        	                  terms.push_back( MK_TERM( api::BOUND_VAR_LIST, bvs ) );
12789
        	        }
12790
12791
12792
40
        	         MATCHT(COLON, &FOLLOW_COLON_in_prefixFormula4661);
12793
40
        	        if  (HASEXCEPTION())
12794
        	        {
12795
        	            goto ruleprefixFormulaEx;
12796
        	        }
12797
40
        	        if (HASFAILED())
12798
        	        {
12799
        	            return ;
12800
        	        }
12801
12802
12803
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1465:11: ( instantiationPatterns[ipl] )?
12804
        	        {
12805
40
        	            int alt65=2;
12806
40
        	            switch ( LA(1) )
12807
        	            {
12808
        	                case PATTERN_TOK:
12809
        	                	{
12810
        	                		alt65=1;
12811
        	                	}
12812
        	                    break;
12813
        	            }
12814
12815
40
        	            switch (alt65)
12816
        	            {
12817
        	        	case 1:
12818
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1465:11: instantiationPatterns[ipl]
12819
        	        	    {
12820
        	        	        FOLLOWPUSH(FOLLOW_instantiationPatterns_in_prefixFormula4663);
12821
        	        	        instantiationPatterns(ctx, ipl);
12822
12823
        	        	        FOLLOWPOP();
12824
        	        	        if  (HASEXCEPTION())
12825
        	        	        {
12826
        	        	            goto ruleprefixFormulaEx;
12827
        	        	        }
12828
        	        	        if (HASFAILED())
12829
        	        	        {
12830
        	        	            return ;
12831
        	        	        }
12832
12833
12834
        	        	    }
12835
        	        	    break;
12836
12837
        	            }
12838
        	        }
12839
12840
40
        	        FOLLOWPUSH(FOLLOW_formula_in_prefixFormula4667);
12841
40
        	        formula(ctx, f);
12842
12843
40
        	        FOLLOWPOP();
12844
40
        	        if  (HASEXCEPTION())
12845
        	        {
12846
        	            goto ruleprefixFormulaEx;
12847
        	        }
12848
40
        	        if (HASFAILED())
12849
        	        {
12850
        	            return ;
12851
        	        }
12852
12853
12854
40
        	        if ( BACKTRACKING==0 )
12855
        	        {
12856
40
        	             PARSER_STATE->popScope();
12857
40
        	                  terms.push_back(f);
12858
40
        	                  if(! ipl.isNull()) {
12859
        	                    terms.push_back(ipl);
12860
        	                  }
12861
40
        	                  f = MK_TERM(k, terms);
12862
12863
        	        }
12864
12865
12866
        	    }
12867
40
        	    break;
12868
193
        	case 2:
12869
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1477:5: LET_TOK letDecl ( COMMA letDecl )* IN_TOK formula[f]
12870
        	    {
12871
193
        	         MATCHT(LET_TOK, &FOLLOW_LET_TOK_in_prefixFormula4686);
12872
193
        	        if  (HASEXCEPTION())
12873
        	        {
12874
        	            goto ruleprefixFormulaEx;
12875
        	        }
12876
193
        	        if (HASFAILED())
12877
        	        {
12878
        	            return ;
12879
        	        }
12880
12881
12882
193
        	        if ( BACKTRACKING==0 )
12883
        	        {
12884
193
        	             PARSER_STATE->pushScope();
12885
        	        }
12886
12887
12888
193
        	        FOLLOWPUSH(FOLLOW_letDecl_in_prefixFormula4694);
12889
193
        	        letDecl(ctx);
12890
12891
193
        	        FOLLOWPOP();
12892
193
        	        if  (HASEXCEPTION())
12893
        	        {
12894
        	            goto ruleprefixFormulaEx;
12895
        	        }
12896
193
        	        if (HASFAILED())
12897
        	        {
12898
        	            return ;
12899
        	        }
12900
12901
12902
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1478:13: ( COMMA letDecl )*
12903
12904
        	        for (;;)
12905
        	        {
12906
383
        	            int alt66=2;
12907
383
        	            switch ( LA(1) )
12908
        	            {
12909
190
        	            case COMMA:
12910
        	            	{
12911
190
        	            		alt66=1;
12912
        	            	}
12913
190
        	                break;
12914
12915
        	            }
12916
12917
383
        	            switch (alt66)
12918
        	            {
12919
190
        	        	case 1:
12920
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1478:15: COMMA letDecl
12921
        	        	    {
12922
190
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_prefixFormula4698);
12923
190
        	        	        if  (HASEXCEPTION())
12924
        	        	        {
12925
        	        	            goto ruleprefixFormulaEx;
12926
        	        	        }
12927
190
        	        	        if (HASFAILED())
12928
        	        	        {
12929
        	        	            return ;
12930
        	        	        }
12931
12932
12933
190
        	        	        FOLLOWPUSH(FOLLOW_letDecl_in_prefixFormula4700);
12934
190
        	        	        letDecl(ctx);
12935
12936
190
        	        	        FOLLOWPOP();
12937
190
        	        	        if  (HASEXCEPTION())
12938
        	        	        {
12939
        	        	            goto ruleprefixFormulaEx;
12940
        	        	        }
12941
190
        	        	        if (HASFAILED())
12942
        	        	        {
12943
        	        	            return ;
12944
        	        	        }
12945
12946
12947
        	        	    }
12948
190
        	        	    break;
12949
12950
193
        	        	default:
12951
193
        	        	    goto loop66;	/* break out of the loop */
12952
        	        	    break;
12953
        	            }
12954
190
        	        }
12955
193
        	        loop66: ; /* Jump out to here if this rule does not match */
12956
12957
12958
193
        	         MATCHT(IN_TOK, &FOLLOW_IN_TOK_in_prefixFormula4709);
12959
193
        	        if  (HASEXCEPTION())
12960
        	        {
12961
        	            goto ruleprefixFormulaEx;
12962
        	        }
12963
193
        	        if (HASFAILED())
12964
        	        {
12965
        	            return ;
12966
        	        }
12967
12968
12969
193
        	        FOLLOWPUSH(FOLLOW_formula_in_prefixFormula4711);
12970
193
        	        formula(ctx, f);
12971
12972
193
        	        FOLLOWPOP();
12973
193
        	        if  (HASEXCEPTION())
12974
        	        {
12975
        	            goto ruleprefixFormulaEx;
12976
        	        }
12977
193
        	        if (HASFAILED())
12978
        	        {
12979
        	            return ;
12980
        	        }
12981
12982
12983
193
        	        if ( BACKTRACKING==0 )
12984
        	        {
12985
193
        	             PARSER_STATE->popScope();
12986
        	        }
12987
12988
12989
        	    }
12990
193
        	    break;
12991
24
        	case 3:
12992
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1482:5: LAMBDA_TOK LPAREN boundVarDeclsReturn[terms,types] RPAREN COLON formula[f]
12993
        	    {
12994
24
        	         MATCHT(LAMBDA_TOK, &FOLLOW_LAMBDA_TOK_in_prefixFormula4726);
12995
24
        	        if  (HASEXCEPTION())
12996
        	        {
12997
        	            goto ruleprefixFormulaEx;
12998
        	        }
12999
24
        	        if (HASFAILED())
13000
        	        {
13001
        	            return ;
13002
        	        }
13003
13004
13005
24
        	        if ( BACKTRACKING==0 )
13006
        	        {
13007
24
        	             PARSER_STATE->pushScope();
13008
        	        }
13009
13010
13011
24
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_prefixFormula4730);
13012
24
        	        if  (HASEXCEPTION())
13013
        	        {
13014
        	            goto ruleprefixFormulaEx;
13015
        	        }
13016
24
        	        if (HASFAILED())
13017
        	        {
13018
        	            return ;
13019
        	        }
13020
13021
13022
24
        	        FOLLOWPUSH(FOLLOW_boundVarDeclsReturn_in_prefixFormula4736);
13023
24
        	        boundVarDeclsReturn(ctx, terms, types);
13024
13025
24
        	        FOLLOWPOP();
13026
24
        	        if  (HASEXCEPTION())
13027
        	        {
13028
        	            goto ruleprefixFormulaEx;
13029
        	        }
13030
24
        	        if (HASFAILED())
13031
        	        {
13032
        	            return ;
13033
        	        }
13034
13035
13036
24
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_prefixFormula4743);
13037
24
        	        if  (HASEXCEPTION())
13038
        	        {
13039
        	            goto ruleprefixFormulaEx;
13040
        	        }
13041
24
        	        if (HASFAILED())
13042
        	        {
13043
        	            return ;
13044
        	        }
13045
13046
13047
24
        	         MATCHT(COLON, &FOLLOW_COLON_in_prefixFormula4745);
13048
24
        	        if  (HASEXCEPTION())
13049
        	        {
13050
        	            goto ruleprefixFormulaEx;
13051
        	        }
13052
24
        	        if (HASFAILED())
13053
        	        {
13054
        	            return ;
13055
        	        }
13056
13057
13058
24
        	        FOLLOWPUSH(FOLLOW_formula_in_prefixFormula4747);
13059
24
        	        formula(ctx, f);
13060
13061
24
        	        FOLLOWPOP();
13062
24
        	        if  (HASEXCEPTION())
13063
        	        {
13064
        	            goto ruleprefixFormulaEx;
13065
        	        }
13066
24
        	        if (HASFAILED())
13067
        	        {
13068
        	            return ;
13069
        	        }
13070
13071
13072
24
        	        if ( BACKTRACKING==0 )
13073
        	        {
13074
24
        	             PARSER_STATE->popScope();
13075
48
        	                  api::Term bvl = MK_TERM( api::BOUND_VAR_LIST, terms );
13076
24
        	                  f = MK_TERM( api::LAMBDA, bvl, f );
13077
13078
        	        }
13079
13080
13081
        	    }
13082
24
        	    break;
13083
13084
            }
13085
        }
13086
    }
13087
13088
    // This is where rules clean up and exit
13089
    //
13090
257
    goto ruleprefixFormulaEx; /* Prevent compiler warnings */
13091
257
    ruleprefixFormulaEx: ;
13092
13093
257
            if (HASEXCEPTION())
13094
            {
13095
                PREPORTERROR();
13096
                PRECOVER();
13097
            }
13098
257
    return ;
13099
}
13100
/* $ANTLR end prefixFormula */
13101
13102
/**
13103
 * $ANTLR start instantiationPatterns
13104
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1491:1: instantiationPatterns[ cvc5::api::Term& expr ] : ( PATTERN_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN COLON )+ ;
13105
 */
13106
static void
13107
instantiationPatterns(pCvcParser ctx, cvc5::api::Term& expr)
13108
{
13109
    /* Initialize rule variables
13110
     */
13111
13112
13113
      std::vector<api::Term> args;
13114
      api::Term f;
13115
      std::vector<api::Term> patterns;
13116
13117
    {
13118
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:3: ( ( PATTERN_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN COLON )+ )
13119
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:5: ( PATTERN_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN COLON )+
13120
        {
13121
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:5: ( PATTERN_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN COLON )+
13122
            {
13123
                int cnt69=0;
13124
13125
                for (;;)
13126
                {
13127
                    int alt69=2;
13128
            	switch ( LA(1) )
13129
            	{
13130
            	case PATTERN_TOK:
13131
            		{
13132
            			alt69=1;
13133
            		}
13134
            	    break;
13135
13136
            	}
13137
13138
            	switch (alt69)
13139
            	{
13140
            	    case 1:
13141
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:7: PATTERN_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN COLON
13142
            	        {
13143
            	             MATCHT(PATTERN_TOK, &FOLLOW_PATTERN_TOK_in_instantiationPatterns4775);
13144
            	            if  (HASEXCEPTION())
13145
            	            {
13146
            	                goto ruleinstantiationPatternsEx;
13147
            	            }
13148
            	            if (HASFAILED())
13149
            	            {
13150
            	                return ;
13151
            	            }
13152
13153
13154
            	             MATCHT(LPAREN, &FOLLOW_LPAREN_in_instantiationPatterns4777);
13155
            	            if  (HASEXCEPTION())
13156
            	            {
13157
            	                goto ruleinstantiationPatternsEx;
13158
            	            }
13159
            	            if (HASFAILED())
13160
            	            {
13161
            	                return ;
13162
            	            }
13163
13164
13165
            	            FOLLOWPUSH(FOLLOW_formula_in_instantiationPatterns4779);
13166
            	            formula(ctx, f);
13167
13168
            	            FOLLOWPOP();
13169
            	            if  (HASEXCEPTION())
13170
            	            {
13171
            	                goto ruleinstantiationPatternsEx;
13172
            	            }
13173
            	            if (HASFAILED())
13174
            	            {
13175
            	                return ;
13176
            	            }
13177
13178
13179
            	            if ( BACKTRACKING==0 )
13180
            	            {
13181
            	                 args.push_back( f );
13182
            	            }
13183
13184
13185
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:62: ( COMMA formula[f] )*
13186
13187
            	            for (;;)
13188
            	            {
13189
            	                int alt68=2;
13190
            	                switch ( LA(1) )
13191
            	                {
13192
            	                case COMMA:
13193
            	                	{
13194
            	                		alt68=1;
13195
            	                	}
13196
            	                    break;
13197
13198
            	                }
13199
13200
            	                switch (alt68)
13201
            	                {
13202
            	            	case 1:
13203
            	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1497:63: COMMA formula[f]
13204
            	            	    {
13205
            	            	         MATCHT(COMMA, &FOLLOW_COMMA_in_instantiationPatterns4785);
13206
            	            	        if  (HASEXCEPTION())
13207
            	            	        {
13208
            	            	            goto ruleinstantiationPatternsEx;
13209
            	            	        }
13210
            	            	        if (HASFAILED())
13211
            	            	        {
13212
            	            	            return ;
13213
            	            	        }
13214
13215
13216
            	            	        FOLLOWPUSH(FOLLOW_formula_in_instantiationPatterns4787);
13217
            	            	        formula(ctx, f);
13218
13219
            	            	        FOLLOWPOP();
13220
            	            	        if  (HASEXCEPTION())
13221
            	            	        {
13222
            	            	            goto ruleinstantiationPatternsEx;
13223
            	            	        }
13224
            	            	        if (HASFAILED())
13225
            	            	        {
13226
            	            	            return ;
13227
            	            	        }
13228
13229
13230
            	            	        if ( BACKTRACKING==0 )
13231
            	            	        {
13232
            	            	             args.push_back( f );
13233
            	            	        }
13234
13235
13236
            	            	    }
13237
            	            	    break;
13238
13239
            	            	default:
13240
            	            	    goto loop68;	/* break out of the loop */
13241
            	            	    break;
13242
            	                }
13243
            	            }
13244
            	            loop68: ; /* Jump out to here if this rule does not match */
13245
13246
13247
            	             MATCHT(RPAREN, &FOLLOW_RPAREN_in_instantiationPatterns4795);
13248
            	            if  (HASEXCEPTION())
13249
            	            {
13250
            	                goto ruleinstantiationPatternsEx;
13251
            	            }
13252
            	            if (HASFAILED())
13253
            	            {
13254
            	                return ;
13255
            	            }
13256
13257
13258
            	             MATCHT(COLON, &FOLLOW_COLON_in_instantiationPatterns4797);
13259
            	            if  (HASEXCEPTION())
13260
            	            {
13261
            	                goto ruleinstantiationPatternsEx;
13262
            	            }
13263
            	            if (HASFAILED())
13264
            	            {
13265
            	                return ;
13266
            	            }
13267
13268
13269
            	            if ( BACKTRACKING==0 )
13270
            	            {
13271
            	                 patterns.push_back( MK_TERM( api::INST_PATTERN, args ) );
13272
            	                        args.clear();
13273
13274
            	            }
13275
13276
13277
            	        }
13278
            	        break;
13279
13280
            	    default:
13281
13282
            		if ( cnt69 >= 1 )
13283
            		{
13284
            		    goto loop69;
13285
            		}
13286
            		if (BACKTRACKING>0)
13287
            		{
13288
            		    FAILEDFLAG = ANTLR3_TRUE;
13289
            		    return ;
13290
            		}
13291
13292
            		/* mismatchedSetEx()
13293
            		 */
13294
            		CONSTRUCTEX();
13295
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
13296
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
13297
13298
13299
            		goto ruleinstantiationPatternsEx;
13300
            	}
13301
            	cnt69++;
13302
                }
13303
                loop69: ;	/* Jump to here if this rule does not match */
13304
            }
13305
13306
            if ( BACKTRACKING==0 )
13307
            {
13308
                 if(! patterns.empty()) {
13309
                       expr = MK_TERM( api::INST_PATTERN_LIST, patterns );
13310
                       }
13311
13312
            }
13313
13314
13315
        }
13316
13317
    }
13318
13319
    // This is where rules clean up and exit
13320
    //
13321
    goto ruleinstantiationPatternsEx; /* Prevent compiler warnings */
13322
    ruleinstantiationPatternsEx: ;
13323
13324
            if (HASEXCEPTION())
13325
            {
13326
                PREPORTERROR();
13327
                PRECOVER();
13328
            }
13329
    return ;
13330
}
13331
/* $ANTLR end instantiationPatterns */
13332
13333
/**
13334
 * $ANTLR start letDecl
13335
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1510:1: letDecl : identifier[name,CHECK_NONE,SYM_VARIABLE] EQUAL_TOK formula[e] ;
13336
 */
13337
static void
13338
383
letDecl(pCvcParser ctx)
13339
{
13340
    /* Initialize rule variables
13341
     */
13342
13343
13344
766
      api::Term e;
13345
766
      std::string name;
13346
13347
    {
13348
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1515:3: ( identifier[name,CHECK_NONE,SYM_VARIABLE] EQUAL_TOK formula[e] )
13349
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1515:5: identifier[name,CHECK_NONE,SYM_VARIABLE] EQUAL_TOK formula[e]
13350
        {
13351
383
            FOLLOWPUSH(FOLLOW_identifier_in_letDecl4834);
13352
383
            identifier(ctx, name, CHECK_NONE, SYM_VARIABLE);
13353
13354
383
            FOLLOWPOP();
13355
383
            if  (HASEXCEPTION())
13356
            {
13357
                goto ruleletDeclEx;
13358
            }
13359
383
            if (HASFAILED())
13360
            {
13361
                return ;
13362
            }
13363
13364
13365
383
             MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_letDecl4837);
13366
383
            if  (HASEXCEPTION())
13367
            {
13368
                goto ruleletDeclEx;
13369
            }
13370
383
            if (HASFAILED())
13371
            {
13372
                return ;
13373
            }
13374
13375
13376
383
            FOLLOWPUSH(FOLLOW_formula_in_letDecl4839);
13377
383
            formula(ctx, e);
13378
13379
383
            FOLLOWPOP();
13380
383
            if  (HASEXCEPTION())
13381
            {
13382
                goto ruleletDeclEx;
13383
            }
13384
383
            if (HASFAILED())
13385
            {
13386
                return ;
13387
            }
13388
13389
13390
383
            if ( BACKTRACKING==0 )
13391
            {
13392
13393
766
                      Debug("parser") << language::SetLanguage(Language::LANG_CVC)
13394
383
                                      << e.getSort() << std::endl;
13395
383
                      PARSER_STATE->defineVar(name, e);
13396
766
                      Debug("parser") << "LET[" << PARSER_STATE->scopeLevel() << "]: "
13397
383
                                      << name << std::endl
13398
383
                                      << " ==>" << " " << e << std::endl;
13399
13400
            }
13401
13402
13403
        }
13404
13405
    }
13406
13407
    // This is where rules clean up and exit
13408
    //
13409
383
    goto ruleletDeclEx; /* Prevent compiler warnings */
13410
383
    ruleletDeclEx: ;
13411
13412
383
            if (HASEXCEPTION())
13413
            {
13414
                PREPORTERROR();
13415
                PRECOVER();
13416
            }
13417
383
    return ;
13418
}
13419
/* $ANTLR end letDecl */
13420
13421
/**
13422
 * $ANTLR start booleanBinop
13423
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1526:1: booleanBinop[unsigned& op] : ( IFF_TOK | IMPLIES_TOK | OR_TOK | XOR_TOK | AND_TOK );
13424
 */
13425
static void
13426
27690
booleanBinop(pCvcParser ctx, unsigned& op)
13427
{
13428
    /* Initialize rule variables
13429
     */
13430
13431
13432
27690
      op = LT(1)->getType(LT(1));
13433
13434
    {
13435
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1530:3: ( IFF_TOK | IMPLIES_TOK | OR_TOK | XOR_TOK | AND_TOK )
13436
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:
13437
        {
13438
27690
            if ( LA(1) == AND_TOK || LA(1) == IFF_TOK || LA(1) == IMPLIES_TOK || LA(1) == OR_TOK || LA(1) == XOR_TOK )
13439
            {
13440
27690
                CONSUME();
13441
27690
                PERRORRECOVERY=ANTLR3_FALSE;
13442
27690
                FAILEDFLAG=ANTLR3_FALSE;
13443
13444
            }
13445
            else
13446
            {
13447
                if (BACKTRACKING>0)
13448
                {
13449
                    FAILEDFLAG = ANTLR3_TRUE;
13450
                    return ;
13451
                }
13452
13453
                CONSTRUCTEX();
13454
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
13455
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
13456
                EXCEPTION->expectingSet = NULL;
13457
13458
                goto rulebooleanBinopEx;
13459
            }
13460
13461
13462
        }
13463
13464
    }
13465
13466
    // This is where rules clean up and exit
13467
    //
13468
27690
    goto rulebooleanBinopEx; /* Prevent compiler warnings */
13469
27690
    rulebooleanBinopEx: ;
13470
13471
27690
            if (HASEXCEPTION())
13472
            {
13473
                PREPORTERROR();
13474
                PRECOVER();
13475
            }
13476
27690
    return ;
13477
}
13478
/* $ANTLR end booleanBinop */
13479
13480
/**
13481
 * $ANTLR start comparison
13482
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1537:1: comparison[cvc5::api::Term& f] : term[f] ( comparisonBinop[op] term[f] )* ;
13483
 */
13484
static void
13485
74448
comparison(pCvcParser ctx, cvc5::api::Term& f)
13486
{
13487
    /* Initialize rule variables
13488
     */
13489
13490
13491
148896
      std::vector<cvc5::api::Term> expressions;
13492
148896
      std::vector<unsigned> operators;
13493
      unsigned op;
13494
13495
    {
13496
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1543:3: ( term[f] ( comparisonBinop[op] term[f] )* )
13497
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1543:5: term[f] ( comparisonBinop[op] term[f] )*
13498
        {
13499
74448
            FOLLOWPUSH(FOLLOW_term_in_comparison4908);
13500
74448
            term(ctx, f);
13501
13502
74446
            FOLLOWPOP();
13503
74446
            if  (HASEXCEPTION())
13504
            {
13505
                goto rulecomparisonEx;
13506
            }
13507
74446
            if (HASFAILED())
13508
            {
13509
                return ;
13510
            }
13511
13512
13513
74446
            if ( BACKTRACKING==0 )
13514
            {
13515
74446
                 expressions.push_back(f);
13516
            }
13517
13518
13519
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1544:5: ( comparisonBinop[op] term[f] )*
13520
13521
            for (;;)
13522
            {
13523
78946
                int alt70=2;
13524
78946
                switch ( LA(1) )
13525
                {
13526
4500
                case DISEQUAL_TOK:
13527
                case EQUAL_TOK:
13528
                case FMF_CARD_TOK:
13529
                case GEQ_TOK:
13530
                case GT_TOK:
13531
                case LEQ_TOK:
13532
                case LT_TOK:
13533
                case MEMBER_TOK:
13534
                	{
13535
4500
                		alt70=1;
13536
                	}
13537
4500
                    break;
13538
13539
                }
13540
13541
78946
                switch (alt70)
13542
                {
13543
4500
            	case 1:
13544
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1544:7: comparisonBinop[op] term[f]
13545
            	    {
13546
4500
            	        FOLLOWPUSH(FOLLOW_comparisonBinop_in_comparison4919);
13547
4500
            	        comparisonBinop(ctx, op);
13548
13549
4500
            	        FOLLOWPOP();
13550
4500
            	        if  (HASEXCEPTION())
13551
            	        {
13552
            	            goto rulecomparisonEx;
13553
            	        }
13554
4500
            	        if (HASFAILED())
13555
            	        {
13556
            	            return ;
13557
            	        }
13558
13559
13560
4500
            	        FOLLOWPUSH(FOLLOW_term_in_comparison4922);
13561
4500
            	        term(ctx, f);
13562
13563
4500
            	        FOLLOWPOP();
13564
4500
            	        if  (HASEXCEPTION())
13565
            	        {
13566
            	            goto rulecomparisonEx;
13567
            	        }
13568
4500
            	        if (HASFAILED())
13569
            	        {
13570
            	            return ;
13571
            	        }
13572
13573
13574
4500
            	        if ( BACKTRACKING==0 )
13575
            	        {
13576
4500
            	             operators.push_back(op); expressions.push_back(f);
13577
            	        }
13578
13579
13580
            	    }
13581
4500
            	    break;
13582
13583
74446
            	default:
13584
74446
            	    goto loop70;	/* break out of the loop */
13585
            	    break;
13586
                }
13587
4500
            }
13588
74446
            loop70: ; /* Jump out to here if this rule does not match */
13589
13590
13591
74446
            if ( BACKTRACKING==0 )
13592
            {
13593
74446
                 f = createPrecedenceTree(PARSER_STATE, SOLVER, expressions, operators);
13594
            }
13595
13596
13597
        }
13598
13599
    }
13600
13601
    // This is where rules clean up and exit
13602
    //
13603
74446
    goto rulecomparisonEx; /* Prevent compiler warnings */
13604
74446
    rulecomparisonEx: ;
13605
13606
74446
            if (HASEXCEPTION())
13607
            {
13608
                PREPORTERROR();
13609
                PRECOVER();
13610
            }
13611
74446
    return ;
13612
}
13613
/* $ANTLR end comparison */
13614
13615
/**
13616
 * $ANTLR start comparisonBinop
13617
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1549:1: comparisonBinop[unsigned& op] : ( EQUAL_TOK | DISEQUAL_TOK | GT_TOK | GEQ_TOK | LT_TOK | LEQ_TOK | MEMBER_TOK | FMF_CARD_TOK );
13618
 */
13619
static void
13620
4500
comparisonBinop(pCvcParser ctx, unsigned& op)
13621
{
13622
    /* Initialize rule variables
13623
     */
13624
13625
13626
4500
      op = LT(1)->getType(LT(1));
13627
13628
    {
13629
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1553:3: ( EQUAL_TOK | DISEQUAL_TOK | GT_TOK | GEQ_TOK | LT_TOK | LEQ_TOK | MEMBER_TOK | FMF_CARD_TOK )
13630
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:
13631
        {
13632
4500
            if ( LA(1) == DISEQUAL_TOK || LA(1) == EQUAL_TOK || LA(1) == FMF_CARD_TOK || LA(1) == GEQ_TOK || LA(1) == GT_TOK || LA(1) == LEQ_TOK || ((LA(1) >= LT_TOK) && (LA(1) <= MEMBER_TOK)) )
13633
            {
13634
4500
                CONSUME();
13635
4500
                PERRORRECOVERY=ANTLR3_FALSE;
13636
4500
                FAILEDFLAG=ANTLR3_FALSE;
13637
13638
            }
13639
            else
13640
            {
13641
                if (BACKTRACKING>0)
13642
                {
13643
                    FAILEDFLAG = ANTLR3_TRUE;
13644
                    return ;
13645
                }
13646
13647
                CONSTRUCTEX();
13648
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
13649
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
13650
                EXCEPTION->expectingSet = NULL;
13651
13652
                goto rulecomparisonBinopEx;
13653
            }
13654
13655
13656
        }
13657
13658
    }
13659
13660
    // This is where rules clean up and exit
13661
    //
13662
4500
    goto rulecomparisonBinopEx; /* Prevent compiler warnings */
13663
4500
    rulecomparisonBinopEx: ;
13664
13665
4500
            if (HASEXCEPTION())
13666
            {
13667
                PREPORTERROR();
13668
                PRECOVER();
13669
            }
13670
4500
    return ;
13671
}
13672
/* $ANTLR end comparisonBinop */
13673
13674
/**
13675
 * $ANTLR start arithmeticBinop
13676
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1563:1: arithmeticBinop[unsigned& op] : ( PLUS_TOK | MINUS_TOK | STAR_TOK | INTDIV_TOK | MOD_TOK | DIV_TOK | EXP_TOK );
13677
 */
13678
static void
13679
1285
arithmeticBinop(pCvcParser ctx, unsigned& op)
13680
{
13681
    /* Initialize rule variables
13682
     */
13683
13684
13685
1285
      op = LT(1)->getType(LT(1));
13686
13687
    {
13688
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1567:3: ( PLUS_TOK | MINUS_TOK | STAR_TOK | INTDIV_TOK | MOD_TOK | DIV_TOK | EXP_TOK )
13689
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:
13690
        {
13691
1285
            if ( LA(1) == DIV_TOK || LA(1) == EXP_TOK || LA(1) == INTDIV_TOK || ((LA(1) >= MINUS_TOK) && (LA(1) <= MOD_TOK)) || LA(1) == PLUS_TOK || LA(1) == STAR_TOK )
13692
            {
13693
1285
                CONSUME();
13694
1285
                PERRORRECOVERY=ANTLR3_FALSE;
13695
1285
                FAILEDFLAG=ANTLR3_FALSE;
13696
13697
            }
13698
            else
13699
            {
13700
                if (BACKTRACKING>0)
13701
                {
13702
                    FAILEDFLAG = ANTLR3_TRUE;
13703
                    return ;
13704
                }
13705
13706
                CONSTRUCTEX();
13707
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
13708
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
13709
                EXCEPTION->expectingSet = NULL;
13710
13711
                goto rulearithmeticBinopEx;
13712
            }
13713
13714
13715
        }
13716
13717
    }
13718
13719
    // This is where rules clean up and exit
13720
    //
13721
1285
    goto rulearithmeticBinopEx; /* Prevent compiler warnings */
13722
1285
    rulearithmeticBinopEx: ;
13723
13724
1285
            if (HASEXCEPTION())
13725
            {
13726
                PREPORTERROR();
13727
                PRECOVER();
13728
            }
13729
1285
    return ;
13730
}
13731
/* $ANTLR end arithmeticBinop */
13732
13733
/**
13734
 * $ANTLR start term
13735
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1577:1: term[cvc5::api::Term& f] : uminusTerm[f] ( WITH_TOK ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) ) | ( arithmeticBinop[op] uminusTerm[f] )* ) ;
13736
 */
13737
static void
13738
78993
term(pCvcParser ctx, cvc5::api::Term& f)
13739
{
13740
    /* Initialize rule variables
13741
     */
13742
13743
13744
157986
      std::vector<cvc5::api::Term> expressions;
13745
157986
      std::vector<unsigned> operators;
13746
      unsigned op;
13747
157986
      api::Sort t;
13748
13749
    {
13750
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1584:3: ( uminusTerm[f] ( WITH_TOK ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) ) | ( arithmeticBinop[op] uminusTerm[f] )* ) )
13751
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1584:5: uminusTerm[f] ( WITH_TOK ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) ) | ( arithmeticBinop[op] uminusTerm[f] )* )
13752
        {
13753
78993
            FOLLOWPUSH(FOLLOW_uminusTerm_in_term5077);
13754
78993
            uminusTerm(ctx, f);
13755
13756
78991
            FOLLOWPOP();
13757
78991
            if  (HASEXCEPTION())
13758
            {
13759
                goto ruletermEx;
13760
            }
13761
78991
            if (HASFAILED())
13762
            {
13763
                return ;
13764
            }
13765
13766
13767
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1585:5: ( WITH_TOK ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) ) | ( arithmeticBinop[op] uminusTerm[f] )* )
13768
            {
13769
78991
                int alt77=2;
13770
78991
                switch ( LA(1) )
13771
                {
13772
37
                case WITH_TOK:
13773
                	{
13774
37
                		alt77=1;
13775
                	}
13776
37
                    break;
13777
78954
                case EOF:
13778
                case ABS_TOK:
13779
                case AND_TOK:
13780
                case ARRAY_TOK:
13781
                case BAR:
13782
                case BINARY_LITERAL:
13783
                case BVASHR_TOK:
13784
                case BVCOMP_TOK:
13785
                case BVGE_TOK:
13786
                case BVGT_TOK:
13787
                case BVLE_TOK:
13788
                case BVLSHR_TOK:
13789
                case BVLT_TOK:
13790
                case BVMULT_TOK:
13791
                case BVNAND_TOK:
13792
                case BVNEG_TOK:
13793
                case BVNOR_TOK:
13794
                case BVPLUS_TOK:
13795
                case BVREPEAT_TOK:
13796
                case BVROTL_TOK:
13797
                case BVROTR_TOK:
13798
                case BVSDIV_TOK:
13799
                case BVSGE_TOK:
13800
                case BVSGT_TOK:
13801
                case BVSHL_TOK:
13802
                case BVSLE_TOK:
13803
                case BVSLT_TOK:
13804
                case BVSMOD_TOK:
13805
                case BVSREM_TOK:
13806
                case BVSUB_TOK:
13807
                case BVUDIV_TOK:
13808
                case BVUMINUS_TOK:
13809
                case BVUREM_TOK:
13810
                case BVXNOR_TOK:
13811
                case BVXOR_TOK:
13812
                case BVZEROEXTEND_TOK:
13813
                case COLON:
13814
                case COMMA:
13815
                case DECIMAL_LITERAL:
13816
                case DISEQUAL_TOK:
13817
                case DISTINCT_TOK:
13818
                case DIVISIBLE_TOK:
13819
                case DIV_TOK:
13820
                case ELSEIF_TOK:
13821
                case ELSE_TOK:
13822
                case ENDIF_TOK:
13823
                case EQUAL_TOK:
13824
                case EXISTS_TOK:
13825
                case EXP_TOK:
13826
                case FALSE_TOK:
13827
                case FLOOR_TOK:
13828
                case FMF_CARD_TOK:
13829
                case FORALL_TOK:
13830
                case GEQ_TOK:
13831
                case GT_TOK:
13832
                case HASHPAREN:
13833
                case HEX_LITERAL:
13834
                case IDENTIFIER:
13835
                case IDEN_TOK:
13836
                case IFF_TOK:
13837
                case IF_TOK:
13838
                case IMPLIES_TOK:
13839
                case INTDIV_TOK:
13840
                case INTEGER_LITERAL:
13841
                case IN_TOK:
13842
                case IS_INTEGER_TOK:
13843
                case LAMBDA_TOK:
13844
                case LBRACE:
13845
                case LBRACKET:
13846
                case LEQ_TOK:
13847
                case LET_TOK:
13848
                case LPAREN:
13849
                case LT_TOK:
13850
                case MEMBER_TOK:
13851
                case MINUS_TOK:
13852
                case MOD_TOK:
13853
                case NOT_TOK:
13854
                case OR_TOK:
13855
                case PARENHASH:
13856
                case PLUS_TOK:
13857
                case RBRACE:
13858
                case RBRACKET:
13859
                case REGEXP_COMPLEMENT_TOK:
13860
                case REGEXP_CONCAT_TOK:
13861
                case REGEXP_EMPTY_TOK:
13862
                case REGEXP_INTER_TOK:
13863
                case REGEXP_LOOP_TOK:
13864
                case REGEXP_OPT_TOK:
13865
                case REGEXP_PLUS_TOK:
13866
                case REGEXP_RANGE_TOK:
13867
                case REGEXP_SIGMA_TOK:
13868
                case REGEXP_STAR_TOK:
13869
                case REGEXP_UNION_TOK:
13870
                case RPAREN:
13871
                case SEMICOLON:
13872
                case SEQ_UNIT_TOK:
13873
                case SETS_CARD_TOK:
13874
                case SETS_CHOOSE_TOK:
13875
                case STAR_TOK:
13876
                case STRING_CHARAT_TOK:
13877
                case STRING_CONCAT_TOK:
13878
                case STRING_CONTAINS_TOK:
13879
                case STRING_INDEXOF_TOK:
13880
                case STRING_ITOS_TOK:
13881
                case STRING_LENGTH_TOK:
13882
                case STRING_LITERAL:
13883
                case STRING_PREFIXOF_TOK:
13884
                case STRING_REPLACE_ALL_TOK:
13885
                case STRING_REPLACE_TOK:
13886
                case STRING_REV_TOK:
13887
                case STRING_STOI_TOK:
13888
                case STRING_SUBSTR_TOK:
13889
                case STRING_SUFFIXOF_TOK:
13890
                case STRING_TOLOWER_TOK:
13891
                case STRING_TOUPPER_TOK:
13892
                case STRING_TO_REGEXP_TOK:
13893
                case SX_TOK:
13894
                case THEN_TOK:
13895
                case TRANSCLOSURE_TOK:
13896
                case TRANSPOSE_TOK:
13897
                case TRUE_TOK:
13898
                case TUPLE_TOK:
13899
                case UNIVSET_TOK:
13900
                case XOR_TOK:
13901
                	{
13902
78954
                		alt77=2;
13903
                	}
13904
78954
                    break;
13905
13906
                default:
13907
                    if (BACKTRACKING>0)
13908
                    {
13909
                        FAILEDFLAG = ANTLR3_TRUE;
13910
                        return ;
13911
                    }
13912
13913
                    CONSTRUCTEX();
13914
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13915
                    EXCEPTION->message      = (void *)"";
13916
                    EXCEPTION->decisionNum  = 77;
13917
                    EXCEPTION->state        = 0;
13918
13919
13920
                    goto ruletermEx;
13921
13922
                }
13923
13924
78991
                switch (alt77)
13925
                {
13926
37
            	case 1:
13927
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1585:7: WITH_TOK ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) )
13928
            	    {
13929
37
            	         MATCHT(WITH_TOK, &FOLLOW_WITH_TOK_in_term5086);
13930
37
            	        if  (HASEXCEPTION())
13931
            	        {
13932
            	            goto ruletermEx;
13933
            	        }
13934
37
            	        if (HASFAILED())
13935
            	        {
13936
            	            return ;
13937
            	        }
13938
13939
13940
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1586:7: ( arrayStore[f] ( COMMA arrayStore[f] )* | DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* ) )
13941
            	        {
13942
37
            	            int alt75=2;
13943
37
            	            switch ( LA(1) )
13944
            	            {
13945
26
            	            case LBRACKET:
13946
            	            	{
13947
26
            	            		alt75=1;
13948
            	            	}
13949
26
            	                break;
13950
11
            	            case DOT:
13951
            	            	{
13952
11
            	            		alt75=2;
13953
            	            	}
13954
11
            	                break;
13955
13956
            	            default:
13957
            	                if (BACKTRACKING>0)
13958
            	                {
13959
            	                    FAILEDFLAG = ANTLR3_TRUE;
13960
            	                    return ;
13961
            	                }
13962
13963
            	                CONSTRUCTEX();
13964
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13965
            	                EXCEPTION->message      = (void *)"";
13966
            	                EXCEPTION->decisionNum  = 75;
13967
            	                EXCEPTION->state        = 0;
13968
13969
13970
            	                goto ruletermEx;
13971
13972
            	            }
13973
13974
37
            	            switch (alt75)
13975
            	            {
13976
26
            	        	case 1:
13977
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1586:9: arrayStore[f] ( COMMA arrayStore[f] )*
13978
            	        	    {
13979
26
            	        	        FOLLOWPUSH(FOLLOW_arrayStore_in_term5096);
13980
26
            	        	        arrayStore(ctx, f);
13981
13982
26
            	        	        FOLLOWPOP();
13983
26
            	        	        if  (HASEXCEPTION())
13984
            	        	        {
13985
            	        	            goto ruletermEx;
13986
            	        	        }
13987
26
            	        	        if (HASFAILED())
13988
            	        	        {
13989
            	        	            return ;
13990
            	        	        }
13991
13992
13993
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1586:23: ( COMMA arrayStore[f] )*
13994
13995
            	        	        for (;;)
13996
            	        	        {
13997
34
            	        	            int alt71=2;
13998
34
            	        	            switch ( LA(1) )
13999
            	        	            {
14000
8
            	        	            case COMMA:
14001
            	        	            	{
14002
8
            	        	            		alt71=1;
14003
            	        	            	}
14004
8
            	        	                break;
14005
14006
            	        	            }
14007
14008
34
            	        	            switch (alt71)
14009
            	        	            {
14010
8
            	        	        	case 1:
14011
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1586:25: COMMA arrayStore[f]
14012
            	        	        	    {
14013
8
            	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_term5101);
14014
8
            	        	        	        if  (HASEXCEPTION())
14015
            	        	        	        {
14016
            	        	        	            goto ruletermEx;
14017
            	        	        	        }
14018
8
            	        	        	        if (HASFAILED())
14019
            	        	        	        {
14020
            	        	        	            return ;
14021
            	        	        	        }
14022
14023
14024
8
            	        	        	        FOLLOWPUSH(FOLLOW_arrayStore_in_term5103);
14025
8
            	        	        	        arrayStore(ctx, f);
14026
14027
8
            	        	        	        FOLLOWPOP();
14028
8
            	        	        	        if  (HASEXCEPTION())
14029
            	        	        	        {
14030
            	        	        	            goto ruletermEx;
14031
            	        	        	        }
14032
8
            	        	        	        if (HASFAILED())
14033
            	        	        	        {
14034
            	        	        	            return ;
14035
            	        	        	        }
14036
14037
14038
            	        	        	    }
14039
8
            	        	        	    break;
14040
14041
26
            	        	        	default:
14042
26
            	        	        	    goto loop71;	/* break out of the loop */
14043
            	        	        	    break;
14044
            	        	            }
14045
8
            	        	        }
14046
26
            	        	        loop71: ; /* Jump out to here if this rule does not match */
14047
14048
14049
            	        	    }
14050
26
            	        	    break;
14051
11
            	        	case 2:
14052
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1587:9: DOT ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* )
14053
            	        	    {
14054
11
            	        	         MATCHT(DOT, &FOLLOW_DOT_in_term5117);
14055
11
            	        	        if  (HASEXCEPTION())
14056
            	        	        {
14057
            	        	            goto ruletermEx;
14058
            	        	        }
14059
11
            	        	        if (HASFAILED())
14060
            	        	        {
14061
            	        	            return ;
14062
            	        	        }
14063
14064
14065
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1587:13: ( tupleStore[f] ( COMMA DOT tupleStore[f] )* | recordStore[f] ( COMMA DOT recordStore[f] )* )
14066
            	        	        {
14067
11
            	        	            int alt74=2;
14068
11
            	        	            switch ( LA(1) )
14069
            	        	            {
14070
3
            	        	            case INTEGER_LITERAL:
14071
            	        	            	{
14072
3
            	        	            		alt74=1;
14073
            	        	            	}
14074
3
            	        	                break;
14075
8
            	        	            case IDENTIFIER:
14076
            	        	            	{
14077
8
            	        	            		alt74=2;
14078
            	        	            	}
14079
8
            	        	                break;
14080
14081
            	        	            default:
14082
            	        	                if (BACKTRACKING>0)
14083
            	        	                {
14084
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
14085
            	        	                    return ;
14086
            	        	                }
14087
14088
            	        	                CONSTRUCTEX();
14089
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14090
            	        	                EXCEPTION->message      = (void *)"";
14091
            	        	                EXCEPTION->decisionNum  = 74;
14092
            	        	                EXCEPTION->state        = 0;
14093
14094
14095
            	        	                goto ruletermEx;
14096
14097
            	        	            }
14098
14099
11
            	        	            switch (alt74)
14100
            	        	            {
14101
3
            	        	        	case 1:
14102
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1587:15: tupleStore[f] ( COMMA DOT tupleStore[f] )*
14103
            	        	        	    {
14104
3
            	        	        	        FOLLOWPUSH(FOLLOW_tupleStore_in_term5121);
14105
3
            	        	        	        tupleStore(ctx, f);
14106
14107
3
            	        	        	        FOLLOWPOP();
14108
3
            	        	        	        if  (HASEXCEPTION())
14109
            	        	        	        {
14110
            	        	        	            goto ruletermEx;
14111
            	        	        	        }
14112
3
            	        	        	        if (HASFAILED())
14113
            	        	        	        {
14114
            	        	        	            return ;
14115
            	        	        	        }
14116
14117
14118
            	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1587:29: ( COMMA DOT tupleStore[f] )*
14119
14120
            	        	        	        for (;;)
14121
            	        	        	        {
14122
3
            	        	        	            int alt72=2;
14123
3
            	        	        	            switch ( LA(1) )
14124
            	        	        	            {
14125
            	        	        	            case COMMA:
14126
            	        	        	            	{
14127
            	        	        	            		alt72=1;
14128
            	        	        	            	}
14129
            	        	        	                break;
14130
14131
            	        	        	            }
14132
14133
3
            	        	        	            switch (alt72)
14134
            	        	        	            {
14135
            	        	        	        	case 1:
14136
            	        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1587:31: COMMA DOT tupleStore[f]
14137
            	        	        	        	    {
14138
            	        	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_term5126);
14139
            	        	        	        	        if  (HASEXCEPTION())
14140
            	        	        	        	        {
14141
            	        	        	        	            goto ruletermEx;
14142
            	        	        	        	        }
14143
            	        	        	        	        if (HASFAILED())
14144
            	        	        	        	        {
14145
            	        	        	        	            return ;
14146
            	        	        	        	        }
14147
14148
14149
            	        	        	        	         MATCHT(DOT, &FOLLOW_DOT_in_term5128);
14150
            	        	        	        	        if  (HASEXCEPTION())
14151
            	        	        	        	        {
14152
            	        	        	        	            goto ruletermEx;
14153
            	        	        	        	        }
14154
            	        	        	        	        if (HASFAILED())
14155
            	        	        	        	        {
14156
            	        	        	        	            return ;
14157
            	        	        	        	        }
14158
14159
14160
            	        	        	        	        FOLLOWPUSH(FOLLOW_tupleStore_in_term5130);
14161
            	        	        	        	        tupleStore(ctx, f);
14162
14163
            	        	        	        	        FOLLOWPOP();
14164
            	        	        	        	        if  (HASEXCEPTION())
14165
            	        	        	        	        {
14166
            	        	        	        	            goto ruletermEx;
14167
            	        	        	        	        }
14168
            	        	        	        	        if (HASFAILED())
14169
            	        	        	        	        {
14170
            	        	        	        	            return ;
14171
            	        	        	        	        }
14172
14173
14174
            	        	        	        	    }
14175
            	        	        	        	    break;
14176
14177
3
            	        	        	        	default:
14178
3
            	        	        	        	    goto loop72;	/* break out of the loop */
14179
            	        	        	        	    break;
14180
            	        	        	            }
14181
            	        	        	        }
14182
3
            	        	        	        loop72: ; /* Jump out to here if this rule does not match */
14183
14184
14185
            	        	        	    }
14186
3
            	        	        	    break;
14187
8
            	        	        	case 2:
14188
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1588:15: recordStore[f] ( COMMA DOT recordStore[f] )*
14189
            	        	        	    {
14190
8
            	        	        	        FOLLOWPUSH(FOLLOW_recordStore_in_term5150);
14191
8
            	        	        	        recordStore(ctx, f);
14192
14193
8
            	        	        	        FOLLOWPOP();
14194
8
            	        	        	        if  (HASEXCEPTION())
14195
            	        	        	        {
14196
            	        	        	            goto ruletermEx;
14197
            	        	        	        }
14198
8
            	        	        	        if (HASFAILED())
14199
            	        	        	        {
14200
            	        	        	            return ;
14201
            	        	        	        }
14202
14203
14204
            	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1588:30: ( COMMA DOT recordStore[f] )*
14205
14206
            	        	        	        for (;;)
14207
            	        	        	        {
14208
8
            	        	        	            int alt73=2;
14209
8
            	        	        	            switch ( LA(1) )
14210
            	        	        	            {
14211
            	        	        	            case COMMA:
14212
            	        	        	            	{
14213
            	        	        	            		alt73=1;
14214
            	        	        	            	}
14215
            	        	        	                break;
14216
14217
            	        	        	            }
14218
14219
8
            	        	        	            switch (alt73)
14220
            	        	        	            {
14221
            	        	        	        	case 1:
14222
            	        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1588:32: COMMA DOT recordStore[f]
14223
            	        	        	        	    {
14224
            	        	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_term5155);
14225
            	        	        	        	        if  (HASEXCEPTION())
14226
            	        	        	        	        {
14227
            	        	        	        	            goto ruletermEx;
14228
            	        	        	        	        }
14229
            	        	        	        	        if (HASFAILED())
14230
            	        	        	        	        {
14231
            	        	        	        	            return ;
14232
            	        	        	        	        }
14233
14234
14235
            	        	        	        	         MATCHT(DOT, &FOLLOW_DOT_in_term5157);
14236
            	        	        	        	        if  (HASEXCEPTION())
14237
            	        	        	        	        {
14238
            	        	        	        	            goto ruletermEx;
14239
            	        	        	        	        }
14240
            	        	        	        	        if (HASFAILED())
14241
            	        	        	        	        {
14242
            	        	        	        	            return ;
14243
            	        	        	        	        }
14244
14245
14246
            	        	        	        	        FOLLOWPUSH(FOLLOW_recordStore_in_term5159);
14247
            	        	        	        	        recordStore(ctx, f);
14248
14249
            	        	        	        	        FOLLOWPOP();
14250
            	        	        	        	        if  (HASEXCEPTION())
14251
            	        	        	        	        {
14252
            	        	        	        	            goto ruletermEx;
14253
            	        	        	        	        }
14254
            	        	        	        	        if (HASFAILED())
14255
            	        	        	        	        {
14256
            	        	        	        	            return ;
14257
            	        	        	        	        }
14258
14259
14260
            	        	        	        	    }
14261
            	        	        	        	    break;
14262
14263
8
            	        	        	        	default:
14264
8
            	        	        	        	    goto loop73;	/* break out of the loop */
14265
            	        	        	        	    break;
14266
            	        	        	            }
14267
            	        	        	        }
14268
8
            	        	        	        loop73: ; /* Jump out to here if this rule does not match */
14269
14270
14271
            	        	        	    }
14272
8
            	        	        	    break;
14273
14274
            	        	            }
14275
            	        	        }
14276
14277
            	        	    }
14278
11
            	        	    break;
14279
14280
            	            }
14281
            	        }
14282
14283
            	    }
14284
37
            	    break;
14285
78954
            	case 2:
14286
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1589:7: ( arithmeticBinop[op] uminusTerm[f] )*
14287
            	    {
14288
78954
            	        if ( BACKTRACKING==0 )
14289
            	        {
14290
78954
            	             expressions.push_back(f);
14291
            	        }
14292
14293
14294
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1590:7: ( arithmeticBinop[op] uminusTerm[f] )*
14295
14296
            	        for (;;)
14297
            	        {
14298
80239
            	            int alt76=2;
14299
80239
            	            switch ( LA(1) )
14300
            	            {
14301
65
            	            case MINUS_TOK:
14302
            	            	{
14303
65
            	            		switch ( LA(2) )
14304
            	            		{
14305
            	            		case BVNEG_TOK:
14306
            	            			{
14307
            	            				switch ( LA(3) )
14308
            	            				{
14309
            	            				case BVNEG_TOK:
14310
            	            					{
14311
            	            						alt76=1;
14312
            	            					}
14313
            	            				    break;
14314
            	            				case TRANSPOSE_TOK:
14315
            	            					{
14316
            	            						alt76=1;
14317
            	            					}
14318
            	            				    break;
14319
            	            				case TRANSCLOSURE_TOK:
14320
            	            					{
14321
            	            						alt76=1;
14322
            	            					}
14323
            	            				    break;
14324
            	            				case TUPLE_TOK:
14325
            	            					{
14326
            	            						alt76=1;
14327
            	            					}
14328
            	            				    break;
14329
            	            				case IDEN_TOK:
14330
            	            					{
14331
            	            						alt76=1;
14332
            	            					}
14333
            	            				    break;
14334
            	            				case BVXOR_TOK:
14335
            	            					{
14336
            	            						alt76=1;
14337
            	            					}
14338
            	            				    break;
14339
            	            				case BVNAND_TOK:
14340
            	            					{
14341
            	            						alt76=1;
14342
            	            					}
14343
            	            				    break;
14344
            	            				case BVNOR_TOK:
14345
            	            					{
14346
            	            						alt76=1;
14347
            	            					}
14348
            	            				    break;
14349
            	            				case BVCOMP_TOK:
14350
            	            					{
14351
            	            						alt76=1;
14352
            	            					}
14353
            	            				    break;
14354
            	            				case BVXNOR_TOK:
14355
            	            					{
14356
            	            						alt76=1;
14357
            	            					}
14358
            	            				    break;
14359
            	            				case BVUMINUS_TOK:
14360
            	            					{
14361
            	            						alt76=1;
14362
            	            					}
14363
            	            				    break;
14364
            	            				case BVPLUS_TOK:
14365
            	            					{
14366
            	            						alt76=1;
14367
            	            					}
14368
            	            				    break;
14369
            	            				case BVSUB_TOK:
14370
            	            					{
14371
            	            						alt76=1;
14372
            	            					}
14373
            	            				    break;
14374
            	            				case BVMULT_TOK:
14375
            	            					{
14376
            	            						alt76=1;
14377
            	            					}
14378
            	            				    break;
14379
            	            				case BVUDIV_TOK:
14380
            	            					{
14381
            	            						alt76=1;
14382
            	            					}
14383
            	            				    break;
14384
            	            				case BVSDIV_TOK:
14385
            	            					{
14386
            	            						alt76=1;
14387
            	            					}
14388
            	            				    break;
14389
            	            				case BVUREM_TOK:
14390
            	            					{
14391
            	            						alt76=1;
14392
            	            					}
14393
            	            				    break;
14394
            	            				case BVSREM_TOK:
14395
            	            					{
14396
            	            						alt76=1;
14397
            	            					}
14398
            	            				    break;
14399
            	            				case BVSMOD_TOK:
14400
            	            					{
14401
            	            						alt76=1;
14402
            	            					}
14403
            	            				    break;
14404
            	            				case BVSHL_TOK:
14405
            	            					{
14406
            	            						alt76=1;
14407
            	            					}
14408
            	            				    break;
14409
            	            				case BVASHR_TOK:
14410
            	            					{
14411
            	            						alt76=1;
14412
            	            					}
14413
            	            				    break;
14414
            	            				case BVLSHR_TOK:
14415
            	            					{
14416
            	            						alt76=1;
14417
            	            					}
14418
            	            				    break;
14419
            	            				case SX_TOK:
14420
            	            					{
14421
            	            						alt76=1;
14422
            	            					}
14423
            	            				    break;
14424
            	            				case BVZEROEXTEND_TOK:
14425
            	            					{
14426
            	            						alt76=1;
14427
            	            					}
14428
            	            				    break;
14429
            	            				case BVREPEAT_TOK:
14430
            	            					{
14431
            	            						alt76=1;
14432
            	            					}
14433
            	            				    break;
14434
            	            				case BVROTR_TOK:
14435
            	            					{
14436
            	            						alt76=1;
14437
            	            					}
14438
            	            				    break;
14439
            	            				case BVROTL_TOK:
14440
            	            					{
14441
            	            						alt76=1;
14442
            	            					}
14443
            	            				    break;
14444
            	            				case BVLT_TOK:
14445
            	            					{
14446
            	            						alt76=1;
14447
            	            					}
14448
            	            				    break;
14449
            	            				case BVLE_TOK:
14450
            	            					{
14451
            	            						alt76=1;
14452
            	            					}
14453
            	            				    break;
14454
            	            				case BVGT_TOK:
14455
            	            					{
14456
            	            						alt76=1;
14457
            	            					}
14458
            	            				    break;
14459
            	            				case BVGE_TOK:
14460
            	            					{
14461
            	            						alt76=1;
14462
            	            					}
14463
            	            				    break;
14464
            	            				case BVSLT_TOK:
14465
            	            					{
14466
            	            						alt76=1;
14467
            	            					}
14468
            	            				    break;
14469
            	            				case BVSLE_TOK:
14470
            	            					{
14471
            	            						alt76=1;
14472
            	            					}
14473
            	            				    break;
14474
            	            				case BVSGT_TOK:
14475
            	            					{
14476
            	            						alt76=1;
14477
            	            					}
14478
            	            				    break;
14479
            	            				case BVSGE_TOK:
14480
            	            					{
14481
            	            						alt76=1;
14482
            	            					}
14483
            	            				    break;
14484
            	            				case STRING_CONCAT_TOK:
14485
            	            					{
14486
            	            						alt76=1;
14487
            	            					}
14488
            	            				    break;
14489
            	            				case STRING_LENGTH_TOK:
14490
            	            					{
14491
            	            						alt76=1;
14492
            	            					}
14493
            	            				    break;
14494
            	            				case STRING_CONTAINS_TOK:
14495
            	            					{
14496
            	            						alt76=1;
14497
            	            					}
14498
            	            				    break;
14499
            	            				case STRING_SUBSTR_TOK:
14500
            	            					{
14501
            	            						alt76=1;
14502
            	            					}
14503
            	            				    break;
14504
            	            				case STRING_CHARAT_TOK:
14505
            	            					{
14506
            	            						alt76=1;
14507
            	            					}
14508
            	            				    break;
14509
            	            				case STRING_INDEXOF_TOK:
14510
            	            					{
14511
            	            						alt76=1;
14512
            	            					}
14513
            	            				    break;
14514
            	            				case STRING_REPLACE_TOK:
14515
            	            					{
14516
            	            						alt76=1;
14517
            	            					}
14518
            	            				    break;
14519
            	            				case STRING_REPLACE_ALL_TOK:
14520
            	            					{
14521
            	            						alt76=1;
14522
            	            					}
14523
            	            				    break;
14524
            	            				case STRING_PREFIXOF_TOK:
14525
            	            					{
14526
            	            						alt76=1;
14527
            	            					}
14528
            	            				    break;
14529
            	            				case STRING_SUFFIXOF_TOK:
14530
            	            					{
14531
            	            						alt76=1;
14532
            	            					}
14533
            	            				    break;
14534
            	            				case STRING_STOI_TOK:
14535
            	            					{
14536
            	            						alt76=1;
14537
            	            					}
14538
            	            				    break;
14539
            	            				case STRING_ITOS_TOK:
14540
            	            					{
14541
            	            						alt76=1;
14542
            	            					}
14543
            	            				    break;
14544
            	            				case STRING_TO_REGEXP_TOK:
14545
            	            					{
14546
            	            						alt76=1;
14547
            	            					}
14548
            	            				    break;
14549
            	            				case STRING_TOLOWER_TOK:
14550
            	            					{
14551
            	            						alt76=1;
14552
            	            					}
14553
            	            				    break;
14554
            	            				case STRING_TOUPPER_TOK:
14555
            	            					{
14556
            	            						alt76=1;
14557
            	            					}
14558
            	            				    break;
14559
            	            				case STRING_REV_TOK:
14560
            	            					{
14561
            	            						alt76=1;
14562
            	            					}
14563
            	            				    break;
14564
            	            				case REGEXP_CONCAT_TOK:
14565
            	            					{
14566
            	            						alt76=1;
14567
            	            					}
14568
            	            				    break;
14569
            	            				case REGEXP_UNION_TOK:
14570
            	            					{
14571
            	            						alt76=1;
14572
            	            					}
14573
            	            				    break;
14574
            	            				case REGEXP_INTER_TOK:
14575
            	            					{
14576
            	            						alt76=1;
14577
            	            					}
14578
            	            				    break;
14579
            	            				case REGEXP_STAR_TOK:
14580
            	            					{
14581
            	            						alt76=1;
14582
            	            					}
14583
            	            				    break;
14584
            	            				case REGEXP_PLUS_TOK:
14585
            	            					{
14586
            	            						alt76=1;
14587
            	            					}
14588
            	            				    break;
14589
            	            				case REGEXP_OPT_TOK:
14590
            	            					{
14591
            	            						alt76=1;
14592
            	            					}
14593
            	            				    break;
14594
            	            				case REGEXP_RANGE_TOK:
14595
            	            					{
14596
            	            						alt76=1;
14597
            	            					}
14598
            	            				    break;
14599
            	            				case REGEXP_LOOP_TOK:
14600
            	            					{
14601
            	            						alt76=1;
14602
            	            					}
14603
            	            				    break;
14604
            	            				case REGEXP_COMPLEMENT_TOK:
14605
            	            					{
14606
            	            						alt76=1;
14607
            	            					}
14608
            	            				    break;
14609
            	            				case SEQ_UNIT_TOK:
14610
            	            					{
14611
            	            						alt76=1;
14612
            	            					}
14613
            	            				    break;
14614
            	            				case REGEXP_EMPTY_TOK:
14615
            	            					{
14616
            	            						alt76=1;
14617
            	            					}
14618
            	            				    break;
14619
            	            				case REGEXP_SIGMA_TOK:
14620
            	            					{
14621
            	            						alt76=1;
14622
            	            					}
14623
            	            				    break;
14624
            	            				case STRING_LITERAL:
14625
            	            					{
14626
            	            						alt76=1;
14627
            	            					}
14628
            	            				    break;
14629
            	            				case SETS_CARD_TOK:
14630
            	            					{
14631
            	            						alt76=1;
14632
            	            					}
14633
            	            				    break;
14634
            	            				case SETS_CHOOSE_TOK:
14635
            	            					{
14636
            	            						alt76=1;
14637
            	            					}
14638
            	            				    break;
14639
            	            				case IF_TOK:
14640
            	            					{
14641
            	            						alt76=1;
14642
            	            					}
14643
            	            				    break;
14644
            	            				case LPAREN:
14645
            	            					{
14646
            	            						alt76=1;
14647
            	            					}
14648
            	            				    break;
14649
            	            				case PARENHASH:
14650
            	            					{
14651
            	            						alt76=1;
14652
            	            					}
14653
            	            				    break;
14654
            	            				case LBRACE:
14655
            	            					{
14656
            	            						alt76=1;
14657
            	            					}
14658
            	            				    break;
14659
            	            				case UNIVSET_TOK:
14660
            	            					{
14661
            	            						alt76=1;
14662
            	            					}
14663
            	            				    break;
14664
            	            				case BAR:
14665
            	            					{
14666
            	            						alt76=1;
14667
            	            					}
14668
            	            				    break;
14669
            	            				case ARRAY_TOK:
14670
            	            					{
14671
            	            						alt76=1;
14672
            	            					}
14673
            	            				    break;
14674
            	            				case TRUE_TOK:
14675
            	            					{
14676
            	            						alt76=1;
14677
            	            					}
14678
            	            				    break;
14679
            	            				case FALSE_TOK:
14680
            	            					{
14681
            	            						alt76=1;
14682
            	            					}
14683
            	            				    break;
14684
            	            				case DECIMAL_LITERAL:
14685
            	            					{
14686
            	            						alt76=1;
14687
            	            					}
14688
            	            				    break;
14689
            	            				case INTEGER_LITERAL:
14690
            	            					{
14691
            	            						alt76=1;
14692
            	            					}
14693
            	            				    break;
14694
            	            				case HEX_LITERAL:
14695
            	            					{
14696
            	            						alt76=1;
14697
            	            					}
14698
            	            				    break;
14699
            	            				case BINARY_LITERAL:
14700
            	            					{
14701
            	            						alt76=1;
14702
            	            					}
14703
            	            				    break;
14704
            	            				case IDENTIFIER:
14705
            	            					{
14706
            	            						alt76=1;
14707
            	            					}
14708
            	            				    break;
14709
            	            				case FLOOR_TOK:
14710
            	            					{
14711
            	            						alt76=1;
14712
            	            					}
14713
            	            				    break;
14714
            	            				case IS_INTEGER_TOK:
14715
            	            					{
14716
            	            						alt76=1;
14717
            	            					}
14718
            	            				    break;
14719
            	            				case ABS_TOK:
14720
            	            					{
14721
            	            						alt76=1;
14722
            	            					}
14723
            	            				    break;
14724
            	            				case DIVISIBLE_TOK:
14725
            	            					{
14726
            	            						alt76=1;
14727
            	            					}
14728
            	            				    break;
14729
            	            				case DISTINCT_TOK:
14730
            	            					{
14731
            	            						alt76=1;
14732
            	            					}
14733
            	            				    break;
14734
14735
            	            				}
14736
14737
            	            			}
14738
            	            		    break;
14739
            	            		case TRANSPOSE_TOK:
14740
            	            			{
14741
            	            				switch ( LA(3) )
14742
            	            				{
14743
            	            				case LPAREN:
14744
            	            					{
14745
            	            						alt76=1;
14746
            	            					}
14747
            	            				    break;
14748
14749
            	            				}
14750
14751
            	            			}
14752
            	            		    break;
14753
            	            		case TRANSCLOSURE_TOK:
14754
            	            			{
14755
            	            				switch ( LA(3) )
14756
            	            				{
14757
            	            				case LPAREN:
14758
            	            					{
14759
            	            						alt76=1;
14760
            	            					}
14761
            	            				    break;
14762
14763
            	            				}
14764
14765
            	            			}
14766
            	            		    break;
14767
            	            		case TUPLE_TOK:
14768
            	            			{
14769
            	            				switch ( LA(3) )
14770
            	            				{
14771
            	            				case LPAREN:
14772
            	            					{
14773
            	            						alt76=1;
14774
            	            					}
14775
            	            				    break;
14776
14777
            	            				}
14778
14779
            	            			}
14780
            	            		    break;
14781
            	            		case IDEN_TOK:
14782
            	            			{
14783
            	            				switch ( LA(3) )
14784
            	            				{
14785
            	            				case LPAREN:
14786
            	            					{
14787
            	            						alt76=1;
14788
            	            					}
14789
            	            				    break;
14790
14791
            	            				}
14792
14793
            	            			}
14794
            	            		    break;
14795
            	            		case BVXOR_TOK:
14796
            	            			{
14797
            	            				switch ( LA(3) )
14798
            	            				{
14799
            	            				case LPAREN:
14800
            	            					{
14801
            	            						alt76=1;
14802
            	            					}
14803
            	            				    break;
14804
14805
            	            				}
14806
14807
            	            			}
14808
            	            		    break;
14809
            	            		case BVNAND_TOK:
14810
            	            			{
14811
            	            				switch ( LA(3) )
14812
            	            				{
14813
            	            				case LPAREN:
14814
            	            					{
14815
            	            						alt76=1;
14816
            	            					}
14817
            	            				    break;
14818
14819
            	            				}
14820
14821
            	            			}
14822
            	            		    break;
14823
            	            		case BVNOR_TOK:
14824
            	            			{
14825
            	            				switch ( LA(3) )
14826
            	            				{
14827
            	            				case LPAREN:
14828
            	            					{
14829
            	            						alt76=1;
14830
            	            					}
14831
            	            				    break;
14832
14833
            	            				}
14834
14835
            	            			}
14836
            	            		    break;
14837
            	            		case BVCOMP_TOK:
14838
            	            			{
14839
            	            				switch ( LA(3) )
14840
            	            				{
14841
            	            				case LPAREN:
14842
            	            					{
14843
            	            						alt76=1;
14844
            	            					}
14845
            	            				    break;
14846
14847
            	            				}
14848
14849
            	            			}
14850
            	            		    break;
14851
            	            		case BVXNOR_TOK:
14852
            	            			{
14853
            	            				switch ( LA(3) )
14854
            	            				{
14855
            	            				case LPAREN:
14856
            	            					{
14857
            	            						alt76=1;
14858
            	            					}
14859
            	            				    break;
14860
14861
            	            				}
14862
14863
            	            			}
14864
            	            		    break;
14865
            	            		case BVUMINUS_TOK:
14866
            	            			{
14867
            	            				switch ( LA(3) )
14868
            	            				{
14869
            	            				case LPAREN:
14870
            	            					{
14871
            	            						alt76=1;
14872
            	            					}
14873
            	            				    break;
14874
14875
            	            				}
14876
14877
            	            			}
14878
            	            		    break;
14879
            	            		case BVPLUS_TOK:
14880
            	            			{
14881
            	            				switch ( LA(3) )
14882
            	            				{
14883
            	            				case LPAREN:
14884
            	            					{
14885
            	            						alt76=1;
14886
            	            					}
14887
            	            				    break;
14888
14889
            	            				}
14890
14891
            	            			}
14892
            	            		    break;
14893
            	            		case BVSUB_TOK:
14894
            	            			{
14895
            	            				switch ( LA(3) )
14896
            	            				{
14897
            	            				case LPAREN:
14898
            	            					{
14899
            	            						alt76=1;
14900
            	            					}
14901
            	            				    break;
14902
14903
            	            				}
14904
14905
            	            			}
14906
            	            		    break;
14907
            	            		case BVMULT_TOK:
14908
            	            			{
14909
            	            				switch ( LA(3) )
14910
            	            				{
14911
            	            				case LPAREN:
14912
            	            					{
14913
            	            						alt76=1;
14914
            	            					}
14915
            	            				    break;
14916
14917
            	            				}
14918
14919
            	            			}
14920
            	            		    break;
14921
            	            		case BVUDIV_TOK:
14922
            	            			{
14923
            	            				switch ( LA(3) )
14924
            	            				{
14925
            	            				case LPAREN:
14926
            	            					{
14927
            	            						alt76=1;
14928
            	            					}
14929
            	            				    break;
14930
14931
            	            				}
14932
14933
            	            			}
14934
            	            		    break;
14935
            	            		case BVSDIV_TOK:
14936
            	            			{
14937
            	            				switch ( LA(3) )
14938
            	            				{
14939
            	            				case LPAREN:
14940
            	            					{
14941
            	            						alt76=1;
14942
            	            					}
14943
            	            				    break;
14944
14945
            	            				}
14946
14947
            	            			}
14948
            	            		    break;
14949
            	            		case BVUREM_TOK:
14950
            	            			{
14951
            	            				switch ( LA(3) )
14952
            	            				{
14953
            	            				case LPAREN:
14954
            	            					{
14955
            	            						alt76=1;
14956
            	            					}
14957
            	            				    break;
14958
14959
            	            				}
14960
14961
            	            			}
14962
            	            		    break;
14963
            	            		case BVSREM_TOK:
14964
            	            			{
14965
            	            				switch ( LA(3) )
14966
            	            				{
14967
            	            				case LPAREN:
14968
            	            					{
14969
            	            						alt76=1;
14970
            	            					}
14971
            	            				    break;
14972
14973
            	            				}
14974
14975
            	            			}
14976
            	            		    break;
14977
            	            		case BVSMOD_TOK:
14978
            	            			{
14979
            	            				switch ( LA(3) )
14980
            	            				{
14981
            	            				case LPAREN:
14982
            	            					{
14983
            	            						alt76=1;
14984
            	            					}
14985
            	            				    break;
14986
14987
            	            				}
14988
14989
            	            			}
14990
            	            		    break;
14991
            	            		case BVSHL_TOK:
14992
            	            			{
14993
            	            				switch ( LA(3) )
14994
            	            				{
14995
            	            				case LPAREN:
14996
            	            					{
14997
            	            						alt76=1;
14998
            	            					}
14999
            	            				    break;
15000
15001
            	            				}
15002
15003
            	            			}
15004
            	            		    break;
15005
            	            		case BVASHR_TOK:
15006
            	            			{
15007
            	            				switch ( LA(3) )
15008
            	            				{
15009
            	            				case LPAREN:
15010
            	            					{
15011
            	            						alt76=1;
15012
            	            					}
15013
            	            				    break;
15014
15015
            	            				}
15016
15017
            	            			}
15018
            	            		    break;
15019
            	            		case BVLSHR_TOK:
15020
            	            			{
15021
            	            				switch ( LA(3) )
15022
            	            				{
15023
            	            				case LPAREN:
15024
            	            					{
15025
            	            						alt76=1;
15026
            	            					}
15027
            	            				    break;
15028
15029
            	            				}
15030
15031
            	            			}
15032
            	            		    break;
15033
            	            		case SX_TOK:
15034
            	            			{
15035
            	            				switch ( LA(3) )
15036
            	            				{
15037
            	            				case LPAREN:
15038
            	            					{
15039
            	            						alt76=1;
15040
            	            					}
15041
            	            				    break;
15042
15043
            	            				}
15044
15045
            	            			}
15046
            	            		    break;
15047
            	            		case BVZEROEXTEND_TOK:
15048
            	            			{
15049
            	            				switch ( LA(3) )
15050
            	            				{
15051
            	            				case LPAREN:
15052
            	            					{
15053
            	            						alt76=1;
15054
            	            					}
15055
            	            				    break;
15056
15057
            	            				}
15058
15059
            	            			}
15060
            	            		    break;
15061
            	            		case BVREPEAT_TOK:
15062
            	            			{
15063
            	            				switch ( LA(3) )
15064
            	            				{
15065
            	            				case LPAREN:
15066
            	            					{
15067
            	            						alt76=1;
15068
            	            					}
15069
            	            				    break;
15070
15071
            	            				}
15072
15073
            	            			}
15074
            	            		    break;
15075
            	            		case BVROTR_TOK:
15076
            	            			{
15077
            	            				switch ( LA(3) )
15078
            	            				{
15079
            	            				case LPAREN:
15080
            	            					{
15081
            	            						alt76=1;
15082
            	            					}
15083
            	            				    break;
15084
15085
            	            				}
15086
15087
            	            			}
15088
            	            		    break;
15089
            	            		case BVROTL_TOK:
15090
            	            			{
15091
            	            				switch ( LA(3) )
15092
            	            				{
15093
            	            				case LPAREN:
15094
            	            					{
15095
            	            						alt76=1;
15096
            	            					}
15097
            	            				    break;
15098
15099
            	            				}
15100
15101
            	            			}
15102
            	            		    break;
15103
            	            		case BVLT_TOK:
15104
            	            			{
15105
            	            				switch ( LA(3) )
15106
            	            				{
15107
            	            				case LPAREN:
15108
            	            					{
15109
            	            						alt76=1;
15110
            	            					}
15111
            	            				    break;
15112
15113
            	            				}
15114
15115
            	            			}
15116
            	            		    break;
15117
            	            		case BVLE_TOK:
15118
            	            			{
15119
            	            				switch ( LA(3) )
15120
            	            				{
15121
            	            				case LPAREN:
15122
            	            					{
15123
            	            						alt76=1;
15124
            	            					}
15125
            	            				    break;
15126
15127
            	            				}
15128
15129
            	            			}
15130
            	            		    break;
15131
            	            		case BVGT_TOK:
15132
            	            			{
15133
            	            				switch ( LA(3) )
15134
            	            				{
15135
            	            				case LPAREN:
15136
            	            					{
15137
            	            						alt76=1;
15138
            	            					}
15139
            	            				    break;
15140
15141
            	            				}
15142
15143
            	            			}
15144
            	            		    break;
15145
            	            		case BVGE_TOK:
15146
            	            			{
15147
            	            				switch ( LA(3) )
15148
            	            				{
15149
            	            				case LPAREN:
15150
            	            					{
15151
            	            						alt76=1;
15152
            	            					}
15153
            	            				    break;
15154
15155
            	            				}
15156
15157
            	            			}
15158
            	            		    break;
15159
            	            		case BVSLT_TOK:
15160
            	            			{
15161
            	            				switch ( LA(3) )
15162
            	            				{
15163
            	            				case LPAREN:
15164
            	            					{
15165
            	            						alt76=1;
15166
            	            					}
15167
            	            				    break;
15168
15169
            	            				}
15170
15171
            	            			}
15172
            	            		    break;
15173
            	            		case BVSLE_TOK:
15174
            	            			{
15175
            	            				switch ( LA(3) )
15176
            	            				{
15177
            	            				case LPAREN:
15178
            	            					{
15179
            	            						alt76=1;
15180
            	            					}
15181
            	            				    break;
15182
15183
            	            				}
15184
15185
            	            			}
15186
            	            		    break;
15187
            	            		case BVSGT_TOK:
15188
            	            			{
15189
            	            				switch ( LA(3) )
15190
            	            				{
15191
            	            				case LPAREN:
15192
            	            					{
15193
            	            						alt76=1;
15194
            	            					}
15195
            	            				    break;
15196
15197
            	            				}
15198
15199
            	            			}
15200
            	            		    break;
15201
            	            		case BVSGE_TOK:
15202
            	            			{
15203
            	            				switch ( LA(3) )
15204
            	            				{
15205
            	            				case LPAREN:
15206
            	            					{
15207
            	            						alt76=1;
15208
            	            					}
15209
            	            				    break;
15210
15211
            	            				}
15212
15213
            	            			}
15214
            	            		    break;
15215
            	            		case STRING_CONCAT_TOK:
15216
            	            			{
15217
            	            				switch ( LA(3) )
15218
            	            				{
15219
            	            				case LPAREN:
15220
            	            					{
15221
            	            						alt76=1;
15222
            	            					}
15223
            	            				    break;
15224
15225
            	            				}
15226
15227
            	            			}
15228
            	            		    break;
15229
            	            		case STRING_LENGTH_TOK:
15230
            	            			{
15231
            	            				switch ( LA(3) )
15232
            	            				{
15233
            	            				case LPAREN:
15234
            	            					{
15235
            	            						alt76=1;
15236
            	            					}
15237
            	            				    break;
15238
15239
            	            				}
15240
15241
            	            			}
15242
            	            		    break;
15243
            	            		case STRING_CONTAINS_TOK:
15244
            	            			{
15245
            	            				switch ( LA(3) )
15246
            	            				{
15247
            	            				case LPAREN:
15248
            	            					{
15249
            	            						alt76=1;
15250
            	            					}
15251
            	            				    break;
15252
15253
            	            				}
15254
15255
            	            			}
15256
            	            		    break;
15257
            	            		case STRING_SUBSTR_TOK:
15258
            	            			{
15259
            	            				switch ( LA(3) )
15260
            	            				{
15261
            	            				case LPAREN:
15262
            	            					{
15263
            	            						alt76=1;
15264
            	            					}
15265
            	            				    break;
15266
15267
            	            				}
15268
15269
            	            			}
15270
            	            		    break;
15271
            	            		case STRING_CHARAT_TOK:
15272
            	            			{
15273
            	            				switch ( LA(3) )
15274
            	            				{
15275
            	            				case LPAREN:
15276
            	            					{
15277
            	            						alt76=1;
15278
            	            					}
15279
            	            				    break;
15280
15281
            	            				}
15282
15283
            	            			}
15284
            	            		    break;
15285
            	            		case STRING_INDEXOF_TOK:
15286
            	            			{
15287
            	            				switch ( LA(3) )
15288
            	            				{
15289
            	            				case LPAREN:
15290
            	            					{
15291
            	            						alt76=1;
15292
            	            					}
15293
            	            				    break;
15294
15295
            	            				}
15296
15297
            	            			}
15298
            	            		    break;
15299
            	            		case STRING_REPLACE_TOK:
15300
            	            			{
15301
            	            				switch ( LA(3) )
15302
            	            				{
15303
            	            				case LPAREN:
15304
            	            					{
15305
            	            						alt76=1;
15306
            	            					}
15307
            	            				    break;
15308
15309
            	            				}
15310
15311
            	            			}
15312
            	            		    break;
15313
            	            		case STRING_REPLACE_ALL_TOK:
15314
            	            			{
15315
            	            				switch ( LA(3) )
15316
            	            				{
15317
            	            				case LPAREN:
15318
            	            					{
15319
            	            						alt76=1;
15320
            	            					}
15321
            	            				    break;
15322
15323
            	            				}
15324
15325
            	            			}
15326
            	            		    break;
15327
            	            		case STRING_PREFIXOF_TOK:
15328
            	            			{
15329
            	            				switch ( LA(3) )
15330
            	            				{
15331
            	            				case LPAREN:
15332
            	            					{
15333
            	            						alt76=1;
15334
            	            					}
15335
            	            				    break;
15336
15337
            	            				}
15338
15339
            	            			}
15340
            	            		    break;
15341
            	            		case STRING_SUFFIXOF_TOK:
15342
            	            			{
15343
            	            				switch ( LA(3) )
15344
            	            				{
15345
            	            				case LPAREN:
15346
            	            					{
15347
            	            						alt76=1;
15348
            	            					}
15349
            	            				    break;
15350
15351
            	            				}
15352
15353
            	            			}
15354
            	            		    break;
15355
            	            		case STRING_STOI_TOK:
15356
            	            			{
15357
            	            				switch ( LA(3) )
15358
            	            				{
15359
            	            				case LPAREN:
15360
            	            					{
15361
            	            						alt76=1;
15362
            	            					}
15363
            	            				    break;
15364
15365
            	            				}
15366
15367
            	            			}
15368
            	            		    break;
15369
            	            		case STRING_ITOS_TOK:
15370
            	            			{
15371
            	            				switch ( LA(3) )
15372
            	            				{
15373
            	            				case LPAREN:
15374
            	            					{
15375
            	            						alt76=1;
15376
            	            					}
15377
            	            				    break;
15378
15379
            	            				}
15380
15381
            	            			}
15382
            	            		    break;
15383
            	            		case STRING_TO_REGEXP_TOK:
15384
            	            			{
15385
            	            				switch ( LA(3) )
15386
            	            				{
15387
            	            				case LPAREN:
15388
            	            					{
15389
            	            						alt76=1;
15390
            	            					}
15391
            	            				    break;
15392
15393
            	            				}
15394
15395
            	            			}
15396
            	            		    break;
15397
            	            		case STRING_TOLOWER_TOK:
15398
            	            			{
15399
            	            				switch ( LA(3) )
15400
            	            				{
15401
            	            				case LPAREN:
15402
            	            					{
15403
            	            						alt76=1;
15404
            	            					}
15405
            	            				    break;
15406
15407
            	            				}
15408
15409
            	            			}
15410
            	            		    break;
15411
            	            		case STRING_TOUPPER_TOK:
15412
            	            			{
15413
            	            				switch ( LA(3) )
15414
            	            				{
15415
            	            				case LPAREN:
15416
            	            					{
15417
            	            						alt76=1;
15418
            	            					}
15419
            	            				    break;
15420
15421
            	            				}
15422
15423
            	            			}
15424
            	            		    break;
15425
            	            		case STRING_REV_TOK:
15426
            	            			{
15427
            	            				switch ( LA(3) )
15428
            	            				{
15429
            	            				case LPAREN:
15430
            	            					{
15431
            	            						alt76=1;
15432
            	            					}
15433
            	            				    break;
15434
15435
            	            				}
15436
15437
            	            			}
15438
            	            		    break;
15439
            	            		case REGEXP_CONCAT_TOK:
15440
            	            			{
15441
            	            				switch ( LA(3) )
15442
            	            				{
15443
            	            				case LPAREN:
15444
            	            					{
15445
            	            						alt76=1;
15446
            	            					}
15447
            	            				    break;
15448
15449
            	            				}
15450
15451
            	            			}
15452
            	            		    break;
15453
            	            		case REGEXP_UNION_TOK:
15454
            	            			{
15455
            	            				switch ( LA(3) )
15456
            	            				{
15457
            	            				case LPAREN:
15458
            	            					{
15459
            	            						alt76=1;
15460
            	            					}
15461
            	            				    break;
15462
15463
            	            				}
15464
15465
            	            			}
15466
            	            		    break;
15467
            	            		case REGEXP_INTER_TOK:
15468
            	            			{
15469
            	            				switch ( LA(3) )
15470
            	            				{
15471
            	            				case LPAREN:
15472
            	            					{
15473
            	            						alt76=1;
15474
            	            					}
15475
            	            				    break;
15476
15477
            	            				}
15478
15479
            	            			}
15480
            	            		    break;
15481
            	            		case REGEXP_STAR_TOK:
15482
            	            			{
15483
            	            				switch ( LA(3) )
15484
            	            				{
15485
            	            				case LPAREN:
15486
            	            					{
15487
            	            						alt76=1;
15488
            	            					}
15489
            	            				    break;
15490
15491
            	            				}
15492
15493
            	            			}
15494
            	            		    break;
15495
            	            		case REGEXP_PLUS_TOK:
15496
            	            			{
15497
            	            				switch ( LA(3) )
15498
            	            				{
15499
            	            				case LPAREN:
15500
            	            					{
15501
            	            						alt76=1;
15502
            	            					}
15503
            	            				    break;
15504
15505
            	            				}
15506
15507
            	            			}
15508
            	            		    break;
15509
            	            		case REGEXP_OPT_TOK:
15510
            	            			{
15511
            	            				switch ( LA(3) )
15512
            	            				{
15513
            	            				case LPAREN:
15514
            	            					{
15515
            	            						alt76=1;
15516
            	            					}
15517
            	            				    break;
15518
15519
            	            				}
15520
15521
            	            			}
15522
            	            		    break;
15523
            	            		case REGEXP_RANGE_TOK:
15524
            	            			{
15525
            	            				switch ( LA(3) )
15526
            	            				{
15527
            	            				case LPAREN:
15528
            	            					{
15529
            	            						alt76=1;
15530
            	            					}
15531
            	            				    break;
15532
15533
            	            				}
15534
15535
            	            			}
15536
            	            		    break;
15537
            	            		case REGEXP_LOOP_TOK:
15538
            	            			{
15539
            	            				switch ( LA(3) )
15540
            	            				{
15541
            	            				case LPAREN:
15542
            	            					{
15543
            	            						alt76=1;
15544
            	            					}
15545
            	            				    break;
15546
15547
            	            				}
15548
15549
            	            			}
15550
            	            		    break;
15551
            	            		case REGEXP_COMPLEMENT_TOK:
15552
            	            			{
15553
            	            				switch ( LA(3) )
15554
            	            				{
15555
            	            				case LPAREN:
15556
            	            					{
15557
            	            						alt76=1;
15558
            	            					}
15559
            	            				    break;
15560
15561
            	            				}
15562
15563
            	            			}
15564
            	            		    break;
15565
            	            		case SEQ_UNIT_TOK:
15566
            	            			{
15567
            	            				switch ( LA(3) )
15568
            	            				{
15569
            	            				case LPAREN:
15570
            	            					{
15571
            	            						alt76=1;
15572
            	            					}
15573
            	            				    break;
15574
15575
            	            				}
15576
15577
            	            			}
15578
            	            		    break;
15579
            	            		case REGEXP_EMPTY_TOK:
15580
            	            			{
15581
            	            				alt76=1;
15582
            	            			}
15583
            	            		    break;
15584
            	            		case REGEXP_SIGMA_TOK:
15585
            	            			{
15586
            	            				alt76=1;
15587
            	            			}
15588
            	            		    break;
15589
            	            		case STRING_LITERAL:
15590
            	            			{
15591
            	            				alt76=1;
15592
            	            			}
15593
            	            		    break;
15594
            	            		case SETS_CARD_TOK:
15595
            	            			{
15596
            	            				switch ( LA(3) )
15597
            	            				{
15598
            	            				case LPAREN:
15599
            	            					{
15600
            	            						alt76=1;
15601
            	            					}
15602
            	            				    break;
15603
15604
            	            				}
15605
15606
            	            			}
15607
            	            		    break;
15608
            	            		case SETS_CHOOSE_TOK:
15609
            	            			{
15610
            	            				switch ( LA(3) )
15611
            	            				{
15612
            	            				case LPAREN:
15613
            	            					{
15614
            	            						alt76=1;
15615
            	            					}
15616
            	            				    break;
15617
15618
            	            				}
15619
15620
            	            			}
15621
            	            		    break;
15622
            	            		case IF_TOK:
15623
            	            			{
15624
            	            				switch ( LA(3) )
15625
            	            				{
15626
            	            				case NOT_TOK:
15627
            	            					{
15628
            	            						alt76=1;
15629
            	            					}
15630
            	            				    break;
15631
            	            				case FORALL_TOK:
15632
            	            					{
15633
            	            						alt76=1;
15634
            	            					}
15635
            	            				    break;
15636
            	            				case EXISTS_TOK:
15637
            	            					{
15638
            	            						alt76=1;
15639
            	            					}
15640
            	            				    break;
15641
            	            				case LET_TOK:
15642
            	            					{
15643
            	            						alt76=1;
15644
            	            					}
15645
            	            				    break;
15646
            	            				case LAMBDA_TOK:
15647
            	            					{
15648
            	            						alt76=1;
15649
            	            					}
15650
            	            				    break;
15651
            	            				case MINUS_TOK:
15652
            	            					{
15653
            	            						alt76=1;
15654
            	            					}
15655
            	            				    break;
15656
            	            				case BVNEG_TOK:
15657
            	            					{
15658
            	            						alt76=1;
15659
            	            					}
15660
            	            				    break;
15661
            	            				case TRANSPOSE_TOK:
15662
            	            					{
15663
            	            						alt76=1;
15664
            	            					}
15665
            	            				    break;
15666
            	            				case TRANSCLOSURE_TOK:
15667
            	            					{
15668
            	            						alt76=1;
15669
            	            					}
15670
            	            				    break;
15671
            	            				case TUPLE_TOK:
15672
            	            					{
15673
            	            						alt76=1;
15674
            	            					}
15675
            	            				    break;
15676
            	            				case IDEN_TOK:
15677
            	            					{
15678
            	            						alt76=1;
15679
            	            					}
15680
            	            				    break;
15681
            	            				case BVXOR_TOK:
15682
            	            					{
15683
            	            						alt76=1;
15684
            	            					}
15685
            	            				    break;
15686
            	            				case BVNAND_TOK:
15687
            	            					{
15688
            	            						alt76=1;
15689
            	            					}
15690
            	            				    break;
15691
            	            				case BVNOR_TOK:
15692
            	            					{
15693
            	            						alt76=1;
15694
            	            					}
15695
            	            				    break;
15696
            	            				case BVCOMP_TOK:
15697
            	            					{
15698
            	            						alt76=1;
15699
            	            					}
15700
            	            				    break;
15701
            	            				case BVXNOR_TOK:
15702
            	            					{
15703
            	            						alt76=1;
15704
            	            					}
15705
            	            				    break;
15706
            	            				case BVUMINUS_TOK:
15707
            	            					{
15708
            	            						alt76=1;
15709
            	            					}
15710
            	            				    break;
15711
            	            				case BVPLUS_TOK:
15712
            	            					{
15713
            	            						alt76=1;
15714
            	            					}
15715
            	            				    break;
15716
            	            				case BVSUB_TOK:
15717
            	            					{
15718
            	            						alt76=1;
15719
            	            					}
15720
            	            				    break;
15721
            	            				case BVMULT_TOK:
15722
            	            					{
15723
            	            						alt76=1;
15724
            	            					}
15725
            	            				    break;
15726
            	            				case BVUDIV_TOK:
15727
            	            					{
15728
            	            						alt76=1;
15729
            	            					}
15730
            	            				    break;
15731
            	            				case BVSDIV_TOK:
15732
            	            					{
15733
            	            						alt76=1;
15734
            	            					}
15735
            	            				    break;
15736
            	            				case BVUREM_TOK:
15737
            	            					{
15738
            	            						alt76=1;
15739
            	            					}
15740
            	            				    break;
15741
            	            				case BVSREM_TOK:
15742
            	            					{
15743
            	            						alt76=1;
15744
            	            					}
15745
            	            				    break;
15746
            	            				case BVSMOD_TOK:
15747
            	            					{
15748
            	            						alt76=1;
15749
            	            					}
15750
            	            				    break;
15751
            	            				case BVSHL_TOK:
15752
            	            					{
15753
            	            						alt76=1;
15754
            	            					}
15755
            	            				    break;
15756
            	            				case BVASHR_TOK:
15757
            	            					{
15758
            	            						alt76=1;
15759
            	            					}
15760
            	            				    break;
15761
            	            				case BVLSHR_TOK:
15762
            	            					{
15763
            	            						alt76=1;
15764
            	            					}
15765
            	            				    break;
15766
            	            				case SX_TOK:
15767
            	            					{
15768
            	            						alt76=1;
15769
            	            					}
15770
            	            				    break;
15771
            	            				case BVZEROEXTEND_TOK:
15772
            	            					{
15773
            	            						alt76=1;
15774
            	            					}
15775
            	            				    break;
15776
            	            				case BVREPEAT_TOK:
15777
            	            					{
15778
            	            						alt76=1;
15779
            	            					}
15780
            	            				    break;
15781
            	            				case BVROTR_TOK:
15782
            	            					{
15783
            	            						alt76=1;
15784
            	            					}
15785
            	            				    break;
15786
            	            				case BVROTL_TOK:
15787
            	            					{
15788
            	            						alt76=1;
15789
            	            					}
15790
            	            				    break;
15791
            	            				case BVLT_TOK:
15792
            	            					{
15793
            	            						alt76=1;
15794
            	            					}
15795
            	            				    break;
15796
            	            				case BVLE_TOK:
15797
            	            					{
15798
            	            						alt76=1;
15799
            	            					}
15800
            	            				    break;
15801
            	            				case BVGT_TOK:
15802
            	            					{
15803
            	            						alt76=1;
15804
            	            					}
15805
            	            				    break;
15806
            	            				case BVGE_TOK:
15807
            	            					{
15808
            	            						alt76=1;
15809
            	            					}
15810
            	            				    break;
15811
            	            				case BVSLT_TOK:
15812
            	            					{
15813
            	            						alt76=1;
15814
            	            					}
15815
            	            				    break;
15816
            	            				case BVSLE_TOK:
15817
            	            					{
15818
            	            						alt76=1;
15819
            	            					}
15820
            	            				    break;
15821
            	            				case BVSGT_TOK:
15822
            	            					{
15823
            	            						alt76=1;
15824
            	            					}
15825
            	            				    break;
15826
            	            				case BVSGE_TOK:
15827
            	            					{
15828
            	            						alt76=1;
15829
            	            					}
15830
            	            				    break;
15831
            	            				case STRING_CONCAT_TOK:
15832
            	            					{
15833
            	            						alt76=1;
15834
            	            					}
15835
            	            				    break;
15836
            	            				case STRING_LENGTH_TOK:
15837
            	            					{
15838
            	            						alt76=1;
15839
            	            					}
15840
            	            				    break;
15841
            	            				case STRING_CONTAINS_TOK:
15842
            	            					{
15843
            	            						alt76=1;
15844
            	            					}
15845
            	            				    break;
15846
            	            				case STRING_SUBSTR_TOK:
15847
            	            					{
15848
            	            						alt76=1;
15849
            	            					}
15850
            	            				    break;
15851
            	            				case STRING_CHARAT_TOK:
15852
            	            					{
15853
            	            						alt76=1;
15854
            	            					}
15855
            	            				    break;
15856
            	            				case STRING_INDEXOF_TOK:
15857
            	            					{
15858
            	            						alt76=1;
15859
            	            					}
15860
            	            				    break;
15861
            	            				case STRING_REPLACE_TOK:
15862
            	            					{
15863
            	            						alt76=1;
15864
            	            					}
15865
            	            				    break;
15866
            	            				case STRING_REPLACE_ALL_TOK:
15867
            	            					{
15868
            	            						alt76=1;
15869
            	            					}
15870
            	            				    break;
15871
            	            				case STRING_PREFIXOF_TOK:
15872
            	            					{
15873
            	            						alt76=1;
15874
            	            					}
15875
            	            				    break;
15876
            	            				case STRING_SUFFIXOF_TOK:
15877
            	            					{
15878
            	            						alt76=1;
15879
            	            					}
15880
            	            				    break;
15881
            	            				case STRING_STOI_TOK:
15882
            	            					{
15883
            	            						alt76=1;
15884
            	            					}
15885
            	            				    break;
15886
            	            				case STRING_ITOS_TOK:
15887
            	            					{
15888
            	            						alt76=1;
15889
            	            					}
15890
            	            				    break;
15891
            	            				case STRING_TO_REGEXP_TOK:
15892
            	            					{
15893
            	            						alt76=1;
15894
            	            					}
15895
            	            				    break;
15896
            	            				case STRING_TOLOWER_TOK:
15897
            	            					{
15898
            	            						alt76=1;
15899
            	            					}
15900
            	            				    break;
15901
            	            				case STRING_TOUPPER_TOK:
15902
            	            					{
15903
            	            						alt76=1;
15904
            	            					}
15905
            	            				    break;
15906
            	            				case STRING_REV_TOK:
15907
            	            					{
15908
            	            						alt76=1;
15909
            	            					}
15910
            	            				    break;
15911
            	            				case REGEXP_CONCAT_TOK:
15912
            	            					{
15913
            	            						alt76=1;
15914
            	            					}
15915
            	            				    break;
15916
            	            				case REGEXP_UNION_TOK:
15917
            	            					{
15918
            	            						alt76=1;
15919
            	            					}
15920
            	            				    break;
15921
            	            				case REGEXP_INTER_TOK:
15922
            	            					{
15923
            	            						alt76=1;
15924
            	            					}
15925
            	            				    break;
15926
            	            				case REGEXP_STAR_TOK:
15927
            	            					{
15928
            	            						alt76=1;
15929
            	            					}
15930
            	            				    break;
15931
            	            				case REGEXP_PLUS_TOK:
15932
            	            					{
15933
            	            						alt76=1;
15934
            	            					}
15935
            	            				    break;
15936
            	            				case REGEXP_OPT_TOK:
15937
            	            					{
15938
            	            						alt76=1;
15939
            	            					}
15940
            	            				    break;
15941
            	            				case REGEXP_RANGE_TOK:
15942
            	            					{
15943
            	            						alt76=1;
15944
            	            					}
15945
            	            				    break;
15946
            	            				case REGEXP_LOOP_TOK:
15947
            	            					{
15948
            	            						alt76=1;
15949
            	            					}
15950
            	            				    break;
15951
            	            				case REGEXP_COMPLEMENT_TOK:
15952
            	            					{
15953
            	            						alt76=1;
15954
            	            					}
15955
            	            				    break;
15956
            	            				case SEQ_UNIT_TOK:
15957
            	            					{
15958
            	            						alt76=1;
15959
            	            					}
15960
            	            				    break;
15961
            	            				case REGEXP_EMPTY_TOK:
15962
            	            					{
15963
            	            						alt76=1;
15964
            	            					}
15965
            	            				    break;
15966
            	            				case REGEXP_SIGMA_TOK:
15967
            	            					{
15968
            	            						alt76=1;
15969
            	            					}
15970
            	            				    break;
15971
            	            				case STRING_LITERAL:
15972
            	            					{
15973
            	            						alt76=1;
15974
            	            					}
15975
            	            				    break;
15976
            	            				case SETS_CARD_TOK:
15977
            	            					{
15978
            	            						alt76=1;
15979
            	            					}
15980
            	            				    break;
15981
            	            				case SETS_CHOOSE_TOK:
15982
            	            					{
15983
            	            						alt76=1;
15984
            	            					}
15985
            	            				    break;
15986
            	            				case IF_TOK:
15987
            	            					{
15988
            	            						alt76=1;
15989
            	            					}
15990
            	            				    break;
15991
            	            				case LPAREN:
15992
            	            					{
15993
            	            						alt76=1;
15994
            	            					}
15995
            	            				    break;
15996
            	            				case PARENHASH:
15997
            	            					{
15998
            	            						alt76=1;
15999
            	            					}
16000
            	            				    break;
16001
            	            				case LBRACE:
16002
            	            					{
16003
            	            						alt76=1;
16004
            	            					}
16005
            	            				    break;
16006
            	            				case UNIVSET_TOK:
16007
            	            					{
16008
            	            						alt76=1;
16009
            	            					}
16010
            	            				    break;
16011
            	            				case BAR:
16012
            	            					{
16013
            	            						alt76=1;
16014
            	            					}
16015
            	            				    break;
16016
            	            				case ARRAY_TOK:
16017
            	            					{
16018
            	            						alt76=1;
16019
            	            					}
16020
            	            				    break;
16021
            	            				case TRUE_TOK:
16022
            	            					{
16023
            	            						alt76=1;
16024
            	            					}
16025
            	            				    break;
16026
            	            				case FALSE_TOK:
16027
            	            					{
16028
            	            						alt76=1;
16029
            	            					}
16030
            	            				    break;
16031
            	            				case DECIMAL_LITERAL:
16032
            	            					{
16033
            	            						alt76=1;
16034
            	            					}
16035
            	            				    break;
16036
            	            				case INTEGER_LITERAL:
16037
            	            					{
16038
            	            						alt76=1;
16039
            	            					}
16040
            	            				    break;
16041
            	            				case HEX_LITERAL:
16042
            	            					{
16043
            	            						alt76=1;
16044
            	            					}
16045
            	            				    break;
16046
            	            				case BINARY_LITERAL:
16047
            	            					{
16048
            	            						alt76=1;
16049
            	            					}
16050
            	            				    break;
16051
            	            				case IDENTIFIER:
16052
            	            					{
16053
            	            						alt76=1;
16054
            	            					}
16055
            	            				    break;
16056
            	            				case FLOOR_TOK:
16057
            	            					{
16058
            	            						alt76=1;
16059
            	            					}
16060
            	            				    break;
16061
            	            				case IS_INTEGER_TOK:
16062
            	            					{
16063
            	            						alt76=1;
16064
            	            					}
16065
            	            				    break;
16066
            	            				case ABS_TOK:
16067
            	            					{
16068
            	            						alt76=1;
16069
            	            					}
16070
            	            				    break;
16071
            	            				case DIVISIBLE_TOK:
16072
            	            					{
16073
            	            						alt76=1;
16074
            	            					}
16075
            	            				    break;
16076
            	            				case DISTINCT_TOK:
16077
            	            					{
16078
            	            						alt76=1;
16079
            	            					}
16080
            	            				    break;
16081
16082
            	            				}
16083
16084
            	            			}
16085
            	            		    break;
16086
3
            	            		case LPAREN:
16087
            	            			{
16088
3
            	            				switch ( LA(3) )
16089
            	            				{
16090
            	            				case RPAREN:
16091
            	            					{
16092
            	            						alt76=1;
16093
            	            					}
16094
            	            				    break;
16095
            	            				case NOT_TOK:
16096
            	            					{
16097
            	            						alt76=1;
16098
            	            					}
16099
            	            				    break;
16100
            	            				case FORALL_TOK:
16101
            	            					{
16102
            	            						alt76=1;
16103
            	            					}
16104
            	            				    break;
16105
            	            				case EXISTS_TOK:
16106
            	            					{
16107
            	            						alt76=1;
16108
            	            					}
16109
            	            				    break;
16110
            	            				case LET_TOK:
16111
            	            					{
16112
            	            						alt76=1;
16113
            	            					}
16114
            	            				    break;
16115
            	            				case LAMBDA_TOK:
16116
            	            					{
16117
            	            						alt76=1;
16118
            	            					}
16119
            	            				    break;
16120
            	            				case MINUS_TOK:
16121
            	            					{
16122
            	            						alt76=1;
16123
            	            					}
16124
            	            				    break;
16125
            	            				case BVNEG_TOK:
16126
            	            					{
16127
            	            						alt76=1;
16128
            	            					}
16129
            	            				    break;
16130
            	            				case TRANSPOSE_TOK:
16131
            	            					{
16132
            	            						alt76=1;
16133
            	            					}
16134
            	            				    break;
16135
            	            				case TRANSCLOSURE_TOK:
16136
            	            					{
16137
            	            						alt76=1;
16138
            	            					}
16139
            	            				    break;
16140
            	            				case TUPLE_TOK:
16141
            	            					{
16142
            	            						alt76=1;
16143
            	            					}
16144
            	            				    break;
16145
            	            				case IDEN_TOK:
16146
            	            					{
16147
            	            						alt76=1;
16148
            	            					}
16149
            	            				    break;
16150
            	            				case BVXOR_TOK:
16151
            	            					{
16152
            	            						alt76=1;
16153
            	            					}
16154
            	            				    break;
16155
            	            				case BVNAND_TOK:
16156
            	            					{
16157
            	            						alt76=1;
16158
            	            					}
16159
            	            				    break;
16160
            	            				case BVNOR_TOK:
16161
            	            					{
16162
            	            						alt76=1;
16163
            	            					}
16164
            	            				    break;
16165
            	            				case BVCOMP_TOK:
16166
            	            					{
16167
            	            						alt76=1;
16168
            	            					}
16169
            	            				    break;
16170
            	            				case BVXNOR_TOK:
16171
            	            					{
16172
            	            						alt76=1;
16173
            	            					}
16174
            	            				    break;
16175
            	            				case BVUMINUS_TOK:
16176
            	            					{
16177
            	            						alt76=1;
16178
            	            					}
16179
            	            				    break;
16180
            	            				case BVPLUS_TOK:
16181
            	            					{
16182
            	            						alt76=1;
16183
            	            					}
16184
            	            				    break;
16185
            	            				case BVSUB_TOK:
16186
            	            					{
16187
            	            						alt76=1;
16188
            	            					}
16189
            	            				    break;
16190
            	            				case BVMULT_TOK:
16191
            	            					{
16192
            	            						alt76=1;
16193
            	            					}
16194
            	            				    break;
16195
            	            				case BVUDIV_TOK:
16196
            	            					{
16197
            	            						alt76=1;
16198
            	            					}
16199
            	            				    break;
16200
            	            				case BVSDIV_TOK:
16201
            	            					{
16202
            	            						alt76=1;
16203
            	            					}
16204
            	            				    break;
16205
            	            				case BVUREM_TOK:
16206
            	            					{
16207
            	            						alt76=1;
16208
            	            					}
16209
            	            				    break;
16210
            	            				case BVSREM_TOK:
16211
            	            					{
16212
            	            						alt76=1;
16213
            	            					}
16214
            	            				    break;
16215
            	            				case BVSMOD_TOK:
16216
            	            					{
16217
            	            						alt76=1;
16218
            	            					}
16219
            	            				    break;
16220
            	            				case BVSHL_TOK:
16221
            	            					{
16222
            	            						alt76=1;
16223
            	            					}
16224
            	            				    break;
16225
            	            				case BVASHR_TOK:
16226
            	            					{
16227
            	            						alt76=1;
16228
            	            					}
16229
            	            				    break;
16230
            	            				case BVLSHR_TOK:
16231
            	            					{
16232
            	            						alt76=1;
16233
            	            					}
16234
            	            				    break;
16235
            	            				case SX_TOK:
16236
            	            					{
16237
            	            						alt76=1;
16238
            	            					}
16239
            	            				    break;
16240
            	            				case BVZEROEXTEND_TOK:
16241
            	            					{
16242
            	            						alt76=1;
16243
            	            					}
16244
            	            				    break;
16245
            	            				case BVREPEAT_TOK:
16246
            	            					{
16247
            	            						alt76=1;
16248
            	            					}
16249
            	            				    break;
16250
            	            				case BVROTR_TOK:
16251
            	            					{
16252
            	            						alt76=1;
16253
            	            					}
16254
            	            				    break;
16255
            	            				case BVROTL_TOK:
16256
            	            					{
16257
            	            						alt76=1;
16258
            	            					}
16259
            	            				    break;
16260
            	            				case BVLT_TOK:
16261
            	            					{
16262
            	            						alt76=1;
16263
            	            					}
16264
            	            				    break;
16265
            	            				case BVLE_TOK:
16266
            	            					{
16267
            	            						alt76=1;
16268
            	            					}
16269
            	            				    break;
16270
            	            				case BVGT_TOK:
16271
            	            					{
16272
            	            						alt76=1;
16273
            	            					}
16274
            	            				    break;
16275
            	            				case BVGE_TOK:
16276
            	            					{
16277
            	            						alt76=1;
16278
            	            					}
16279
            	            				    break;
16280
            	            				case BVSLT_TOK:
16281
            	            					{
16282
            	            						alt76=1;
16283
            	            					}
16284
            	            				    break;
16285
            	            				case BVSLE_TOK:
16286
            	            					{
16287
            	            						alt76=1;
16288
            	            					}
16289
            	            				    break;
16290
            	            				case BVSGT_TOK:
16291
            	            					{
16292
            	            						alt76=1;
16293
            	            					}
16294
            	            				    break;
16295
            	            				case BVSGE_TOK:
16296
            	            					{
16297
            	            						alt76=1;
16298
            	            					}
16299
            	            				    break;
16300
            	            				case STRING_CONCAT_TOK:
16301
            	            					{
16302
            	            						alt76=1;
16303
            	            					}
16304
            	            				    break;
16305
            	            				case STRING_LENGTH_TOK:
16306
            	            					{
16307
            	            						alt76=1;
16308
            	            					}
16309
            	            				    break;
16310
            	            				case STRING_CONTAINS_TOK:
16311
            	            					{
16312
            	            						alt76=1;
16313
            	            					}
16314
            	            				    break;
16315
            	            				case STRING_SUBSTR_TOK:
16316
            	            					{
16317
            	            						alt76=1;
16318
            	            					}
16319
            	            				    break;
16320
            	            				case STRING_CHARAT_TOK:
16321
            	            					{
16322
            	            						alt76=1;
16323
            	            					}
16324
            	            				    break;
16325
            	            				case STRING_INDEXOF_TOK:
16326
            	            					{
16327
            	            						alt76=1;
16328
            	            					}
16329
            	            				    break;
16330
            	            				case STRING_REPLACE_TOK:
16331
            	            					{
16332
            	            						alt76=1;
16333
            	            					}
16334
            	            				    break;
16335
            	            				case STRING_REPLACE_ALL_TOK:
16336
            	            					{
16337
            	            						alt76=1;
16338
            	            					}
16339
            	            				    break;
16340
            	            				case STRING_PREFIXOF_TOK:
16341
            	            					{
16342
            	            						alt76=1;
16343
            	            					}
16344
            	            				    break;
16345
            	            				case STRING_SUFFIXOF_TOK:
16346
            	            					{
16347
            	            						alt76=1;
16348
            	            					}
16349
            	            				    break;
16350
            	            				case STRING_STOI_TOK:
16351
            	            					{
16352
            	            						alt76=1;
16353
            	            					}
16354
            	            				    break;
16355
            	            				case STRING_ITOS_TOK:
16356
            	            					{
16357
            	            						alt76=1;
16358
            	            					}
16359
            	            				    break;
16360
            	            				case STRING_TO_REGEXP_TOK:
16361
            	            					{
16362
            	            						alt76=1;
16363
            	            					}
16364
            	            				    break;
16365
            	            				case STRING_TOLOWER_TOK:
16366
            	            					{
16367
            	            						alt76=1;
16368
            	            					}
16369
            	            				    break;
16370
            	            				case STRING_TOUPPER_TOK:
16371
            	            					{
16372
            	            						alt76=1;
16373
            	            					}
16374
            	            				    break;
16375
            	            				case STRING_REV_TOK:
16376
            	            					{
16377
            	            						alt76=1;
16378
            	            					}
16379
            	            				    break;
16380
            	            				case REGEXP_CONCAT_TOK:
16381
            	            					{
16382
            	            						alt76=1;
16383
            	            					}
16384
            	            				    break;
16385
            	            				case REGEXP_UNION_TOK:
16386
            	            					{
16387
            	            						alt76=1;
16388
            	            					}
16389
            	            				    break;
16390
            	            				case REGEXP_INTER_TOK:
16391
            	            					{
16392
            	            						alt76=1;
16393
            	            					}
16394
            	            				    break;
16395
            	            				case REGEXP_STAR_TOK:
16396
            	            					{
16397
            	            						alt76=1;
16398
            	            					}
16399
            	            				    break;
16400
            	            				case REGEXP_PLUS_TOK:
16401
            	            					{
16402
            	            						alt76=1;
16403
            	            					}
16404
            	            				    break;
16405
            	            				case REGEXP_OPT_TOK:
16406
            	            					{
16407
            	            						alt76=1;
16408
            	            					}
16409
            	            				    break;
16410
            	            				case REGEXP_RANGE_TOK:
16411
            	            					{
16412
            	            						alt76=1;
16413
            	            					}
16414
            	            				    break;
16415
            	            				case REGEXP_LOOP_TOK:
16416
            	            					{
16417
            	            						alt76=1;
16418
            	            					}
16419
            	            				    break;
16420
            	            				case REGEXP_COMPLEMENT_TOK:
16421
            	            					{
16422
            	            						alt76=1;
16423
            	            					}
16424
            	            				    break;
16425
            	            				case SEQ_UNIT_TOK:
16426
            	            					{
16427
            	            						alt76=1;
16428
            	            					}
16429
            	            				    break;
16430
            	            				case REGEXP_EMPTY_TOK:
16431
            	            					{
16432
            	            						alt76=1;
16433
            	            					}
16434
            	            				    break;
16435
            	            				case REGEXP_SIGMA_TOK:
16436
            	            					{
16437
            	            						alt76=1;
16438
            	            					}
16439
            	            				    break;
16440
            	            				case STRING_LITERAL:
16441
            	            					{
16442
            	            						alt76=1;
16443
            	            					}
16444
            	            				    break;
16445
            	            				case SETS_CARD_TOK:
16446
            	            					{
16447
            	            						alt76=1;
16448
            	            					}
16449
            	            				    break;
16450
            	            				case SETS_CHOOSE_TOK:
16451
            	            					{
16452
            	            						alt76=1;
16453
            	            					}
16454
            	            				    break;
16455
            	            				case IF_TOK:
16456
            	            					{
16457
            	            						alt76=1;
16458
            	            					}
16459
            	            				    break;
16460
3
            	            				case LPAREN:
16461
            	            					{
16462
3
            	            						alt76=1;
16463
            	            					}
16464
3
            	            				    break;
16465
            	            				case PARENHASH:
16466
            	            					{
16467
            	            						alt76=1;
16468
            	            					}
16469
            	            				    break;
16470
            	            				case LBRACE:
16471
            	            					{
16472
            	            						alt76=1;
16473
            	            					}
16474
            	            				    break;
16475
            	            				case UNIVSET_TOK:
16476
            	            					{
16477
            	            						alt76=1;
16478
            	            					}
16479
            	            				    break;
16480
            	            				case BAR:
16481
            	            					{
16482
            	            						alt76=1;
16483
            	            					}
16484
            	            				    break;
16485
            	            				case ARRAY_TOK:
16486
            	            					{
16487
            	            						alt76=1;
16488
            	            					}
16489
            	            				    break;
16490
            	            				case TRUE_TOK:
16491
            	            					{
16492
            	            						alt76=1;
16493
            	            					}
16494
            	            				    break;
16495
            	            				case FALSE_TOK:
16496
            	            					{
16497
            	            						alt76=1;
16498
            	            					}
16499
            	            				    break;
16500
            	            				case DECIMAL_LITERAL:
16501
            	            					{
16502
            	            						alt76=1;
16503
            	            					}
16504
            	            				    break;
16505
            	            				case INTEGER_LITERAL:
16506
            	            					{
16507
            	            						alt76=1;
16508
            	            					}
16509
            	            				    break;
16510
            	            				case HEX_LITERAL:
16511
            	            					{
16512
            	            						alt76=1;
16513
            	            					}
16514
            	            				    break;
16515
            	            				case BINARY_LITERAL:
16516
            	            					{
16517
            	            						alt76=1;
16518
            	            					}
16519
            	            				    break;
16520
            	            				case IDENTIFIER:
16521
            	            					{
16522
            	            						alt76=1;
16523
            	            					}
16524
            	            				    break;
16525
            	            				case FLOOR_TOK:
16526
            	            					{
16527
            	            						alt76=1;
16528
            	            					}
16529
            	            				    break;
16530
            	            				case IS_INTEGER_TOK:
16531
            	            					{
16532
            	            						alt76=1;
16533
            	            					}
16534
            	            				    break;
16535
            	            				case ABS_TOK:
16536
            	            					{
16537
            	            						alt76=1;
16538
            	            					}
16539
            	            				    break;
16540
            	            				case DIVISIBLE_TOK:
16541
            	            					{
16542
            	            						alt76=1;
16543
            	            					}
16544
            	            				    break;
16545
            	            				case DISTINCT_TOK:
16546
            	            					{
16547
            	            						alt76=1;
16548
            	            					}
16549
            	            				    break;
16550
16551
            	            				}
16552
16553
            	            			}
16554
3
            	            		    break;
16555
            	            		case PARENHASH:
16556
            	            			{
16557
            	            				switch ( LA(3) )
16558
            	            				{
16559
            	            				case HASHPAREN:
16560
            	            					{
16561
            	            						alt76=1;
16562
            	            					}
16563
            	            				    break;
16564
            	            				case IDENTIFIER:
16565
            	            					{
16566
            	            						alt76=1;
16567
            	            					}
16568
            	            				    break;
16569
16570
            	            				}
16571
16572
            	            			}
16573
            	            		    break;
16574
8
            	            		case LBRACE:
16575
            	            			{
16576
8
            	            				switch ( LA(3) )
16577
            	            				{
16578
            	            				case RBRACE:
16579
            	            					{
16580
            	            						alt76=1;
16581
            	            					}
16582
            	            				    break;
16583
            	            				case NOT_TOK:
16584
            	            					{
16585
            	            						alt76=1;
16586
            	            					}
16587
            	            				    break;
16588
            	            				case FORALL_TOK:
16589
            	            					{
16590
            	            						alt76=1;
16591
            	            					}
16592
            	            				    break;
16593
            	            				case EXISTS_TOK:
16594
            	            					{
16595
            	            						alt76=1;
16596
            	            					}
16597
            	            				    break;
16598
            	            				case LET_TOK:
16599
            	            					{
16600
            	            						alt76=1;
16601
            	            					}
16602
            	            				    break;
16603
            	            				case LAMBDA_TOK:
16604
            	            					{
16605
            	            						alt76=1;
16606
            	            					}
16607
            	            				    break;
16608
            	            				case MINUS_TOK:
16609
            	            					{
16610
            	            						alt76=1;
16611
            	            					}
16612
            	            				    break;
16613
            	            				case BVNEG_TOK:
16614
            	            					{
16615
            	            						alt76=1;
16616
            	            					}
16617
            	            				    break;
16618
            	            				case TRANSPOSE_TOK:
16619
            	            					{
16620
            	            						alt76=1;
16621
            	            					}
16622
            	            				    break;
16623
            	            				case TRANSCLOSURE_TOK:
16624
            	            					{
16625
            	            						alt76=1;
16626
            	            					}
16627
            	            				    break;
16628
            	            				case TUPLE_TOK:
16629
            	            					{
16630
            	            						alt76=1;
16631
            	            					}
16632
            	            				    break;
16633
            	            				case IDEN_TOK:
16634
            	            					{
16635
            	            						alt76=1;
16636
            	            					}
16637
            	            				    break;
16638
            	            				case BVXOR_TOK:
16639
            	            					{
16640
            	            						alt76=1;
16641
            	            					}
16642
            	            				    break;
16643
            	            				case BVNAND_TOK:
16644
            	            					{
16645
            	            						alt76=1;
16646
            	            					}
16647
            	            				    break;
16648
            	            				case BVNOR_TOK:
16649
            	            					{
16650
            	            						alt76=1;
16651
            	            					}
16652
            	            				    break;
16653
            	            				case BVCOMP_TOK:
16654
            	            					{
16655
            	            						alt76=1;
16656
            	            					}
16657
            	            				    break;
16658
            	            				case BVXNOR_TOK:
16659
            	            					{
16660
            	            						alt76=1;
16661
            	            					}
16662
            	            				    break;
16663
            	            				case BVUMINUS_TOK:
16664
            	            					{
16665
            	            						alt76=1;
16666
            	            					}
16667
            	            				    break;
16668
            	            				case BVPLUS_TOK:
16669
            	            					{
16670
            	            						alt76=1;
16671
            	            					}
16672
            	            				    break;
16673
            	            				case BVSUB_TOK:
16674
            	            					{
16675
            	            						alt76=1;
16676
            	            					}
16677
            	            				    break;
16678
            	            				case BVMULT_TOK:
16679
            	            					{
16680
            	            						alt76=1;
16681
            	            					}
16682
            	            				    break;
16683
            	            				case BVUDIV_TOK:
16684
            	            					{
16685
            	            						alt76=1;
16686
            	            					}
16687
            	            				    break;
16688
            	            				case BVSDIV_TOK:
16689
            	            					{
16690
            	            						alt76=1;
16691
            	            					}
16692
            	            				    break;
16693
            	            				case BVUREM_TOK:
16694
            	            					{
16695
            	            						alt76=1;
16696
            	            					}
16697
            	            				    break;
16698
            	            				case BVSREM_TOK:
16699
            	            					{
16700
            	            						alt76=1;
16701
            	            					}
16702
            	            				    break;
16703
            	            				case BVSMOD_TOK:
16704
            	            					{
16705
            	            						alt76=1;
16706
            	            					}
16707
            	            				    break;
16708
            	            				case BVSHL_TOK:
16709
            	            					{
16710
            	            						alt76=1;
16711
            	            					}
16712
            	            				    break;
16713
            	            				case BVASHR_TOK:
16714
            	            					{
16715
            	            						alt76=1;
16716
            	            					}
16717
            	            				    break;
16718
            	            				case BVLSHR_TOK:
16719
            	            					{
16720
            	            						alt76=1;
16721
            	            					}
16722
            	            				    break;
16723
            	            				case SX_TOK:
16724
            	            					{
16725
            	            						alt76=1;
16726
            	            					}
16727
            	            				    break;
16728
            	            				case BVZEROEXTEND_TOK:
16729
            	            					{
16730
            	            						alt76=1;
16731
            	            					}
16732
            	            				    break;
16733
            	            				case BVREPEAT_TOK:
16734
            	            					{
16735
            	            						alt76=1;
16736
            	            					}
16737
            	            				    break;
16738
            	            				case BVROTR_TOK:
16739
            	            					{
16740
            	            						alt76=1;
16741
            	            					}
16742
            	            				    break;
16743
            	            				case BVROTL_TOK:
16744
            	            					{
16745
            	            						alt76=1;
16746
            	            					}
16747
            	            				    break;
16748
            	            				case BVLT_TOK:
16749
            	            					{
16750
            	            						alt76=1;
16751
            	            					}
16752
            	            				    break;
16753
            	            				case BVLE_TOK:
16754
            	            					{
16755
            	            						alt76=1;
16756
            	            					}
16757
            	            				    break;
16758
            	            				case BVGT_TOK:
16759
            	            					{
16760
            	            						alt76=1;
16761
            	            					}
16762
            	            				    break;
16763
            	            				case BVGE_TOK:
16764
            	            					{
16765
            	            						alt76=1;
16766
            	            					}
16767
            	            				    break;
16768
            	            				case BVSLT_TOK:
16769
            	            					{
16770
            	            						alt76=1;
16771
            	            					}
16772
            	            				    break;
16773
            	            				case BVSLE_TOK:
16774
            	            					{
16775
            	            						alt76=1;
16776
            	            					}
16777
            	            				    break;
16778
            	            				case BVSGT_TOK:
16779
            	            					{
16780
            	            						alt76=1;
16781
            	            					}
16782
            	            				    break;
16783
            	            				case BVSGE_TOK:
16784
            	            					{
16785
            	            						alt76=1;
16786
            	            					}
16787
            	            				    break;
16788
            	            				case STRING_CONCAT_TOK:
16789
            	            					{
16790
            	            						alt76=1;
16791
            	            					}
16792
            	            				    break;
16793
            	            				case STRING_LENGTH_TOK:
16794
            	            					{
16795
            	            						alt76=1;
16796
            	            					}
16797
            	            				    break;
16798
            	            				case STRING_CONTAINS_TOK:
16799
            	            					{
16800
            	            						alt76=1;
16801
            	            					}
16802
            	            				    break;
16803
            	            				case STRING_SUBSTR_TOK:
16804
            	            					{
16805
            	            						alt76=1;
16806
            	            					}
16807
            	            				    break;
16808
            	            				case STRING_CHARAT_TOK:
16809
            	            					{
16810
            	            						alt76=1;
16811
            	            					}
16812
            	            				    break;
16813
            	            				case STRING_INDEXOF_TOK:
16814
            	            					{
16815
            	            						alt76=1;
16816
            	            					}
16817
            	            				    break;
16818
            	            				case STRING_REPLACE_TOK:
16819
            	            					{
16820
            	            						alt76=1;
16821
            	            					}
16822
            	            				    break;
16823
            	            				case STRING_REPLACE_ALL_TOK:
16824
            	            					{
16825
            	            						alt76=1;
16826
            	            					}
16827
            	            				    break;
16828
            	            				case STRING_PREFIXOF_TOK:
16829
            	            					{
16830
            	            						alt76=1;
16831
            	            					}
16832
            	            				    break;
16833
            	            				case STRING_SUFFIXOF_TOK:
16834
            	            					{
16835
            	            						alt76=1;
16836
            	            					}
16837
            	            				    break;
16838
            	            				case STRING_STOI_TOK:
16839
            	            					{
16840
            	            						alt76=1;
16841
            	            					}
16842
            	            				    break;
16843
            	            				case STRING_ITOS_TOK:
16844
            	            					{
16845
            	            						alt76=1;
16846
            	            					}
16847
            	            				    break;
16848
            	            				case STRING_TO_REGEXP_TOK:
16849
            	            					{
16850
            	            						alt76=1;
16851
            	            					}
16852
            	            				    break;
16853
            	            				case STRING_TOLOWER_TOK:
16854
            	            					{
16855
            	            						alt76=1;
16856
            	            					}
16857
            	            				    break;
16858
            	            				case STRING_TOUPPER_TOK:
16859
            	            					{
16860
            	            						alt76=1;
16861
            	            					}
16862
            	            				    break;
16863
            	            				case STRING_REV_TOK:
16864
            	            					{
16865
            	            						alt76=1;
16866
            	            					}
16867
            	            				    break;
16868
            	            				case REGEXP_CONCAT_TOK:
16869
            	            					{
16870
            	            						alt76=1;
16871
            	            					}
16872
            	            				    break;
16873
            	            				case REGEXP_UNION_TOK:
16874
            	            					{
16875
            	            						alt76=1;
16876
            	            					}
16877
            	            				    break;
16878
            	            				case REGEXP_INTER_TOK:
16879
            	            					{
16880
            	            						alt76=1;
16881
            	            					}
16882
            	            				    break;
16883
            	            				case REGEXP_STAR_TOK:
16884
            	            					{
16885
            	            						alt76=1;
16886
            	            					}
16887
            	            				    break;
16888
            	            				case REGEXP_PLUS_TOK:
16889
            	            					{
16890
            	            						alt76=1;
16891
            	            					}
16892
            	            				    break;
16893
            	            				case REGEXP_OPT_TOK:
16894
            	            					{
16895
            	            						alt76=1;
16896
            	            					}
16897
            	            				    break;
16898
            	            				case REGEXP_RANGE_TOK:
16899
            	            					{
16900
            	            						alt76=1;
16901
            	            					}
16902
            	            				    break;
16903
            	            				case REGEXP_LOOP_TOK:
16904
            	            					{
16905
            	            						alt76=1;
16906
            	            					}
16907
            	            				    break;
16908
            	            				case REGEXP_COMPLEMENT_TOK:
16909
            	            					{
16910
            	            						alt76=1;
16911
            	            					}
16912
            	            				    break;
16913
            	            				case SEQ_UNIT_TOK:
16914
            	            					{
16915
            	            						alt76=1;
16916
            	            					}
16917
            	            				    break;
16918
            	            				case REGEXP_EMPTY_TOK:
16919
            	            					{
16920
            	            						alt76=1;
16921
            	            					}
16922
            	            				    break;
16923
            	            				case REGEXP_SIGMA_TOK:
16924
            	            					{
16925
            	            						alt76=1;
16926
            	            					}
16927
            	            				    break;
16928
            	            				case STRING_LITERAL:
16929
            	            					{
16930
            	            						alt76=1;
16931
            	            					}
16932
            	            				    break;
16933
            	            				case SETS_CARD_TOK:
16934
            	            					{
16935
            	            						alt76=1;
16936
            	            					}
16937
            	            				    break;
16938
            	            				case SETS_CHOOSE_TOK:
16939
            	            					{
16940
            	            						alt76=1;
16941
            	            					}
16942
            	            				    break;
16943
            	            				case IF_TOK:
16944
            	            					{
16945
            	            						alt76=1;
16946
            	            					}
16947
            	            				    break;
16948
5
            	            				case LPAREN:
16949
            	            					{
16950
5
            	            						alt76=1;
16951
            	            					}
16952
5
            	            				    break;
16953
            	            				case PARENHASH:
16954
            	            					{
16955
            	            						alt76=1;
16956
            	            					}
16957
            	            				    break;
16958
            	            				case LBRACE:
16959
            	            					{
16960
            	            						alt76=1;
16961
            	            					}
16962
            	            				    break;
16963
            	            				case UNIVSET_TOK:
16964
            	            					{
16965
            	            						alt76=1;
16966
            	            					}
16967
            	            				    break;
16968
            	            				case BAR:
16969
            	            					{
16970
            	            						alt76=1;
16971
            	            					}
16972
            	            				    break;
16973
            	            				case ARRAY_TOK:
16974
            	            					{
16975
            	            						alt76=1;
16976
            	            					}
16977
            	            				    break;
16978
            	            				case TRUE_TOK:
16979
            	            					{
16980
            	            						alt76=1;
16981
            	            					}
16982
            	            				    break;
16983
            	            				case FALSE_TOK:
16984
            	            					{
16985
            	            						alt76=1;
16986
            	            					}
16987
            	            				    break;
16988
            	            				case DECIMAL_LITERAL:
16989
            	            					{
16990
            	            						alt76=1;
16991
            	            					}
16992
            	            				    break;
16993
            	            				case INTEGER_LITERAL:
16994
            	            					{
16995
            	            						alt76=1;
16996
            	            					}
16997
            	            				    break;
16998
            	            				case HEX_LITERAL:
16999
            	            					{
17000
            	            						alt76=1;
17001
            	            					}
17002
            	            				    break;
17003
            	            				case BINARY_LITERAL:
17004
            	            					{
17005
            	            						alt76=1;
17006
            	            					}
17007
            	            				    break;
17008
3
            	            				case IDENTIFIER:
17009
            	            					{
17010
3
            	            						alt76=1;
17011
            	            					}
17012
3
            	            				    break;
17013
            	            				case FLOOR_TOK:
17014
            	            					{
17015
            	            						alt76=1;
17016
            	            					}
17017
            	            				    break;
17018
            	            				case IS_INTEGER_TOK:
17019
            	            					{
17020
            	            						alt76=1;
17021
            	            					}
17022
            	            				    break;
17023
            	            				case ABS_TOK:
17024
            	            					{
17025
            	            						alt76=1;
17026
            	            					}
17027
            	            				    break;
17028
            	            				case DIVISIBLE_TOK:
17029
            	            					{
17030
            	            						alt76=1;
17031
            	            					}
17032
            	            				    break;
17033
            	            				case DISTINCT_TOK:
17034
            	            					{
17035
            	            						alt76=1;
17036
            	            					}
17037
            	            				    break;
17038
17039
            	            				}
17040
17041
            	            			}
17042
8
            	            		    break;
17043
            	            		case UNIVSET_TOK:
17044
            	            			{
17045
            	            				alt76=1;
17046
            	            			}
17047
            	            		    break;
17048
            	            		case BAR:
17049
            	            			{
17050
            	            				switch ( LA(3) )
17051
            	            				{
17052
            	            				case BAR:
17053
            	            					{
17054
            	            						alt76=1;
17055
            	            					}
17056
            	            				    break;
17057
17058
            	            				}
17059
17060
            	            			}
17061
            	            		    break;
17062
            	            		case ARRAY_TOK:
17063
            	            			{
17064
            	            				switch ( LA(3) )
17065
            	            				{
17066
            	            				case LPAREN:
17067
            	            					{
17068
            	            						alt76=1;
17069
            	            					}
17070
            	            				    break;
17071
17072
            	            				}
17073
17074
            	            			}
17075
            	            		    break;
17076
            	            		case TRUE_TOK:
17077
            	            			{
17078
            	            				alt76=1;
17079
            	            			}
17080
            	            		    break;
17081
            	            		case FALSE_TOK:
17082
            	            			{
17083
            	            				alt76=1;
17084
            	            			}
17085
            	            		    break;
17086
            	            		case DECIMAL_LITERAL:
17087
            	            			{
17088
            	            				alt76=1;
17089
            	            			}
17090
            	            		    break;
17091
15
            	            		case INTEGER_LITERAL:
17092
            	            			{
17093
15
            	            				alt76=1;
17094
            	            			}
17095
15
            	            		    break;
17096
            	            		case HEX_LITERAL:
17097
            	            			{
17098
            	            				alt76=1;
17099
            	            			}
17100
            	            		    break;
17101
            	            		case BINARY_LITERAL:
17102
            	            			{
17103
            	            				alt76=1;
17104
            	            			}
17105
            	            		    break;
17106
39
            	            		case IDENTIFIER:
17107
            	            			{
17108
39
            	            				alt76=1;
17109
            	            			}
17110
39
            	            		    break;
17111
            	            		case FLOOR_TOK:
17112
            	            			{
17113
            	            				switch ( LA(3) )
17114
            	            				{
17115
            	            				case LPAREN:
17116
            	            					{
17117
            	            						alt76=1;
17118
            	            					}
17119
            	            				    break;
17120
17121
            	            				}
17122
17123
            	            			}
17124
            	            		    break;
17125
            	            		case IS_INTEGER_TOK:
17126
            	            			{
17127
            	            				switch ( LA(3) )
17128
            	            				{
17129
            	            				case LPAREN:
17130
            	            					{
17131
            	            						alt76=1;
17132
            	            					}
17133
            	            				    break;
17134
17135
            	            				}
17136
17137
            	            			}
17138
            	            		    break;
17139
            	            		case ABS_TOK:
17140
            	            			{
17141
            	            				switch ( LA(3) )
17142
            	            				{
17143
            	            				case LPAREN:
17144
            	            					{
17145
            	            						alt76=1;
17146
            	            					}
17147
            	            				    break;
17148
17149
            	            				}
17150
17151
            	            			}
17152
            	            		    break;
17153
            	            		case DIVISIBLE_TOK:
17154
            	            			{
17155
            	            				switch ( LA(3) )
17156
            	            				{
17157
            	            				case LPAREN:
17158
            	            					{
17159
            	            						alt76=1;
17160
            	            					}
17161
            	            				    break;
17162
17163
            	            				}
17164
17165
            	            			}
17166
            	            		    break;
17167
            	            		case DISTINCT_TOK:
17168
            	            			{
17169
            	            				switch ( LA(3) )
17170
            	            				{
17171
            	            				case LPAREN:
17172
            	            					{
17173
            	            						alt76=1;
17174
            	            					}
17175
            	            				    break;
17176
17177
            	            				}
17178
17179
            	            			}
17180
            	            		    break;
17181
            	            		case MINUS_TOK:
17182
            	            			{
17183
            	            				switch ( LA(3) )
17184
            	            				{
17185
            	            				case BVNEG_TOK:
17186
            	            					{
17187
            	            						alt76=1;
17188
            	            					}
17189
            	            				    break;
17190
            	            				case TRANSPOSE_TOK:
17191
            	            					{
17192
            	            						alt76=1;
17193
            	            					}
17194
            	            				    break;
17195
            	            				case TRANSCLOSURE_TOK:
17196
            	            					{
17197
            	            						alt76=1;
17198
            	            					}
17199
            	            				    break;
17200
            	            				case TUPLE_TOK:
17201
            	            					{
17202
            	            						alt76=1;
17203
            	            					}
17204
            	            				    break;
17205
            	            				case IDEN_TOK:
17206
            	            					{
17207
            	            						alt76=1;
17208
            	            					}
17209
            	            				    break;
17210
            	            				case BVXOR_TOK:
17211
            	            					{
17212
            	            						alt76=1;
17213
            	            					}
17214
            	            				    break;
17215
            	            				case BVNAND_TOK:
17216
            	            					{
17217
            	            						alt76=1;
17218
            	            					}
17219
            	            				    break;
17220
            	            				case BVNOR_TOK:
17221
            	            					{
17222
            	            						alt76=1;
17223
            	            					}
17224
            	            				    break;
17225
            	            				case BVCOMP_TOK:
17226
            	            					{
17227
            	            						alt76=1;
17228
            	            					}
17229
            	            				    break;
17230
            	            				case BVXNOR_TOK:
17231
            	            					{
17232
            	            						alt76=1;
17233
            	            					}
17234
            	            				    break;
17235
            	            				case BVUMINUS_TOK:
17236
            	            					{
17237
            	            						alt76=1;
17238
            	            					}
17239
            	            				    break;
17240
            	            				case BVPLUS_TOK:
17241
            	            					{
17242
            	            						alt76=1;
17243
            	            					}
17244
            	            				    break;
17245
            	            				case BVSUB_TOK:
17246
            	            					{
17247
            	            						alt76=1;
17248
            	            					}
17249
            	            				    break;
17250
            	            				case BVMULT_TOK:
17251
            	            					{
17252
            	            						alt76=1;
17253
            	            					}
17254
            	            				    break;
17255
            	            				case BVUDIV_TOK:
17256
            	            					{
17257
            	            						alt76=1;
17258
            	            					}
17259
            	            				    break;
17260
            	            				case BVSDIV_TOK:
17261
            	            					{
17262
            	            						alt76=1;
17263
            	            					}
17264
            	            				    break;
17265
            	            				case BVUREM_TOK:
17266
            	            					{
17267
            	            						alt76=1;
17268
            	            					}
17269
            	            				    break;
17270
            	            				case BVSREM_TOK:
17271
            	            					{
17272
            	            						alt76=1;
17273
            	            					}
17274
            	            				    break;
17275
            	            				case BVSMOD_TOK:
17276
            	            					{
17277
            	            						alt76=1;
17278
            	            					}
17279
            	            				    break;
17280
            	            				case BVSHL_TOK:
17281
            	            					{
17282
            	            						alt76=1;
17283
            	            					}
17284
            	            				    break;
17285
            	            				case BVASHR_TOK:
17286
            	            					{
17287
            	            						alt76=1;
17288
            	            					}
17289
            	            				    break;
17290
            	            				case BVLSHR_TOK:
17291
            	            					{
17292
            	            						alt76=1;
17293
            	            					}
17294
            	            				    break;
17295
            	            				case SX_TOK:
17296
            	            					{
17297
            	            						alt76=1;
17298
            	            					}
17299
            	            				    break;
17300
            	            				case BVZEROEXTEND_TOK:
17301
            	            					{
17302
            	            						alt76=1;
17303
            	            					}
17304
            	            				    break;
17305
            	            				case BVREPEAT_TOK:
17306
            	            					{
17307
            	            						alt76=1;
17308
            	            					}
17309
            	            				    break;
17310
            	            				case BVROTR_TOK:
17311
            	            					{
17312
            	            						alt76=1;
17313
            	            					}
17314
            	            				    break;
17315
            	            				case BVROTL_TOK:
17316
            	            					{
17317
            	            						alt76=1;
17318
            	            					}
17319
            	            				    break;
17320
            	            				case BVLT_TOK:
17321
            	            					{
17322
            	            						alt76=1;
17323
            	            					}
17324
            	            				    break;
17325
            	            				case BVLE_TOK:
17326
            	            					{
17327
            	            						alt76=1;
17328
            	            					}
17329
            	            				    break;
17330
            	            				case BVGT_TOK:
17331
            	            					{
17332
            	            						alt76=1;
17333
            	            					}
17334
            	            				    break;
17335
            	            				case BVGE_TOK:
17336
            	            					{
17337
            	            						alt76=1;
17338
            	            					}
17339
            	            				    break;
17340
            	            				case BVSLT_TOK:
17341
            	            					{
17342
            	            						alt76=1;
17343
            	            					}
17344
            	            				    break;
17345
            	            				case BVSLE_TOK:
17346
            	            					{
17347
            	            						alt76=1;
17348
            	            					}
17349
            	            				    break;
17350
            	            				case BVSGT_TOK:
17351
            	            					{
17352
            	            						alt76=1;
17353
            	            					}
17354
            	            				    break;
17355
            	            				case BVSGE_TOK:
17356
            	            					{
17357
            	            						alt76=1;
17358
            	            					}
17359
            	            				    break;
17360
            	            				case STRING_CONCAT_TOK:
17361
            	            					{
17362
            	            						alt76=1;
17363
            	            					}
17364
            	            				    break;
17365
            	            				case STRING_LENGTH_TOK:
17366
            	            					{
17367
            	            						alt76=1;
17368
            	            					}
17369
            	            				    break;
17370
            	            				case STRING_CONTAINS_TOK:
17371
            	            					{
17372
            	            						alt76=1;
17373
            	            					}
17374
            	            				    break;
17375
            	            				case STRING_SUBSTR_TOK:
17376
            	            					{
17377
            	            						alt76=1;
17378
            	            					}
17379
            	            				    break;
17380
            	            				case STRING_CHARAT_TOK:
17381
            	            					{
17382
            	            						alt76=1;
17383
            	            					}
17384
            	            				    break;
17385
            	            				case STRING_INDEXOF_TOK:
17386
            	            					{
17387
            	            						alt76=1;
17388
            	            					}
17389
            	            				    break;
17390
            	            				case STRING_REPLACE_TOK:
17391
            	            					{
17392
            	            						alt76=1;
17393
            	            					}
17394
            	            				    break;
17395
            	            				case STRING_REPLACE_ALL_TOK:
17396
            	            					{
17397
            	            						alt76=1;
17398
            	            					}
17399
            	            				    break;
17400
            	            				case STRING_PREFIXOF_TOK:
17401
            	            					{
17402
            	            						alt76=1;
17403
            	            					}
17404
            	            				    break;
17405
            	            				case STRING_SUFFIXOF_TOK:
17406
            	            					{
17407
            	            						alt76=1;
17408
            	            					}
17409
            	            				    break;
17410
            	            				case STRING_STOI_TOK:
17411
            	            					{
17412
            	            						alt76=1;
17413
            	            					}
17414
            	            				    break;
17415
            	            				case STRING_ITOS_TOK:
17416
            	            					{
17417
            	            						alt76=1;
17418
            	            					}
17419
            	            				    break;
17420
            	            				case STRING_TO_REGEXP_TOK:
17421
            	            					{
17422
            	            						alt76=1;
17423
            	            					}
17424
            	            				    break;
17425
            	            				case STRING_TOLOWER_TOK:
17426
            	            					{
17427
            	            						alt76=1;
17428
            	            					}
17429
            	            				    break;
17430
            	            				case STRING_TOUPPER_TOK:
17431
            	            					{
17432
            	            						alt76=1;
17433
            	            					}
17434
            	            				    break;
17435
            	            				case STRING_REV_TOK:
17436
            	            					{
17437
            	            						alt76=1;
17438
            	            					}
17439
            	            				    break;
17440
            	            				case REGEXP_CONCAT_TOK:
17441
            	            					{
17442
            	            						alt76=1;
17443
            	            					}
17444
            	            				    break;
17445
            	            				case REGEXP_UNION_TOK:
17446
            	            					{
17447
            	            						alt76=1;
17448
            	            					}
17449
            	            				    break;
17450
            	            				case REGEXP_INTER_TOK:
17451
            	            					{
17452
            	            						alt76=1;
17453
            	            					}
17454
            	            				    break;
17455
            	            				case REGEXP_STAR_TOK:
17456
            	            					{
17457
            	            						alt76=1;
17458
            	            					}
17459
            	            				    break;
17460
            	            				case REGEXP_PLUS_TOK:
17461
            	            					{
17462
            	            						alt76=1;
17463
            	            					}
17464
            	            				    break;
17465
            	            				case REGEXP_OPT_TOK:
17466
            	            					{
17467
            	            						alt76=1;
17468
            	            					}
17469
            	            				    break;
17470
            	            				case REGEXP_RANGE_TOK:
17471
            	            					{
17472
            	            						alt76=1;
17473
            	            					}
17474
            	            				    break;
17475
            	            				case REGEXP_LOOP_TOK:
17476
            	            					{
17477
            	            						alt76=1;
17478
            	            					}
17479
            	            				    break;
17480
            	            				case REGEXP_COMPLEMENT_TOK:
17481
            	            					{
17482
            	            						alt76=1;
17483
            	            					}
17484
            	            				    break;
17485
            	            				case SEQ_UNIT_TOK:
17486
            	            					{
17487
            	            						alt76=1;
17488
            	            					}
17489
            	            				    break;
17490
            	            				case REGEXP_EMPTY_TOK:
17491
            	            					{
17492
            	            						alt76=1;
17493
            	            					}
17494
            	            				    break;
17495
            	            				case REGEXP_SIGMA_TOK:
17496
            	            					{
17497
            	            						alt76=1;
17498
            	            					}
17499
            	            				    break;
17500
            	            				case STRING_LITERAL:
17501
            	            					{
17502
            	            						alt76=1;
17503
            	            					}
17504
            	            				    break;
17505
            	            				case SETS_CARD_TOK:
17506
            	            					{
17507
            	            						alt76=1;
17508
            	            					}
17509
            	            				    break;
17510
            	            				case SETS_CHOOSE_TOK:
17511
            	            					{
17512
            	            						alt76=1;
17513
            	            					}
17514
            	            				    break;
17515
            	            				case IF_TOK:
17516
            	            					{
17517
            	            						alt76=1;
17518
            	            					}
17519
            	            				    break;
17520
            	            				case LPAREN:
17521
            	            					{
17522
            	            						alt76=1;
17523
            	            					}
17524
            	            				    break;
17525
            	            				case PARENHASH:
17526
            	            					{
17527
            	            						alt76=1;
17528
            	            					}
17529
            	            				    break;
17530
            	            				case LBRACE:
17531
            	            					{
17532
            	            						alt76=1;
17533
            	            					}
17534
            	            				    break;
17535
            	            				case UNIVSET_TOK:
17536
            	            					{
17537
            	            						alt76=1;
17538
            	            					}
17539
            	            				    break;
17540
            	            				case BAR:
17541
            	            					{
17542
            	            						alt76=1;
17543
            	            					}
17544
            	            				    break;
17545
            	            				case ARRAY_TOK:
17546
            	            					{
17547
            	            						alt76=1;
17548
            	            					}
17549
            	            				    break;
17550
            	            				case TRUE_TOK:
17551
            	            					{
17552
            	            						alt76=1;
17553
            	            					}
17554
            	            				    break;
17555
            	            				case FALSE_TOK:
17556
            	            					{
17557
            	            						alt76=1;
17558
            	            					}
17559
            	            				    break;
17560
            	            				case DECIMAL_LITERAL:
17561
            	            					{
17562
            	            						alt76=1;
17563
            	            					}
17564
            	            				    break;
17565
            	            				case INTEGER_LITERAL:
17566
            	            					{
17567
            	            						alt76=1;
17568
            	            					}
17569
            	            				    break;
17570
            	            				case HEX_LITERAL:
17571
            	            					{
17572
            	            						alt76=1;
17573
            	            					}
17574
            	            				    break;
17575
            	            				case BINARY_LITERAL:
17576
            	            					{
17577
            	            						alt76=1;
17578
            	            					}
17579
            	            				    break;
17580
            	            				case IDENTIFIER:
17581
            	            					{
17582
            	            						alt76=1;
17583
            	            					}
17584
            	            				    break;
17585
            	            				case FLOOR_TOK:
17586
            	            					{
17587
            	            						alt76=1;
17588
            	            					}
17589
            	            				    break;
17590
            	            				case IS_INTEGER_TOK:
17591
            	            					{
17592
            	            						alt76=1;
17593
            	            					}
17594
            	            				    break;
17595
            	            				case ABS_TOK:
17596
            	            					{
17597
            	            						alt76=1;
17598
            	            					}
17599
            	            				    break;
17600
            	            				case DIVISIBLE_TOK:
17601
            	            					{
17602
            	            						alt76=1;
17603
            	            					}
17604
            	            				    break;
17605
            	            				case DISTINCT_TOK:
17606
            	            					{
17607
            	            						alt76=1;
17608
            	            					}
17609
            	            				    break;
17610
            	            				case MINUS_TOK:
17611
            	            					{
17612
            	            						alt76=1;
17613
            	            					}
17614
            	            				    break;
17615
17616
            	            				}
17617
17618
            	            			}
17619
            	            		    break;
17620
17621
            	            		}
17622
17623
            	            	}
17624
65
            	                break;
17625
1220
            	            case DIV_TOK:
17626
            	            case EXP_TOK:
17627
            	            case INTDIV_TOK:
17628
            	            case MOD_TOK:
17629
            	            case PLUS_TOK:
17630
            	            case STAR_TOK:
17631
            	            	{
17632
1220
            	            		alt76=1;
17633
            	            	}
17634
1220
            	                break;
17635
17636
            	            }
17637
17638
80239
            	            switch (alt76)
17639
            	            {
17640
1285
            	        	case 1:
17641
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1590:9: arithmeticBinop[op] uminusTerm[f]
17642
            	        	    {
17643
1285
            	        	        FOLLOWPUSH(FOLLOW_arithmeticBinop_in_term5185);
17644
1285
            	        	        arithmeticBinop(ctx, op);
17645
17646
1285
            	        	        FOLLOWPOP();
17647
1285
            	        	        if  (HASEXCEPTION())
17648
            	        	        {
17649
            	        	            goto ruletermEx;
17650
            	        	        }
17651
1285
            	        	        if (HASFAILED())
17652
            	        	        {
17653
            	        	            return ;
17654
            	        	        }
17655
17656
17657
1285
            	        	        FOLLOWPUSH(FOLLOW_uminusTerm_in_term5188);
17658
1285
            	        	        uminusTerm(ctx, f);
17659
17660
1285
            	        	        FOLLOWPOP();
17661
1285
            	        	        if  (HASEXCEPTION())
17662
            	        	        {
17663
            	        	            goto ruletermEx;
17664
            	        	        }
17665
1285
            	        	        if (HASFAILED())
17666
            	        	        {
17667
            	        	            return ;
17668
            	        	        }
17669
17670
17671
1285
            	        	        if ( BACKTRACKING==0 )
17672
            	        	        {
17673
1285
            	        	             operators.push_back(op); expressions.push_back(f);
17674
            	        	        }
17675
17676
17677
            	        	    }
17678
1285
            	        	    break;
17679
17680
78954
            	        	default:
17681
78954
            	        	    goto loop76;	/* break out of the loop */
17682
            	        	    break;
17683
            	            }
17684
1285
            	        }
17685
78954
            	        loop76: ; /* Jump out to here if this rule does not match */
17686
17687
17688
78954
            	        if ( BACKTRACKING==0 )
17689
            	        {
17690
78954
            	             f = createPrecedenceTree(PARSER_STATE, SOLVER, expressions, operators);
17691
            	        }
17692
17693
17694
            	    }
17695
78954
            	    break;
17696
17697
                }
17698
            }
17699
17700
        }
17701
17702
    }
17703
17704
    // This is where rules clean up and exit
17705
    //
17706
78991
    goto ruletermEx; /* Prevent compiler warnings */
17707
78991
    ruletermEx: ;
17708
17709
78991
            if (HASEXCEPTION())
17710
            {
17711
                PREPORTERROR();
17712
                PRECOVER();
17713
            }
17714
78991
    return ;
17715
}
17716
/* $ANTLR end term */
17717
17718
/**
17719
 * $ANTLR start arrayStore
17720
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1599:1: arrayStore[cvc5::api::Term& f] : LBRACKET formula[k] RBRACKET ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) ;
17721
 */
17722
static void
17723
42
arrayStore(pCvcParser ctx, cvc5::api::Term& f)
17724
{
17725
    /* Initialize rule variables
17726
     */
17727
17728
17729
84
      api::Term f2, k;
17730
17731
    {
17732
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1603:3: ( LBRACKET formula[k] RBRACKET ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) )
17733
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1603:5: LBRACKET formula[k] RBRACKET ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
17734
        {
17735
42
             MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_arrayStore5229);
17736
42
            if  (HASEXCEPTION())
17737
            {
17738
                goto rulearrayStoreEx;
17739
            }
17740
42
            if (HASFAILED())
17741
            {
17742
                return ;
17743
            }
17744
17745
17746
42
            FOLLOWPUSH(FOLLOW_formula_in_arrayStore5231);
17747
42
            formula(ctx, k);
17748
17749
42
            FOLLOWPOP();
17750
42
            if  (HASEXCEPTION())
17751
            {
17752
                goto rulearrayStoreEx;
17753
            }
17754
42
            if (HASFAILED())
17755
            {
17756
                return ;
17757
            }
17758
17759
17760
42
             MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_arrayStore5234);
17761
42
            if  (HASEXCEPTION())
17762
            {
17763
                goto rulearrayStoreEx;
17764
            }
17765
42
            if (HASFAILED())
17766
            {
17767
                return ;
17768
            }
17769
17770
17771
42
            if ( BACKTRACKING==0 )
17772
            {
17773
42
                 f2 = MK_TERM(cvc5::api::SELECT, f, k);
17774
            }
17775
17776
17777
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1605:5: ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
17778
            {
17779
42
                int alt80=2;
17780
42
                switch ( LA(1) )
17781
                {
17782
10
                case DOT:
17783
                case LBRACKET:
17784
                	{
17785
10
                		alt80=1;
17786
                	}
17787
10
                    break;
17788
32
                case ASSIGN_TOK:
17789
                	{
17790
32
                		alt80=2;
17791
                	}
17792
32
                    break;
17793
17794
                default:
17795
                    if (BACKTRACKING>0)
17796
                    {
17797
                        FAILEDFLAG = ANTLR3_TRUE;
17798
                        return ;
17799
                    }
17800
17801
                    CONSTRUCTEX();
17802
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
17803
                    EXCEPTION->message      = (void *)"";
17804
                    EXCEPTION->decisionNum  = 80;
17805
                    EXCEPTION->state        = 0;
17806
17807
17808
                    goto rulearrayStoreEx;
17809
17810
                }
17811
17812
42
                switch (alt80)
17813
                {
17814
10
            	case 1:
17815
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1605:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
17816
            	    {
17817
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1605:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
17818
            	        {
17819
10
            	            int alt79=2;
17820
10
            	            switch ( LA(1) )
17821
            	            {
17822
8
            	            case LBRACKET:
17823
            	            	{
17824
8
            	            		alt79=1;
17825
            	            	}
17826
8
            	                break;
17827
2
            	            case DOT:
17828
            	            	{
17829
2
            	            		alt79=2;
17830
            	            	}
17831
2
            	                break;
17832
17833
            	            default:
17834
            	                if (BACKTRACKING>0)
17835
            	                {
17836
            	                    FAILEDFLAG = ANTLR3_TRUE;
17837
            	                    return ;
17838
            	                }
17839
17840
            	                CONSTRUCTEX();
17841
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
17842
            	                EXCEPTION->message      = (void *)"";
17843
            	                EXCEPTION->decisionNum  = 79;
17844
            	                EXCEPTION->state        = 0;
17845
17846
17847
            	                goto rulearrayStoreEx;
17848
17849
            	            }
17850
17851
10
            	            switch (alt79)
17852
            	            {
17853
8
            	        	case 1:
17854
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1605:9: arrayStore[f2]
17855
            	        	    {
17856
8
            	        	        FOLLOWPUSH(FOLLOW_arrayStore_in_arrayStore5250);
17857
8
            	        	        arrayStore(ctx, f2);
17858
17859
8
            	        	        FOLLOWPOP();
17860
8
            	        	        if  (HASEXCEPTION())
17861
            	        	        {
17862
            	        	            goto rulearrayStoreEx;
17863
            	        	        }
17864
8
            	        	        if (HASFAILED())
17865
            	        	        {
17866
            	        	            return ;
17867
            	        	        }
17868
17869
17870
            	        	    }
17871
8
            	        	    break;
17872
2
            	        	case 2:
17873
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1606:9: DOT ( tupleStore[f2] | recordStore[f2] )
17874
            	        	    {
17875
2
            	        	         MATCHT(DOT, &FOLLOW_DOT_in_arrayStore5261);
17876
2
            	        	        if  (HASEXCEPTION())
17877
            	        	        {
17878
            	        	            goto rulearrayStoreEx;
17879
            	        	        }
17880
2
            	        	        if (HASFAILED())
17881
            	        	        {
17882
            	        	            return ;
17883
            	        	        }
17884
17885
17886
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1606:13: ( tupleStore[f2] | recordStore[f2] )
17887
            	        	        {
17888
2
            	        	            int alt78=2;
17889
2
            	        	            switch ( LA(1) )
17890
            	        	            {
17891
            	        	            case INTEGER_LITERAL:
17892
            	        	            	{
17893
            	        	            		alt78=1;
17894
            	        	            	}
17895
            	        	                break;
17896
2
            	        	            case IDENTIFIER:
17897
            	        	            	{
17898
2
            	        	            		alt78=2;
17899
            	        	            	}
17900
2
            	        	                break;
17901
17902
            	        	            default:
17903
            	        	                if (BACKTRACKING>0)
17904
            	        	                {
17905
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
17906
            	        	                    return ;
17907
            	        	                }
17908
17909
            	        	                CONSTRUCTEX();
17910
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
17911
            	        	                EXCEPTION->message      = (void *)"";
17912
            	        	                EXCEPTION->decisionNum  = 78;
17913
            	        	                EXCEPTION->state        = 0;
17914
17915
17916
            	        	                goto rulearrayStoreEx;
17917
17918
            	        	            }
17919
17920
2
            	        	            switch (alt78)
17921
            	        	            {
17922
            	        	        	case 1:
17923
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1606:15: tupleStore[f2]
17924
            	        	        	    {
17925
            	        	        	        FOLLOWPUSH(FOLLOW_tupleStore_in_arrayStore5265);
17926
            	        	        	        tupleStore(ctx, f2);
17927
17928
            	        	        	        FOLLOWPOP();
17929
            	        	        	        if  (HASEXCEPTION())
17930
            	        	        	        {
17931
            	        	        	            goto rulearrayStoreEx;
17932
            	        	        	        }
17933
            	        	        	        if (HASFAILED())
17934
            	        	        	        {
17935
            	        	        	            return ;
17936
            	        	        	        }
17937
17938
17939
            	        	        	    }
17940
            	        	        	    break;
17941
2
            	        	        	case 2:
17942
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1607:15: recordStore[f2]
17943
            	        	        	    {
17944
2
            	        	        	        FOLLOWPUSH(FOLLOW_recordStore_in_arrayStore5282);
17945
2
            	        	        	        recordStore(ctx, f2);
17946
17947
2
            	        	        	        FOLLOWPOP();
17948
2
            	        	        	        if  (HASEXCEPTION())
17949
            	        	        	        {
17950
            	        	        	            goto rulearrayStoreEx;
17951
            	        	        	        }
17952
2
            	        	        	        if (HASFAILED())
17953
            	        	        	        {
17954
            	        	        	            return ;
17955
            	        	        	        }
17956
17957
17958
            	        	        	    }
17959
2
            	        	        	    break;
17960
17961
            	        	            }
17962
            	        	        }
17963
17964
            	        	    }
17965
2
            	        	    break;
17966
17967
            	            }
17968
            	        }
17969
17970
            	    }
17971
10
            	    break;
17972
32
            	case 2:
17973
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1608:7: ASSIGN_TOK term[f2]
17974
            	    {
17975
32
            	         MATCHT(ASSIGN_TOK, &FOLLOW_ASSIGN_TOK_in_arrayStore5295);
17976
32
            	        if  (HASEXCEPTION())
17977
            	        {
17978
            	            goto rulearrayStoreEx;
17979
            	        }
17980
32
            	        if (HASFAILED())
17981
            	        {
17982
            	            return ;
17983
            	        }
17984
17985
17986
32
            	        FOLLOWPUSH(FOLLOW_term_in_arrayStore5297);
17987
32
            	        term(ctx, f2);
17988
17989
32
            	        FOLLOWPOP();
17990
32
            	        if  (HASEXCEPTION())
17991
            	        {
17992
            	            goto rulearrayStoreEx;
17993
            	        }
17994
32
            	        if (HASFAILED())
17995
            	        {
17996
            	            return ;
17997
            	        }
17998
17999
18000
            	    }
18001
32
            	    break;
18002
18003
                }
18004
            }
18005
18006
42
            if ( BACKTRACKING==0 )
18007
            {
18008
42
                 f = MK_TERM(cvc5::api::STORE, f, k, f2);
18009
            }
18010
18011
18012
        }
18013
18014
    }
18015
18016
    // This is where rules clean up and exit
18017
    //
18018
42
    goto rulearrayStoreEx; /* Prevent compiler warnings */
18019
42
    rulearrayStoreEx: ;
18020
18021
42
            if (HASEXCEPTION())
18022
            {
18023
                PREPORTERROR();
18024
                PRECOVER();
18025
            }
18026
42
    return ;
18027
}
18028
/* $ANTLR end arrayStore */
18029
18030
/**
18031
 * $ANTLR start tupleStore
18032
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1616:1: tupleStore[cvc5::api::Term& f] : k= numeral ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) ;
18033
 */
18034
static void
18035
3
tupleStore(pCvcParser ctx, cvc5::api::Term& f)
18036
{
18037
    unsigned k;
18038
    #undef	RETURN_TYPE_k
18039
    #define	RETURN_TYPE_k unsigned
18040
18041
    /* Initialize rule variables
18042
     */
18043
18044
18045
6
      api::Term f2;
18046
18047
    {
18048
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1620:3: (k= numeral ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) )
18049
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1620:5: k= numeral ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
18050
        {
18051
3
            FOLLOWPUSH(FOLLOW_numeral_in_tupleStore5329);
18052
3
            k=numeral(ctx);
18053
18054
3
            FOLLOWPOP();
18055
3
            if  (HASEXCEPTION())
18056
            {
18057
                goto ruletupleStoreEx;
18058
            }
18059
3
            if (HASFAILED())
18060
            {
18061
                return ;
18062
            }
18063
18064
18065
3
            if ( BACKTRACKING==0 )
18066
            {
18067
6
                 api::Sort t = f.getSort();
18068
3
                      if(! t.isTuple()) {
18069
                        PARSER_STATE->parseError("tuple-update applied to non-tuple");
18070
                      }
18071
3
                      size_t length = t.getTupleLength();
18072
3
                      if(k >= length) {
18073
                        std::stringstream ss;
18074
                        ss << "tuple is of length " << length << "; cannot update index " << k;
18075
                        PARSER_STATE->parseError(ss.str());
18076
                      }
18077
6
                      const api::Datatype& dt = t.getDatatype();
18078
6
                      f2 = SOLVER->mkTerm(
18079
6
                          api::APPLY_SELECTOR, dt[0][k].getSelectorTerm(), f);
18080
18081
            }
18082
18083
18084
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1635:5: ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
18085
            {
18086
3
                int alt83=2;
18087
3
                switch ( LA(1) )
18088
                {
18089
                case DOT:
18090
                case LBRACKET:
18091
                	{
18092
                		alt83=1;
18093
                	}
18094
                    break;
18095
3
                case ASSIGN_TOK:
18096
                	{
18097
3
                		alt83=2;
18098
                	}
18099
3
                    break;
18100
18101
                default:
18102
                    if (BACKTRACKING>0)
18103
                    {
18104
                        FAILEDFLAG = ANTLR3_TRUE;
18105
                        return ;
18106
                    }
18107
18108
                    CONSTRUCTEX();
18109
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18110
                    EXCEPTION->message      = (void *)"";
18111
                    EXCEPTION->decisionNum  = 83;
18112
                    EXCEPTION->state        = 0;
18113
18114
18115
                    goto ruletupleStoreEx;
18116
18117
                }
18118
18119
3
                switch (alt83)
18120
                {
18121
            	case 1:
18122
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1635:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
18123
            	    {
18124
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1635:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
18125
            	        {
18126
            	            int alt82=2;
18127
            	            switch ( LA(1) )
18128
            	            {
18129
            	            case LBRACKET:
18130
            	            	{
18131
            	            		alt82=1;
18132
            	            	}
18133
            	                break;
18134
            	            case DOT:
18135
            	            	{
18136
            	            		alt82=2;
18137
            	            	}
18138
            	                break;
18139
18140
            	            default:
18141
            	                if (BACKTRACKING>0)
18142
            	                {
18143
            	                    FAILEDFLAG = ANTLR3_TRUE;
18144
            	                    return ;
18145
            	                }
18146
18147
            	                CONSTRUCTEX();
18148
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18149
            	                EXCEPTION->message      = (void *)"";
18150
            	                EXCEPTION->decisionNum  = 82;
18151
            	                EXCEPTION->state        = 0;
18152
18153
18154
            	                goto ruletupleStoreEx;
18155
18156
            	            }
18157
18158
            	            switch (alt82)
18159
            	            {
18160
            	        	case 1:
18161
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1635:9: arrayStore[f2]
18162
            	        	    {
18163
            	        	        FOLLOWPUSH(FOLLOW_arrayStore_in_tupleStore5345);
18164
            	        	        arrayStore(ctx, f2);
18165
18166
            	        	        FOLLOWPOP();
18167
            	        	        if  (HASEXCEPTION())
18168
            	        	        {
18169
            	        	            goto ruletupleStoreEx;
18170
            	        	        }
18171
            	        	        if (HASFAILED())
18172
            	        	        {
18173
            	        	            return ;
18174
            	        	        }
18175
18176
18177
            	        	    }
18178
            	        	    break;
18179
            	        	case 2:
18180
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1636:9: DOT ( tupleStore[f2] | recordStore[f2] )
18181
            	        	    {
18182
            	        	         MATCHT(DOT, &FOLLOW_DOT_in_tupleStore5356);
18183
            	        	        if  (HASEXCEPTION())
18184
            	        	        {
18185
            	        	            goto ruletupleStoreEx;
18186
            	        	        }
18187
            	        	        if (HASFAILED())
18188
            	        	        {
18189
            	        	            return ;
18190
            	        	        }
18191
18192
18193
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1636:13: ( tupleStore[f2] | recordStore[f2] )
18194
            	        	        {
18195
            	        	            int alt81=2;
18196
            	        	            switch ( LA(1) )
18197
            	        	            {
18198
            	        	            case INTEGER_LITERAL:
18199
            	        	            	{
18200
            	        	            		alt81=1;
18201
            	        	            	}
18202
            	        	                break;
18203
            	        	            case IDENTIFIER:
18204
            	        	            	{
18205
            	        	            		alt81=2;
18206
            	        	            	}
18207
            	        	                break;
18208
18209
            	        	            default:
18210
            	        	                if (BACKTRACKING>0)
18211
            	        	                {
18212
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
18213
            	        	                    return ;
18214
            	        	                }
18215
18216
            	        	                CONSTRUCTEX();
18217
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18218
            	        	                EXCEPTION->message      = (void *)"";
18219
            	        	                EXCEPTION->decisionNum  = 81;
18220
            	        	                EXCEPTION->state        = 0;
18221
18222
18223
            	        	                goto ruletupleStoreEx;
18224
18225
            	        	            }
18226
18227
            	        	            switch (alt81)
18228
            	        	            {
18229
            	        	        	case 1:
18230
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1636:15: tupleStore[f2]
18231
            	        	        	    {
18232
            	        	        	        FOLLOWPUSH(FOLLOW_tupleStore_in_tupleStore5360);
18233
            	        	        	        tupleStore(ctx, f2);
18234
18235
            	        	        	        FOLLOWPOP();
18236
            	        	        	        if  (HASEXCEPTION())
18237
            	        	        	        {
18238
            	        	        	            goto ruletupleStoreEx;
18239
            	        	        	        }
18240
            	        	        	        if (HASFAILED())
18241
            	        	        	        {
18242
            	        	        	            return ;
18243
            	        	        	        }
18244
18245
18246
            	        	        	    }
18247
            	        	        	    break;
18248
            	        	        	case 2:
18249
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1637:15: recordStore[f2]
18250
            	        	        	    {
18251
            	        	        	        FOLLOWPUSH(FOLLOW_recordStore_in_tupleStore5377);
18252
            	        	        	        recordStore(ctx, f2);
18253
18254
            	        	        	        FOLLOWPOP();
18255
            	        	        	        if  (HASEXCEPTION())
18256
            	        	        	        {
18257
            	        	        	            goto ruletupleStoreEx;
18258
            	        	        	        }
18259
            	        	        	        if (HASFAILED())
18260
            	        	        	        {
18261
            	        	        	            return ;
18262
            	        	        	        }
18263
18264
18265
            	        	        	    }
18266
            	        	        	    break;
18267
18268
            	        	            }
18269
            	        	        }
18270
18271
            	        	    }
18272
            	        	    break;
18273
18274
            	            }
18275
            	        }
18276
18277
            	    }
18278
            	    break;
18279
3
            	case 2:
18280
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1638:7: ASSIGN_TOK term[f2]
18281
            	    {
18282
3
            	         MATCHT(ASSIGN_TOK, &FOLLOW_ASSIGN_TOK_in_tupleStore5390);
18283
3
            	        if  (HASEXCEPTION())
18284
            	        {
18285
            	            goto ruletupleStoreEx;
18286
            	        }
18287
3
            	        if (HASFAILED())
18288
            	        {
18289
            	            return ;
18290
            	        }
18291
18292
18293
3
            	        FOLLOWPUSH(FOLLOW_term_in_tupleStore5392);
18294
3
            	        term(ctx, f2);
18295
18296
3
            	        FOLLOWPOP();
18297
3
            	        if  (HASEXCEPTION())
18298
            	        {
18299
            	            goto ruletupleStoreEx;
18300
            	        }
18301
3
            	        if (HASFAILED())
18302
            	        {
18303
            	            return ;
18304
            	        }
18305
18306
18307
            	    }
18308
3
            	    break;
18309
18310
                }
18311
            }
18312
18313
3
            if ( BACKTRACKING==0 )
18314
            {
18315
18316
6
                      const api::Datatype& dt = f.getSort().getDatatype();
18317
6
                      f = SOLVER->mkTerm(
18318
6
                         api::APPLY_UPDATER, dt[0][k].getUpdaterTerm(), f, f2);
18319
18320
            }
18321
18322
18323
        }
18324
18325
    }
18326
18327
    // This is where rules clean up and exit
18328
    //
18329
3
    goto ruletupleStoreEx; /* Prevent compiler warnings */
18330
3
    ruletupleStoreEx: ;
18331
18332
3
            if (HASEXCEPTION())
18333
            {
18334
                PREPORTERROR();
18335
                PRECOVER();
18336
            }
18337
3
    return ;
18338
}
18339
/* $ANTLR end tupleStore */
18340
18341
/**
18342
 * $ANTLR start recordStore
18343
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1650:1: recordStore[cvc5::api::Term& f] : identifier[id,CHECK_NONE,SYM_VARIABLE] ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) ;
18344
 */
18345
static void
18346
10
recordStore(pCvcParser ctx, cvc5::api::Term& f)
18347
{
18348
    /* Initialize rule variables
18349
     */
18350
18351
18352
20
      std::string id;
18353
20
      api::Term f2;
18354
18355
    {
18356
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1655:3: ( identifier[id,CHECK_NONE,SYM_VARIABLE] ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] ) )
18357
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1655:5: identifier[id,CHECK_NONE,SYM_VARIABLE] ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
18358
        {
18359
10
            FOLLOWPUSH(FOLLOW_identifier_in_recordStore5422);
18360
10
            identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
18361
18362
10
            FOLLOWPOP();
18363
10
            if  (HASEXCEPTION())
18364
            {
18365
                goto rulerecordStoreEx;
18366
            }
18367
10
            if (HASFAILED())
18368
            {
18369
                return ;
18370
            }
18371
18372
18373
10
            if ( BACKTRACKING==0 )
18374
            {
18375
20
                 api::Sort t = f.getSort();
18376
10
                      if(! t.isRecord()) {
18377
                        std::stringstream ss;
18378
                        ss << "record-update applied to non-record term" << std::endl
18379
                           << "the term: " << f << std::endl
18380
                           << "its type: " << t;
18381
                        PARSER_STATE->parseError(ss.str());
18382
                      }
18383
20
                      const api::Datatype& dt = t.getDatatype();
18384
20
                      f2 = SOLVER->mkTerm(
18385
20
                          api::APPLY_SELECTOR, dt[0][id].getSelectorTerm(), f);
18386
18387
            }
18388
18389
18390
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1668:5: ( ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) ) | ASSIGN_TOK term[f2] )
18391
            {
18392
10
                int alt86=2;
18393
10
                switch ( LA(1) )
18394
                {
18395
                case DOT:
18396
                case LBRACKET:
18397
                	{
18398
                		alt86=1;
18399
                	}
18400
                    break;
18401
10
                case ASSIGN_TOK:
18402
                	{
18403
10
                		alt86=2;
18404
                	}
18405
10
                    break;
18406
18407
                default:
18408
                    if (BACKTRACKING>0)
18409
                    {
18410
                        FAILEDFLAG = ANTLR3_TRUE;
18411
                        return ;
18412
                    }
18413
18414
                    CONSTRUCTEX();
18415
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18416
                    EXCEPTION->message      = (void *)"";
18417
                    EXCEPTION->decisionNum  = 86;
18418
                    EXCEPTION->state        = 0;
18419
18420
18421
                    goto rulerecordStoreEx;
18422
18423
                }
18424
18425
10
                switch (alt86)
18426
                {
18427
            	case 1:
18428
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1668:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
18429
            	    {
18430
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1668:7: ( arrayStore[f2] | DOT ( tupleStore[f2] | recordStore[f2] ) )
18431
            	        {
18432
            	            int alt85=2;
18433
            	            switch ( LA(1) )
18434
            	            {
18435
            	            case LBRACKET:
18436
            	            	{
18437
            	            		alt85=1;
18438
            	            	}
18439
            	                break;
18440
            	            case DOT:
18441
            	            	{
18442
            	            		alt85=2;
18443
            	            	}
18444
            	                break;
18445
18446
            	            default:
18447
            	                if (BACKTRACKING>0)
18448
            	                {
18449
            	                    FAILEDFLAG = ANTLR3_TRUE;
18450
            	                    return ;
18451
            	                }
18452
18453
            	                CONSTRUCTEX();
18454
            	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18455
            	                EXCEPTION->message      = (void *)"";
18456
            	                EXCEPTION->decisionNum  = 85;
18457
            	                EXCEPTION->state        = 0;
18458
18459
18460
            	                goto rulerecordStoreEx;
18461
18462
            	            }
18463
18464
            	            switch (alt85)
18465
            	            {
18466
            	        	case 1:
18467
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1668:9: arrayStore[f2]
18468
            	        	    {
18469
            	        	        FOLLOWPUSH(FOLLOW_arrayStore_in_recordStore5439);
18470
            	        	        arrayStore(ctx, f2);
18471
18472
            	        	        FOLLOWPOP();
18473
            	        	        if  (HASEXCEPTION())
18474
            	        	        {
18475
            	        	            goto rulerecordStoreEx;
18476
            	        	        }
18477
            	        	        if (HASFAILED())
18478
            	        	        {
18479
            	        	            return ;
18480
            	        	        }
18481
18482
18483
            	        	    }
18484
            	        	    break;
18485
            	        	case 2:
18486
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1669:9: DOT ( tupleStore[f2] | recordStore[f2] )
18487
            	        	    {
18488
            	        	         MATCHT(DOT, &FOLLOW_DOT_in_recordStore5450);
18489
            	        	        if  (HASEXCEPTION())
18490
            	        	        {
18491
            	        	            goto rulerecordStoreEx;
18492
            	        	        }
18493
            	        	        if (HASFAILED())
18494
            	        	        {
18495
            	        	            return ;
18496
            	        	        }
18497
18498
18499
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1669:13: ( tupleStore[f2] | recordStore[f2] )
18500
            	        	        {
18501
            	        	            int alt84=2;
18502
            	        	            switch ( LA(1) )
18503
            	        	            {
18504
            	        	            case INTEGER_LITERAL:
18505
            	        	            	{
18506
            	        	            		alt84=1;
18507
            	        	            	}
18508
            	        	                break;
18509
            	        	            case IDENTIFIER:
18510
            	        	            	{
18511
            	        	            		alt84=2;
18512
            	        	            	}
18513
            	        	                break;
18514
18515
            	        	            default:
18516
            	        	                if (BACKTRACKING>0)
18517
            	        	                {
18518
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
18519
            	        	                    return ;
18520
            	        	                }
18521
18522
            	        	                CONSTRUCTEX();
18523
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
18524
            	        	                EXCEPTION->message      = (void *)"";
18525
            	        	                EXCEPTION->decisionNum  = 84;
18526
            	        	                EXCEPTION->state        = 0;
18527
18528
18529
            	        	                goto rulerecordStoreEx;
18530
18531
            	        	            }
18532
18533
            	        	            switch (alt84)
18534
            	        	            {
18535
            	        	        	case 1:
18536
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1669:15: tupleStore[f2]
18537
            	        	        	    {
18538
            	        	        	        FOLLOWPUSH(FOLLOW_tupleStore_in_recordStore5454);
18539
            	        	        	        tupleStore(ctx, f2);
18540
18541
            	        	        	        FOLLOWPOP();
18542
            	        	        	        if  (HASEXCEPTION())
18543
            	        	        	        {
18544
            	        	        	            goto rulerecordStoreEx;
18545
            	        	        	        }
18546
            	        	        	        if (HASFAILED())
18547
            	        	        	        {
18548
            	        	        	            return ;
18549
            	        	        	        }
18550
18551
18552
            	        	        	    }
18553
            	        	        	    break;
18554
            	        	        	case 2:
18555
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1670:15: recordStore[f2]
18556
            	        	        	    {
18557
            	        	        	        FOLLOWPUSH(FOLLOW_recordStore_in_recordStore5471);
18558
            	        	        	        recordStore(ctx, f2);
18559
18560
            	        	        	        FOLLOWPOP();
18561
            	        	        	        if  (HASEXCEPTION())
18562
            	        	        	        {
18563
            	        	        	            goto rulerecordStoreEx;
18564
            	        	        	        }
18565
            	        	        	        if (HASFAILED())
18566
            	        	        	        {
18567
            	        	        	            return ;
18568
            	        	        	        }
18569
18570
18571
            	        	        	    }
18572
            	        	        	    break;
18573
18574
            	        	            }
18575
            	        	        }
18576
18577
            	        	    }
18578
            	        	    break;
18579
18580
            	            }
18581
            	        }
18582
18583
            	    }
18584
            	    break;
18585
10
            	case 2:
18586
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1671:7: ASSIGN_TOK term[f2]
18587
            	    {
18588
10
            	         MATCHT(ASSIGN_TOK, &FOLLOW_ASSIGN_TOK_in_recordStore5484);
18589
10
            	        if  (HASEXCEPTION())
18590
            	        {
18591
            	            goto rulerecordStoreEx;
18592
            	        }
18593
10
            	        if (HASFAILED())
18594
            	        {
18595
            	            return ;
18596
            	        }
18597
18598
18599
10
            	        FOLLOWPUSH(FOLLOW_term_in_recordStore5486);
18600
10
            	        term(ctx, f2);
18601
18602
10
            	        FOLLOWPOP();
18603
10
            	        if  (HASEXCEPTION())
18604
            	        {
18605
            	            goto rulerecordStoreEx;
18606
            	        }
18607
10
            	        if (HASFAILED())
18608
            	        {
18609
            	            return ;
18610
            	        }
18611
18612
18613
            	    }
18614
10
            	    break;
18615
18616
                }
18617
            }
18618
18619
10
            if ( BACKTRACKING==0 )
18620
            {
18621
18622
20
                      const api::Datatype& dt = f.getSort().getDatatype();
18623
20
                      f = SOLVER->mkTerm(
18624
20
                         api::APPLY_UPDATER, dt[0][id].getUpdaterTerm(), f, f2);
18625
18626
            }
18627
18628
18629
        }
18630
18631
    }
18632
18633
    // This is where rules clean up and exit
18634
    //
18635
10
    goto rulerecordStoreEx; /* Prevent compiler warnings */
18636
10
    rulerecordStoreEx: ;
18637
18638
10
            if (HASEXCEPTION())
18639
            {
18640
                PREPORTERROR();
18641
                PRECOVER();
18642
            }
18643
10
    return ;
18644
}
18645
/* $ANTLR end recordStore */
18646
18647
/**
18648
 * $ANTLR start uminusTerm
18649
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1680:1: uminusTerm[cvc5::api::Term& f] : ( MINUS_TOK )* bvBinaryOpTerm[f] ;
18650
 */
18651
static void
18652
80278
uminusTerm(pCvcParser ctx, cvc5::api::Term& f)
18653
{
18654
    /* Initialize rule variables
18655
     */
18656
18657
18658
80278
      unsigned minusCount = 0;
18659
18660
    {
18661
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1685:3: ( ( MINUS_TOK )* bvBinaryOpTerm[f] )
18662
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1685:5: ( MINUS_TOK )* bvBinaryOpTerm[f]
18663
        {
18664
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1685:5: ( MINUS_TOK )*
18665
18666
            for (;;)
18667
            {
18668
80661
                int alt87=2;
18669
80661
                switch ( LA(1) )
18670
                {
18671
383
                case MINUS_TOK:
18672
                	{
18673
383
                		alt87=1;
18674
                	}
18675
383
                    break;
18676
18677
                }
18678
18679
80661
                switch (alt87)
18680
                {
18681
383
            	case 1:
18682
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1685:6: MINUS_TOK
18683
            	    {
18684
383
            	         MATCHT(MINUS_TOK, &FOLLOW_MINUS_TOK_in_uminusTerm5523);
18685
383
            	        if  (HASEXCEPTION())
18686
            	        {
18687
            	            goto ruleuminusTermEx;
18688
            	        }
18689
383
            	        if (HASFAILED())
18690
            	        {
18691
            	            return ;
18692
            	        }
18693
18694
18695
383
            	        if ( BACKTRACKING==0 )
18696
            	        {
18697
383
            	             ++minusCount;
18698
            	        }
18699
18700
18701
            	    }
18702
383
            	    break;
18703
18704
80278
            	default:
18705
80278
            	    goto loop87;	/* break out of the loop */
18706
            	    break;
18707
                }
18708
383
            }
18709
80278
            loop87: ; /* Jump out to here if this rule does not match */
18710
18711
18712
80278
            FOLLOWPUSH(FOLLOW_bvBinaryOpTerm_in_uminusTerm5529);
18713
80278
            bvBinaryOpTerm(ctx, f);
18714
18715
80276
            FOLLOWPOP();
18716
80276
            if  (HASEXCEPTION())
18717
            {
18718
                goto ruleuminusTermEx;
18719
            }
18720
80276
            if (HASFAILED())
18721
            {
18722
                return ;
18723
            }
18724
18725
18726
80276
            if ( BACKTRACKING==0 )
18727
            {
18728
18729
81042
                      while (minusCount > 0)
18730
                      {
18731
383
                        --minusCount;
18732
383
                        f = MK_TERM(cvc5::api::UMINUS, f);
18733
                      }
18734
18735
            }
18736
18737
18738
        }
18739
18740
    }
18741
18742
    // This is where rules clean up and exit
18743
    //
18744
80276
    goto ruleuminusTermEx; /* Prevent compiler warnings */
18745
80276
    ruleuminusTermEx: ;
18746
18747
80276
            if (HASEXCEPTION())
18748
            {
18749
                PREPORTERROR();
18750
                PRECOVER();
18751
            }
18752
80276
    return ;
18753
}
18754
/* $ANTLR end uminusTerm */
18755
18756
/**
18757
 * $ANTLR start bvBinaryOpTerm
18758
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1695:1: bvBinaryOpTerm[cvc5::api::Term& f] : bvNegTerm[f] ( bvBinop[op] bvNegTerm[f] )* ;
18759
 */
18760
static void
18761
80278
bvBinaryOpTerm(pCvcParser ctx, cvc5::api::Term& f)
18762
{
18763
    /* Initialize rule variables
18764
     */
18765
18766
18767
160556
      std::vector<cvc5::api::Term> expressions;
18768
160556
      std::vector<unsigned> operators;
18769
      unsigned op;
18770
18771
    {
18772
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1701:3: ( bvNegTerm[f] ( bvBinop[op] bvNegTerm[f] )* )
18773
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1701:5: bvNegTerm[f] ( bvBinop[op] bvNegTerm[f] )*
18774
        {
18775
80278
            FOLLOWPUSH(FOLLOW_bvNegTerm_in_bvBinaryOpTerm5554);
18776
80278
            bvNegTerm(ctx, f);
18777
18778
80276
            FOLLOWPOP();
18779
80276
            if  (HASEXCEPTION())
18780
            {
18781
                goto rulebvBinaryOpTermEx;
18782
            }
18783
80276
            if (HASFAILED())
18784
            {
18785
                return ;
18786
            }
18787
18788
18789
80276
            if ( BACKTRACKING==0 )
18790
            {
18791
80276
                 expressions.push_back(f);
18792
            }
18793
18794
18795
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1702:5: ( bvBinop[op] bvNegTerm[f] )*
18796
18797
            for (;;)
18798
            {
18799
80407
                int alt88=2;
18800
80407
                switch ( LA(1) )
18801
                {
18802
45
                case BAR:
18803
                	{
18804
45
                		switch ( LA(2) )
18805
                		{
18806
                		case BAR:
18807
                			{
18808
                				switch ( LA(3) )
18809
                				{
18810
                				case BAR:
18811
                					{
18812
                						alt88=1;
18813
                					}
18814
                				    break;
18815
18816
                				}
18817
18818
                			}
18819
                		    break;
18820
45
                		case ABS_TOK:
18821
                		case ARRAY_TOK:
18822
                		case BINARY_LITERAL:
18823
                		case BVASHR_TOK:
18824
                		case BVCOMP_TOK:
18825
                		case BVGE_TOK:
18826
                		case BVGT_TOK:
18827
                		case BVLE_TOK:
18828
                		case BVLSHR_TOK:
18829
                		case BVLT_TOK:
18830
                		case BVMULT_TOK:
18831
                		case BVNAND_TOK:
18832
                		case BVNEG_TOK:
18833
                		case BVNOR_TOK:
18834
                		case BVPLUS_TOK:
18835
                		case BVREPEAT_TOK:
18836
                		case BVROTL_TOK:
18837
                		case BVROTR_TOK:
18838
                		case BVSDIV_TOK:
18839
                		case BVSGE_TOK:
18840
                		case BVSGT_TOK:
18841
                		case BVSHL_TOK:
18842
                		case BVSLE_TOK:
18843
                		case BVSLT_TOK:
18844
                		case BVSMOD_TOK:
18845
                		case BVSREM_TOK:
18846
                		case BVSUB_TOK:
18847
                		case BVUDIV_TOK:
18848
                		case BVUMINUS_TOK:
18849
                		case BVUREM_TOK:
18850
                		case BVXNOR_TOK:
18851
                		case BVXOR_TOK:
18852
                		case BVZEROEXTEND_TOK:
18853
                		case DECIMAL_LITERAL:
18854
                		case DISTINCT_TOK:
18855
                		case DIVISIBLE_TOK:
18856
                		case FALSE_TOK:
18857
                		case FLOOR_TOK:
18858
                		case HEX_LITERAL:
18859
                		case IDENTIFIER:
18860
                		case IDEN_TOK:
18861
                		case IF_TOK:
18862
                		case INTEGER_LITERAL:
18863
                		case IS_INTEGER_TOK:
18864
                		case LBRACE:
18865
                		case LPAREN:
18866
                		case PARENHASH:
18867
                		case REGEXP_COMPLEMENT_TOK:
18868
                		case REGEXP_CONCAT_TOK:
18869
                		case REGEXP_EMPTY_TOK:
18870
                		case REGEXP_INTER_TOK:
18871
                		case REGEXP_LOOP_TOK:
18872
                		case REGEXP_OPT_TOK:
18873
                		case REGEXP_PLUS_TOK:
18874
                		case REGEXP_RANGE_TOK:
18875
                		case REGEXP_SIGMA_TOK:
18876
                		case REGEXP_STAR_TOK:
18877
                		case REGEXP_UNION_TOK:
18878
                		case SEQ_UNIT_TOK:
18879
                		case SETS_CARD_TOK:
18880
                		case SETS_CHOOSE_TOK:
18881
                		case STRING_CHARAT_TOK:
18882
                		case STRING_CONCAT_TOK:
18883
                		case STRING_CONTAINS_TOK:
18884
                		case STRING_INDEXOF_TOK:
18885
                		case STRING_ITOS_TOK:
18886
                		case STRING_LENGTH_TOK:
18887
                		case STRING_LITERAL:
18888
                		case STRING_PREFIXOF_TOK:
18889
                		case STRING_REPLACE_ALL_TOK:
18890
                		case STRING_REPLACE_TOK:
18891
                		case STRING_REV_TOK:
18892
                		case STRING_STOI_TOK:
18893
                		case STRING_SUBSTR_TOK:
18894
                		case STRING_SUFFIXOF_TOK:
18895
                		case STRING_TOLOWER_TOK:
18896
                		case STRING_TOUPPER_TOK:
18897
                		case STRING_TO_REGEXP_TOK:
18898
                		case SX_TOK:
18899
                		case TRANSCLOSURE_TOK:
18900
                		case TRANSPOSE_TOK:
18901
                		case TRUE_TOK:
18902
                		case TUPLE_TOK:
18903
                		case UNIVSET_TOK:
18904
                			{
18905
45
                				alt88=1;
18906
                			}
18907
45
                		    break;
18908
18909
                		}
18910
18911
                	}
18912
45
                    break;
18913
86
                case BVAND_TOK:
18914
                case CONCAT_TOK:
18915
                	{
18916
86
                		alt88=1;
18917
                	}
18918
86
                    break;
18919
18920
                }
18921
18922
80407
                switch (alt88)
18923
                {
18924
131
            	case 1:
18925
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1702:7: bvBinop[op] bvNegTerm[f]
18926
            	    {
18927
131
            	        FOLLOWPUSH(FOLLOW_bvBinop_in_bvBinaryOpTerm5565);
18928
131
            	        bvBinop(ctx, op);
18929
18930
131
            	        FOLLOWPOP();
18931
131
            	        if  (HASEXCEPTION())
18932
            	        {
18933
            	            goto rulebvBinaryOpTermEx;
18934
            	        }
18935
131
            	        if (HASFAILED())
18936
            	        {
18937
            	            return ;
18938
            	        }
18939
18940
18941
131
            	        FOLLOWPUSH(FOLLOW_bvNegTerm_in_bvBinaryOpTerm5568);
18942
131
            	        bvNegTerm(ctx, f);
18943
18944
131
            	        FOLLOWPOP();
18945
131
            	        if  (HASEXCEPTION())
18946
            	        {
18947
            	            goto rulebvBinaryOpTermEx;
18948
            	        }
18949
131
            	        if (HASFAILED())
18950
            	        {
18951
            	            return ;
18952
            	        }
18953
18954
18955
131
            	        if ( BACKTRACKING==0 )
18956
            	        {
18957
131
            	             operators.push_back(op); expressions.push_back(f);
18958
            	        }
18959
18960
18961
            	    }
18962
131
            	    break;
18963
18964
80276
            	default:
18965
80276
            	    goto loop88;	/* break out of the loop */
18966
            	    break;
18967
                }
18968
131
            }
18969
80276
            loop88: ; /* Jump out to here if this rule does not match */
18970
18971
18972
80276
            if ( BACKTRACKING==0 )
18973
            {
18974
80276
                 f = createPrecedenceTree(PARSER_STATE, SOLVER, expressions, operators);
18975
            }
18976
18977
18978
        }
18979
18980
    }
18981
18982
    // This is where rules clean up and exit
18983
    //
18984
80276
    goto rulebvBinaryOpTermEx; /* Prevent compiler warnings */
18985
80276
    rulebvBinaryOpTermEx: ;
18986
18987
80276
            if (HASEXCEPTION())
18988
            {
18989
                PREPORTERROR();
18990
                PRECOVER();
18991
            }
18992
80276
    return ;
18993
}
18994
/* $ANTLR end bvBinaryOpTerm */
18995
18996
/**
18997
 * $ANTLR start bvBinop
18998
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1705:1: bvBinop[unsigned& op] : ( CONCAT_TOK | BAR | BVAND_TOK );
18999
 */
19000
static void
19001
131
bvBinop(pCvcParser ctx, unsigned& op)
19002
{
19003
    /* Initialize rule variables
19004
     */
19005
19006
19007
131
      op = LT(1)->getType(LT(1));
19008
19009
    {
19010
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1709:3: ( CONCAT_TOK | BAR | BVAND_TOK )
19011
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:
19012
        {
19013
131
            if ( LA(1) == BAR || LA(1) == BVAND_TOK || LA(1) == CONCAT_TOK )
19014
            {
19015
131
                CONSUME();
19016
131
                PERRORRECOVERY=ANTLR3_FALSE;
19017
131
                FAILEDFLAG=ANTLR3_FALSE;
19018
19019
            }
19020
            else
19021
            {
19022
                if (BACKTRACKING>0)
19023
                {
19024
                    FAILEDFLAG = ANTLR3_TRUE;
19025
                    return ;
19026
                }
19027
19028
                CONSTRUCTEX();
19029
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
19030
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
19031
                EXCEPTION->expectingSet = NULL;
19032
19033
                goto rulebvBinopEx;
19034
            }
19035
19036
19037
        }
19038
19039
    }
19040
19041
    // This is where rules clean up and exit
19042
    //
19043
131
    goto rulebvBinopEx; /* Prevent compiler warnings */
19044
131
    rulebvBinopEx: ;
19045
19046
131
            if (HASEXCEPTION())
19047
            {
19048
                PREPORTERROR();
19049
                PRECOVER();
19050
            }
19051
131
    return ;
19052
}
19053
/* $ANTLR end bvBinop */
19054
19055
/**
19056
 * $ANTLR start bvNegTerm
19057
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1714:1: bvNegTerm[cvc5::api::Term& f] : ( BVNEG_TOK bvNegTerm[f] | relationBinopTerm[f] );
19058
 */
19059
static void
19060
80450
bvNegTerm(pCvcParser ctx, cvc5::api::Term& f)
19061
{
19062
    /* Initialize rule variables
19063
     */
19064
19065
    {
19066
        {
19067
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1716:3: ( BVNEG_TOK bvNegTerm[f] | relationBinopTerm[f] )
19068
19069
            ANTLR3_UINT32 alt89;
19070
19071
80450
            alt89=2;
19072
19073
80450
            switch ( LA(1) )
19074
            {
19075
41
            case BVNEG_TOK:
19076
            	{
19077
41
            		alt89=1;
19078
            	}
19079
41
                break;
19080
80409
            case ABS_TOK:
19081
            case ARRAY_TOK:
19082
            case BAR:
19083
            case BINARY_LITERAL:
19084
            case BVASHR_TOK:
19085
            case BVCOMP_TOK:
19086
            case BVGE_TOK:
19087
            case BVGT_TOK:
19088
            case BVLE_TOK:
19089
            case BVLSHR_TOK:
19090
            case BVLT_TOK:
19091
            case BVMULT_TOK:
19092
            case BVNAND_TOK:
19093
            case BVNOR_TOK:
19094
            case BVPLUS_TOK:
19095
            case BVREPEAT_TOK:
19096
            case BVROTL_TOK:
19097
            case BVROTR_TOK:
19098
            case BVSDIV_TOK:
19099
            case BVSGE_TOK:
19100
            case BVSGT_TOK:
19101
            case BVSHL_TOK:
19102
            case BVSLE_TOK:
19103
            case BVSLT_TOK:
19104
            case BVSMOD_TOK:
19105
            case BVSREM_TOK:
19106
            case BVSUB_TOK:
19107
            case BVUDIV_TOK:
19108
            case BVUMINUS_TOK:
19109
            case BVUREM_TOK:
19110
            case BVXNOR_TOK:
19111
            case BVXOR_TOK:
19112
            case BVZEROEXTEND_TOK:
19113
            case DECIMAL_LITERAL:
19114
            case DISTINCT_TOK:
19115
            case DIVISIBLE_TOK:
19116
            case FALSE_TOK:
19117
            case FLOOR_TOK:
19118
            case HEX_LITERAL:
19119
            case IDENTIFIER:
19120
            case IDEN_TOK:
19121
            case IF_TOK:
19122
            case INTEGER_LITERAL:
19123
            case IS_INTEGER_TOK:
19124
            case LBRACE:
19125
            case LPAREN:
19126
            case PARENHASH:
19127
            case REGEXP_COMPLEMENT_TOK:
19128
            case REGEXP_CONCAT_TOK:
19129
            case REGEXP_EMPTY_TOK:
19130
            case REGEXP_INTER_TOK:
19131
            case REGEXP_LOOP_TOK:
19132
            case REGEXP_OPT_TOK:
19133
            case REGEXP_PLUS_TOK:
19134
            case REGEXP_RANGE_TOK:
19135
            case REGEXP_SIGMA_TOK:
19136
            case REGEXP_STAR_TOK:
19137
            case REGEXP_UNION_TOK:
19138
            case SEQ_UNIT_TOK:
19139
            case SETS_CARD_TOK:
19140
            case SETS_CHOOSE_TOK:
19141
            case STRING_CHARAT_TOK:
19142
            case STRING_CONCAT_TOK:
19143
            case STRING_CONTAINS_TOK:
19144
            case STRING_INDEXOF_TOK:
19145
            case STRING_ITOS_TOK:
19146
            case STRING_LENGTH_TOK:
19147
            case STRING_LITERAL:
19148
            case STRING_PREFIXOF_TOK:
19149
            case STRING_REPLACE_ALL_TOK:
19150
            case STRING_REPLACE_TOK:
19151
            case STRING_REV_TOK:
19152
            case STRING_STOI_TOK:
19153
            case STRING_SUBSTR_TOK:
19154
            case STRING_SUFFIXOF_TOK:
19155
            case STRING_TOLOWER_TOK:
19156
            case STRING_TOUPPER_TOK:
19157
            case STRING_TO_REGEXP_TOK:
19158
            case SX_TOK:
19159
            case TRANSCLOSURE_TOK:
19160
            case TRANSPOSE_TOK:
19161
            case TRUE_TOK:
19162
            case TUPLE_TOK:
19163
            case UNIVSET_TOK:
19164
            	{
19165
80409
            		alt89=2;
19166
            	}
19167
80409
                break;
19168
19169
            default:
19170
                if (BACKTRACKING>0)
19171
                {
19172
                    FAILEDFLAG = ANTLR3_TRUE;
19173
                    return ;
19174
                }
19175
19176
                CONSTRUCTEX();
19177
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
19178
                EXCEPTION->message      = (void *)"";
19179
                EXCEPTION->decisionNum  = 89;
19180
                EXCEPTION->state        = 0;
19181
19182
19183
                goto rulebvNegTermEx;
19184
19185
            }
19186
19187
80450
            switch (alt89)
19188
            {
19189
41
        	case 1:
19190
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1716:5: BVNEG_TOK bvNegTerm[f]
19191
        	    {
19192
41
        	         MATCHT(BVNEG_TOK, &FOLLOW_BVNEG_TOK_in_bvNegTerm5631);
19193
41
        	        if  (HASEXCEPTION())
19194
        	        {
19195
        	            goto rulebvNegTermEx;
19196
        	        }
19197
41
        	        if (HASFAILED())
19198
        	        {
19199
        	            return ;
19200
        	        }
19201
19202
19203
41
        	        FOLLOWPUSH(FOLLOW_bvNegTerm_in_bvNegTerm5633);
19204
41
        	        bvNegTerm(ctx, f);
19205
19206
41
        	        FOLLOWPOP();
19207
41
        	        if  (HASEXCEPTION())
19208
        	        {
19209
        	            goto rulebvNegTermEx;
19210
        	        }
19211
41
        	        if (HASFAILED())
19212
        	        {
19213
        	            return ;
19214
        	        }
19215
19216
19217
41
        	        if ( BACKTRACKING==0 )
19218
        	        {
19219
19220
68
        	                  f = f.getSort().isSet() ? MK_TERM(cvc5::api::COMPLEMENT, f)
19221
27
        	                                          : MK_TERM(cvc5::api::BITVECTOR_NOT, f);
19222
19223
        	        }
19224
19225
19226
        	    }
19227
41
        	    break;
19228
80409
        	case 2:
19229
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1721:5: relationBinopTerm[f]
19230
        	    {
19231
80409
        	        FOLLOWPUSH(FOLLOW_relationBinopTerm_in_bvNegTerm5646);
19232
80409
        	        relationBinopTerm(ctx, f);
19233
19234
80407
        	        FOLLOWPOP();
19235
80407
        	        if  (HASEXCEPTION())
19236
        	        {
19237
        	            goto rulebvNegTermEx;
19238
        	        }
19239
80407
        	        if (HASFAILED())
19240
        	        {
19241
        	            return ;
19242
        	        }
19243
19244
19245
        	    }
19246
80407
        	    break;
19247
19248
            }
19249
        }
19250
    }
19251
19252
    // This is where rules clean up and exit
19253
    //
19254
80448
    goto rulebvNegTermEx; /* Prevent compiler warnings */
19255
80448
    rulebvNegTermEx: ;
19256
19257
80448
            if (HASEXCEPTION())
19258
            {
19259
                PREPORTERROR();
19260
                PRECOVER();
19261
            }
19262
80448
    return ;
19263
}
19264
/* $ANTLR end bvNegTerm */
19265
19266
/**
19267
 * $ANTLR start relationBinop
19268
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1724:1: relationBinop[unsigned& op] : ( JOIN_TOK | PRODUCT_TOK | JOIN_IMAGE_TOK );
19269
 */
19270
static void
19271
406
relationBinop(pCvcParser ctx, unsigned& op)
19272
{
19273
    /* Initialize rule variables
19274
     */
19275
19276
19277
406
      op = LT(1)->getType(LT(1));
19278
19279
    {
19280
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1728:3: ( JOIN_TOK | PRODUCT_TOK | JOIN_IMAGE_TOK )
19281
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:
19282
        {
19283
406
            if ( ((LA(1) >= JOIN_IMAGE_TOK) && (LA(1) <= JOIN_TOK)) || LA(1) == PRODUCT_TOK )
19284
            {
19285
406
                CONSUME();
19286
406
                PERRORRECOVERY=ANTLR3_FALSE;
19287
406
                FAILEDFLAG=ANTLR3_FALSE;
19288
19289
            }
19290
            else
19291
            {
19292
                if (BACKTRACKING>0)
19293
                {
19294
                    FAILEDFLAG = ANTLR3_TRUE;
19295
                    return ;
19296
                }
19297
19298
                CONSTRUCTEX();
19299
                EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
19300
                EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
19301
                EXCEPTION->expectingSet = NULL;
19302
19303
                goto rulerelationBinopEx;
19304
            }
19305
19306
19307
        }
19308
19309
    }
19310
19311
    // This is where rules clean up and exit
19312
    //
19313
406
    goto rulerelationBinopEx; /* Prevent compiler warnings */
19314
406
    rulerelationBinopEx: ;
19315
19316
406
            if (HASEXCEPTION())
19317
            {
19318
                PREPORTERROR();
19319
                PRECOVER();
19320
            }
19321
406
    return ;
19322
}
19323
/* $ANTLR end relationBinop */
19324
19325
/**
19326
 * $ANTLR start relationBinopTerm
19327
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1733:1: relationBinopTerm[cvc5::api::Term& f] : postfixTerm[f] ( relationBinop[op] postfixTerm[f] )* ;
19328
 */
19329
static void
19330
80409
relationBinopTerm(pCvcParser ctx, cvc5::api::Term& f)
19331
{
19332
    /* Initialize rule variables
19333
     */
19334
19335
19336
160818
      std::vector<cvc5::api::Term> expressions;
19337
160818
      std::vector<unsigned> operators;
19338
      unsigned op;
19339
19340
    {
19341
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1739:3: ( postfixTerm[f] ( relationBinop[op] postfixTerm[f] )* )
19342
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1739:5: postfixTerm[f] ( relationBinop[op] postfixTerm[f] )*
19343
        {
19344
80409
            FOLLOWPUSH(FOLLOW_postfixTerm_in_relationBinopTerm5697);
19345
80409
            postfixTerm(ctx, f);
19346
19347
80407
            FOLLOWPOP();
19348
80407
            if  (HASEXCEPTION())
19349
            {
19350
                goto rulerelationBinopTermEx;
19351
            }
19352
80407
            if (HASFAILED())
19353
            {
19354
                return ;
19355
            }
19356
19357
19358
80407
            if ( BACKTRACKING==0 )
19359
            {
19360
80407
                 expressions.push_back(f);
19361
            }
19362
19363
19364
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1740:5: ( relationBinop[op] postfixTerm[f] )*
19365
19366
            for (;;)
19367
            {
19368
80813
                int alt90=2;
19369
80813
                switch ( LA(1) )
19370
                {
19371
406
                case JOIN_IMAGE_TOK:
19372
                case JOIN_TOK:
19373
                case PRODUCT_TOK:
19374
                	{
19375
406
                		alt90=1;
19376
                	}
19377
406
                    break;
19378
19379
                }
19380
19381
80813
                switch (alt90)
19382
                {
19383
406
            	case 1:
19384
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1740:7: relationBinop[op] postfixTerm[f]
19385
            	    {
19386
406
            	        FOLLOWPUSH(FOLLOW_relationBinop_in_relationBinopTerm5708);
19387
406
            	        relationBinop(ctx, op);
19388
19389
406
            	        FOLLOWPOP();
19390
406
            	        if  (HASEXCEPTION())
19391
            	        {
19392
            	            goto rulerelationBinopTermEx;
19393
            	        }
19394
406
            	        if (HASFAILED())
19395
            	        {
19396
            	            return ;
19397
            	        }
19398
19399
19400
406
            	        FOLLOWPUSH(FOLLOW_postfixTerm_in_relationBinopTerm5711);
19401
406
            	        postfixTerm(ctx, f);
19402
19403
406
            	        FOLLOWPOP();
19404
406
            	        if  (HASEXCEPTION())
19405
            	        {
19406
            	            goto rulerelationBinopTermEx;
19407
            	        }
19408
406
            	        if (HASFAILED())
19409
            	        {
19410
            	            return ;
19411
            	        }
19412
19413
19414
406
            	        if ( BACKTRACKING==0 )
19415
            	        {
19416
406
            	             operators.push_back(op); expressions.push_back(f);
19417
            	        }
19418
19419
19420
            	    }
19421
406
            	    break;
19422
19423
80407
            	default:
19424
80407
            	    goto loop90;	/* break out of the loop */
19425
            	    break;
19426
                }
19427
406
            }
19428
80407
            loop90: ; /* Jump out to here if this rule does not match */
19429
19430
19431
80407
            if ( BACKTRACKING==0 )
19432
            {
19433
80407
                 f = createPrecedenceTree(PARSER_STATE, SOLVER, expressions, operators);
19434
            }
19435
19436
19437
        }
19438
19439
    }
19440
19441
    // This is where rules clean up and exit
19442
    //
19443
80407
    goto rulerelationBinopTermEx; /* Prevent compiler warnings */
19444
80407
    rulerelationBinopTermEx: ;
19445
19446
80407
            if (HASEXCEPTION())
19447
            {
19448
                PREPORTERROR();
19449
                PRECOVER();
19450
            }
19451
80407
    return ;
19452
}
19453
/* $ANTLR end relationBinopTerm */
19454
19455
/**
19456
 * $ANTLR start postfixTerm
19457
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1753:1: postfixTerm[cvc5::api::Term& f] : ( relationTerm[f] ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )* | FLOOR_TOK LPAREN formula[f] RPAREN | IS_INTEGER_TOK LPAREN formula[f] RPAREN | ABS_TOK LPAREN formula[f] RPAREN | DIVISIBLE_TOK LPAREN formula[f] COMMA n= numeral RPAREN | DISTINCT_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN ) ( typeAscription[f, t] )? ;
19458
 */
19459
static void
19460
80815
postfixTerm(pCvcParser ctx, cvc5::api::Term& f)
19461
{
19462
    unsigned k1;
19463
    #undef	RETURN_TYPE_k1
19464
    #define	RETURN_TYPE_k1 unsigned
19465
19466
    unsigned k2;
19467
    #undef	RETURN_TYPE_k2
19468
    #define	RETURN_TYPE_k2 unsigned
19469
19470
    unsigned k;
19471
    #undef	RETURN_TYPE_k
19472
    #define	RETURN_TYPE_k unsigned
19473
19474
    unsigned n;
19475
    #undef	RETURN_TYPE_n
19476
    #define	RETURN_TYPE_n unsigned
19477
19478
    /* Initialize rule variables
19479
     */
19480
19481
19482
161630
      api::Term f2;
19483
80815
      bool extract = false, left = false;
19484
161630
      std::vector<api::Term> args;
19485
161630
      std::string id;
19486
161630
      api::Sort t;
19487
19488
    {
19489
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1761:3: ( ( relationTerm[f] ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )* | FLOOR_TOK LPAREN formula[f] RPAREN | IS_INTEGER_TOK LPAREN formula[f] RPAREN | ABS_TOK LPAREN formula[f] RPAREN | DIVISIBLE_TOK LPAREN formula[f] COMMA n= numeral RPAREN | DISTINCT_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN ) ( typeAscription[f, t] )? )
19490
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1761:5: ( relationTerm[f] ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )* | FLOOR_TOK LPAREN formula[f] RPAREN | IS_INTEGER_TOK LPAREN formula[f] RPAREN | ABS_TOK LPAREN formula[f] RPAREN | DIVISIBLE_TOK LPAREN formula[f] COMMA n= numeral RPAREN | DISTINCT_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN ) ( typeAscription[f, t] )?
19491
        {
19492
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1761:5: ( relationTerm[f] ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )* | FLOOR_TOK LPAREN formula[f] RPAREN | IS_INTEGER_TOK LPAREN formula[f] RPAREN | ABS_TOK LPAREN formula[f] RPAREN | DIVISIBLE_TOK LPAREN formula[f] COMMA n= numeral RPAREN | DISTINCT_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN )
19493
            {
19494
80815
                int alt97=6;
19495
80815
                switch ( LA(1) )
19496
                {
19497
80801
                case ARRAY_TOK:
19498
                case BAR:
19499
                case BINARY_LITERAL:
19500
                case BVASHR_TOK:
19501
                case BVCOMP_TOK:
19502
                case BVGE_TOK:
19503
                case BVGT_TOK:
19504
                case BVLE_TOK:
19505
                case BVLSHR_TOK:
19506
                case BVLT_TOK:
19507
                case BVMULT_TOK:
19508
                case BVNAND_TOK:
19509
                case BVNOR_TOK:
19510
                case BVPLUS_TOK:
19511
                case BVREPEAT_TOK:
19512
                case BVROTL_TOK:
19513
                case BVROTR_TOK:
19514
                case BVSDIV_TOK:
19515
                case BVSGE_TOK:
19516
                case BVSGT_TOK:
19517
                case BVSHL_TOK:
19518
                case BVSLE_TOK:
19519
                case BVSLT_TOK:
19520
                case BVSMOD_TOK:
19521
                case BVSREM_TOK:
19522
                case BVSUB_TOK:
19523
                case BVUDIV_TOK:
19524
                case BVUMINUS_TOK:
19525
                case BVUREM_TOK:
19526
                case BVXNOR_TOK:
19527
                case BVXOR_TOK:
19528
                case BVZEROEXTEND_TOK:
19529
                case DECIMAL_LITERAL:
19530
                case FALSE_TOK:
19531
                case HEX_LITERAL:
19532
                case IDENTIFIER:
19533
                case IDEN_TOK:
19534
                case IF_TOK:
19535
                case INTEGER_LITERAL:
19536
                case LBRACE:
19537
                case LPAREN:
19538
                case PARENHASH:
19539
                case REGEXP_COMPLEMENT_TOK:
19540
                case REGEXP_CONCAT_TOK:
19541
                case REGEXP_EMPTY_TOK:
19542
                case REGEXP_INTER_TOK:
19543
                case REGEXP_LOOP_TOK:
19544
                case REGEXP_OPT_TOK:
19545
                case REGEXP_PLUS_TOK:
19546
                case REGEXP_RANGE_TOK:
19547
                case REGEXP_SIGMA_TOK:
19548
                case REGEXP_STAR_TOK:
19549
                case REGEXP_UNION_TOK:
19550
                case SEQ_UNIT_TOK:
19551
                case SETS_CARD_TOK:
19552
                case SETS_CHOOSE_TOK:
19553
                case STRING_CHARAT_TOK:
19554
                case STRING_CONCAT_TOK:
19555
                case STRING_CONTAINS_TOK:
19556
                case STRING_INDEXOF_TOK:
19557
                case STRING_ITOS_TOK:
19558
                case STRING_LENGTH_TOK:
19559
                case STRING_LITERAL:
19560
                case STRING_PREFIXOF_TOK:
19561
                case STRING_REPLACE_ALL_TOK:
19562
                case STRING_REPLACE_TOK:
19563
                case STRING_REV_TOK:
19564
                case STRING_STOI_TOK:
19565
                case STRING_SUBSTR_TOK:
19566
                case STRING_SUFFIXOF_TOK:
19567
                case STRING_TOLOWER_TOK:
19568
                case STRING_TOUPPER_TOK:
19569
                case STRING_TO_REGEXP_TOK:
19570
                case SX_TOK:
19571
                case TRANSCLOSURE_TOK:
19572
                case TRANSPOSE_TOK:
19573
                case TRUE_TOK:
19574
                case TUPLE_TOK:
19575
                case UNIVSET_TOK:
19576
                	{
19577
80801
                		alt97=1;
19578
                	}
19579
80801
                    break;
19580
4
                case FLOOR_TOK:
19581
                	{
19582
4
                		alt97=2;
19583
                	}
19584
4
                    break;
19585
                case IS_INTEGER_TOK:
19586
                	{
19587
                		alt97=3;
19588
                	}
19589
                    break;
19590
                case ABS_TOK:
19591
                	{
19592
                		alt97=4;
19593
                	}
19594
                    break;
19595
                case DIVISIBLE_TOK:
19596
                	{
19597
                		alt97=5;
19598
                	}
19599
                    break;
19600
10
                case DISTINCT_TOK:
19601
                	{
19602
10
                		alt97=6;
19603
                	}
19604
10
                    break;
19605
19606
                default:
19607
                    if (BACKTRACKING>0)
19608
                    {
19609
                        FAILEDFLAG = ANTLR3_TRUE;
19610
                        return ;
19611
                    }
19612
19613
                    CONSTRUCTEX();
19614
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
19615
                    EXCEPTION->message      = (void *)"";
19616
                    EXCEPTION->decisionNum  = 97;
19617
                    EXCEPTION->state        = 0;
19618
19619
19620
                    goto rulepostfixTermEx;
19621
19622
                }
19623
19624
80815
                switch (alt97)
19625
                {
19626
80801
            	case 1:
19627
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1761:7: relationTerm[f] ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )*
19628
            	    {
19629
80801
            	        FOLLOWPUSH(FOLLOW_relationTerm_in_postfixTerm5746);
19630
80801
            	        relationTerm(ctx, f);
19631
19632
80801
            	        FOLLOWPOP();
19633
80801
            	        if  (HASEXCEPTION())
19634
            	        {
19635
            	            goto rulepostfixTermEx;
19636
            	        }
19637
80801
            	        if (HASFAILED())
19638
            	        {
19639
            	            return ;
19640
            	        }
19641
19642
19643
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1762:5: ( LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET | ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral ) )*
19644
19645
            	        for (;;)
19646
            	        {
19647
82270
            	            int alt95=5;
19648
82270
            	            switch ( LA(1) )
19649
            	            {
19650
194
            	            case LBRACKET:
19651
            	            	{
19652
194
            	            		switch ( LA(2) )
19653
            	            		{
19654
41
            	            		case IDENTIFIER:
19655
            	            			{
19656
41
            	            				switch ( LA(3) )
19657
            	            				{
19658
41
            	            				case AND_TOK:
19659
            	            				case BAR:
19660
            	            				case BVAND_TOK:
19661
            	            				case COLON:
19662
            	            				case CONCAT_TOK:
19663
            	            				case DISEQUAL_TOK:
19664
            	            				case DIV_TOK:
19665
            	            				case DOT:
19666
            	            				case EQUAL_TOK:
19667
            	            				case EXP_TOK:
19668
            	            				case FMF_CARD_TOK:
19669
            	            				case GEQ_TOK:
19670
            	            				case GT_TOK:
19671
            	            				case IFF_TOK:
19672
            	            				case IMPLIES_TOK:
19673
            	            				case INTDIV_TOK:
19674
            	            				case JOIN_IMAGE_TOK:
19675
            	            				case JOIN_TOK:
19676
            	            				case LBRACKET:
19677
            	            				case LEFTSHIFT_TOK:
19678
            	            				case LEQ_TOK:
19679
            	            				case LPAREN:
19680
            	            				case LT_TOK:
19681
            	            				case MEMBER_TOK:
19682
            	            				case MINUS_TOK:
19683
            	            				case MOD_TOK:
19684
            	            				case OR_TOK:
19685
            	            				case PLUS_TOK:
19686
            	            				case PRODUCT_TOK:
19687
            	            				case RBRACKET:
19688
            	            				case RIGHTSHIFT_TOK:
19689
            	            				case STAR_TOK:
19690
            	            				case WITH_TOK:
19691
            	            				case XOR_TOK:
19692
            	            					{
19693
41
            	            						alt95=1;
19694
            	            					}
19695
41
            	            				    break;
19696
19697
            	            				}
19698
19699
            	            			}
19700
41
            	            		    break;
19701
153
            	            		case ABS_TOK:
19702
            	            		case ARRAY_TOK:
19703
            	            		case BAR:
19704
            	            		case BINARY_LITERAL:
19705
            	            		case BVASHR_TOK:
19706
            	            		case BVCOMP_TOK:
19707
            	            		case BVGE_TOK:
19708
            	            		case BVGT_TOK:
19709
            	            		case BVLE_TOK:
19710
            	            		case BVLSHR_TOK:
19711
            	            		case BVLT_TOK:
19712
            	            		case BVMULT_TOK:
19713
            	            		case BVNAND_TOK:
19714
            	            		case BVNEG_TOK:
19715
            	            		case BVNOR_TOK:
19716
            	            		case BVPLUS_TOK:
19717
            	            		case BVREPEAT_TOK:
19718
            	            		case BVROTL_TOK:
19719
            	            		case BVROTR_TOK:
19720
            	            		case BVSDIV_TOK:
19721
            	            		case BVSGE_TOK:
19722
            	            		case BVSGT_TOK:
19723
            	            		case BVSHL_TOK:
19724
            	            		case BVSLE_TOK:
19725
            	            		case BVSLT_TOK:
19726
            	            		case BVSMOD_TOK:
19727
            	            		case BVSREM_TOK:
19728
            	            		case BVSUB_TOK:
19729
            	            		case BVUDIV_TOK:
19730
            	            		case BVUMINUS_TOK:
19731
            	            		case BVUREM_TOK:
19732
            	            		case BVXNOR_TOK:
19733
            	            		case BVXOR_TOK:
19734
            	            		case BVZEROEXTEND_TOK:
19735
            	            		case DECIMAL_LITERAL:
19736
            	            		case DISTINCT_TOK:
19737
            	            		case DIVISIBLE_TOK:
19738
            	            		case EXISTS_TOK:
19739
            	            		case FALSE_TOK:
19740
            	            		case FLOOR_TOK:
19741
            	            		case FORALL_TOK:
19742
            	            		case HEX_LITERAL:
19743
            	            		case IDEN_TOK:
19744
            	            		case IF_TOK:
19745
            	            		case INTEGER_LITERAL:
19746
            	            		case IS_INTEGER_TOK:
19747
            	            		case LAMBDA_TOK:
19748
            	            		case LBRACE:
19749
            	            		case LET_TOK:
19750
            	            		case LPAREN:
19751
            	            		case MINUS_TOK:
19752
            	            		case NOT_TOK:
19753
            	            		case PARENHASH:
19754
            	            		case REGEXP_COMPLEMENT_TOK:
19755
            	            		case REGEXP_CONCAT_TOK:
19756
            	            		case REGEXP_EMPTY_TOK:
19757
            	            		case REGEXP_INTER_TOK:
19758
            	            		case REGEXP_LOOP_TOK:
19759
            	            		case REGEXP_OPT_TOK:
19760
            	            		case REGEXP_PLUS_TOK:
19761
            	            		case REGEXP_RANGE_TOK:
19762
            	            		case REGEXP_SIGMA_TOK:
19763
            	            		case REGEXP_STAR_TOK:
19764
            	            		case REGEXP_UNION_TOK:
19765
            	            		case SEQ_UNIT_TOK:
19766
            	            		case SETS_CARD_TOK:
19767
            	            		case SETS_CHOOSE_TOK:
19768
            	            		case STRING_CHARAT_TOK:
19769
            	            		case STRING_CONCAT_TOK:
19770
            	            		case STRING_CONTAINS_TOK:
19771
            	            		case STRING_INDEXOF_TOK:
19772
            	            		case STRING_ITOS_TOK:
19773
            	            		case STRING_LENGTH_TOK:
19774
            	            		case STRING_LITERAL:
19775
            	            		case STRING_PREFIXOF_TOK:
19776
            	            		case STRING_REPLACE_ALL_TOK:
19777
            	            		case STRING_REPLACE_TOK:
19778
            	            		case STRING_REV_TOK:
19779
            	            		case STRING_STOI_TOK:
19780
            	            		case STRING_SUBSTR_TOK:
19781
            	            		case STRING_SUFFIXOF_TOK:
19782
            	            		case STRING_TOLOWER_TOK:
19783
            	            		case STRING_TOUPPER_TOK:
19784
            	            		case STRING_TO_REGEXP_TOK:
19785
            	            		case SX_TOK:
19786
            	            		case TRANSCLOSURE_TOK:
19787
            	            		case TRANSPOSE_TOK:
19788
            	            		case TRUE_TOK:
19789
            	            		case TUPLE_TOK:
19790
            	            		case UNIVSET_TOK:
19791
            	            			{
19792
153
            	            				alt95=1;
19793
            	            			}
19794
153
            	            		    break;
19795
19796
            	            		}
19797
19798
            	            	}
19799
194
            	                break;
19800
1033
            	            case LPAREN:
19801
            	            	{
19802
1033
            	            		switch ( LA(2) )
19803
            	            		{
19804
            	            		case NOT_TOK:
19805
            	            			{
19806
            	            				switch ( LA(3) )
19807
            	            				{
19808
            	            				case FORALL_TOK:
19809
            	            					{
19810
            	            						alt95=3;
19811
            	            					}
19812
            	            				    break;
19813
            	            				case EXISTS_TOK:
19814
            	            					{
19815
            	            						alt95=3;
19816
            	            					}
19817
            	            				    break;
19818
            	            				case LET_TOK:
19819
            	            					{
19820
            	            						alt95=3;
19821
            	            					}
19822
            	            				    break;
19823
            	            				case LAMBDA_TOK:
19824
            	            					{
19825
            	            						alt95=3;
19826
            	            					}
19827
            	            				    break;
19828
            	            				case MINUS_TOK:
19829
            	            					{
19830
            	            						alt95=3;
19831
            	            					}
19832
            	            				    break;
19833
            	            				case BVNEG_TOK:
19834
            	            					{
19835
            	            						alt95=3;
19836
            	            					}
19837
            	            				    break;
19838
            	            				case TRANSPOSE_TOK:
19839
            	            					{
19840
            	            						alt95=3;
19841
            	            					}
19842
            	            				    break;
19843
            	            				case TRANSCLOSURE_TOK:
19844
            	            					{
19845
            	            						alt95=3;
19846
            	            					}
19847
            	            				    break;
19848
            	            				case TUPLE_TOK:
19849
            	            					{
19850
            	            						alt95=3;
19851
            	            					}
19852
            	            				    break;
19853
            	            				case IDEN_TOK:
19854
            	            					{
19855
            	            						alt95=3;
19856
            	            					}
19857
            	            				    break;
19858
            	            				case BVXOR_TOK:
19859
            	            					{
19860
            	            						alt95=3;
19861
            	            					}
19862
            	            				    break;
19863
            	            				case BVNAND_TOK:
19864
            	            					{
19865
            	            						alt95=3;
19866
            	            					}
19867
            	            				    break;
19868
            	            				case BVNOR_TOK:
19869
            	            					{
19870
            	            						alt95=3;
19871
            	            					}
19872
            	            				    break;
19873
            	            				case BVCOMP_TOK:
19874
            	            					{
19875
            	            						alt95=3;
19876
            	            					}
19877
            	            				    break;
19878
            	            				case BVXNOR_TOK:
19879
            	            					{
19880
            	            						alt95=3;
19881
            	            					}
19882
            	            				    break;
19883
            	            				case BVUMINUS_TOK:
19884
            	            					{
19885
            	            						alt95=3;
19886
            	            					}
19887
            	            				    break;
19888
            	            				case BVPLUS_TOK:
19889
            	            					{
19890
            	            						alt95=3;
19891
            	            					}
19892
            	            				    break;
19893
            	            				case BVSUB_TOK:
19894
            	            					{
19895
            	            						alt95=3;
19896
            	            					}
19897
            	            				    break;
19898
            	            				case BVMULT_TOK:
19899
            	            					{
19900
            	            						alt95=3;
19901
            	            					}
19902
            	            				    break;
19903
            	            				case BVUDIV_TOK:
19904
            	            					{
19905
            	            						alt95=3;
19906
            	            					}
19907
            	            				    break;
19908
            	            				case BVSDIV_TOK:
19909
            	            					{
19910
            	            						alt95=3;
19911
            	            					}
19912
            	            				    break;
19913
            	            				case BVUREM_TOK:
19914
            	            					{
19915
            	            						alt95=3;
19916
            	            					}
19917
            	            				    break;
19918
            	            				case BVSREM_TOK:
19919
            	            					{
19920
            	            						alt95=3;
19921
            	            					}
19922
            	            				    break;
19923
            	            				case BVSMOD_TOK:
19924
            	            					{
19925
            	            						alt95=3;
19926
            	            					}
19927
            	            				    break;
19928
            	            				case BVSHL_TOK:
19929
            	            					{
19930
            	            						alt95=3;
19931
            	            					}
19932
            	            				    break;
19933
            	            				case BVASHR_TOK:
19934
            	            					{
19935
            	            						alt95=3;
19936
            	            					}
19937
            	            				    break;
19938
            	            				case BVLSHR_TOK:
19939
            	            					{
19940
            	            						alt95=3;
19941
            	            					}
19942
            	            				    break;
19943
            	            				case SX_TOK:
19944
            	            					{
19945
            	            						alt95=3;
19946
            	            					}
19947
            	            				    break;
19948
            	            				case BVZEROEXTEND_TOK:
19949
            	            					{
19950
            	            						alt95=3;
19951
            	            					}
19952
            	            				    break;
19953
            	            				case BVREPEAT_TOK:
19954
            	            					{
19955
            	            						alt95=3;
19956
            	            					}
19957
            	            				    break;
19958
            	            				case BVROTR_TOK:
19959
            	            					{
19960
            	            						alt95=3;
19961
            	            					}
19962
            	            				    break;
19963
            	            				case BVROTL_TOK:
19964
            	            					{
19965
            	            						alt95=3;
19966
            	            					}
19967
            	            				    break;
19968
            	            				case BVLT_TOK:
19969
            	            					{
19970
            	            						alt95=3;
19971
            	            					}
19972
            	            				    break;
19973
            	            				case BVLE_TOK:
19974
            	            					{
19975
            	            						alt95=3;
19976
            	            					}
19977
            	            				    break;
19978
            	            				case BVGT_TOK:
19979
            	            					{
19980
            	            						alt95=3;
19981
            	            					}
19982
            	            				    break;
19983
            	            				case BVGE_TOK:
19984
            	            					{
19985
            	            						alt95=3;
19986
            	            					}
19987
            	            				    break;
19988
            	            				case BVSLT_TOK:
19989
            	            					{
19990
            	            						alt95=3;
19991
            	            					}
19992
            	            				    break;
19993
            	            				case BVSLE_TOK:
19994
            	            					{
19995
            	            						alt95=3;
19996
            	            					}
19997
            	            				    break;
19998
            	            				case BVSGT_TOK:
19999
            	            					{
20000
            	            						alt95=3;
20001
            	            					}
20002
            	            				    break;
20003
            	            				case BVSGE_TOK:
20004
            	            					{
20005
            	            						alt95=3;
20006
            	            					}
20007
            	            				    break;
20008
            	            				case STRING_CONCAT_TOK:
20009
            	            					{
20010
            	            						alt95=3;
20011
            	            					}
20012
            	            				    break;
20013
            	            				case STRING_LENGTH_TOK:
20014
            	            					{
20015
            	            						alt95=3;
20016
            	            					}
20017
            	            				    break;
20018
            	            				case STRING_CONTAINS_TOK:
20019
            	            					{
20020
            	            						alt95=3;
20021
            	            					}
20022
            	            				    break;
20023
            	            				case STRING_SUBSTR_TOK:
20024
            	            					{
20025
            	            						alt95=3;
20026
            	            					}
20027
            	            				    break;
20028
            	            				case STRING_CHARAT_TOK:
20029
            	            					{
20030
            	            						alt95=3;
20031
            	            					}
20032
            	            				    break;
20033
            	            				case STRING_INDEXOF_TOK:
20034
            	            					{
20035
            	            						alt95=3;
20036
            	            					}
20037
            	            				    break;
20038
            	            				case STRING_REPLACE_TOK:
20039
            	            					{
20040
            	            						alt95=3;
20041
            	            					}
20042
            	            				    break;
20043
            	            				case STRING_REPLACE_ALL_TOK:
20044
            	            					{
20045
            	            						alt95=3;
20046
            	            					}
20047
            	            				    break;
20048
            	            				case STRING_PREFIXOF_TOK:
20049
            	            					{
20050
            	            						alt95=3;
20051
            	            					}
20052
            	            				    break;
20053
            	            				case STRING_SUFFIXOF_TOK:
20054
            	            					{
20055
            	            						alt95=3;
20056
            	            					}
20057
            	            				    break;
20058
            	            				case STRING_STOI_TOK:
20059
            	            					{
20060
            	            						alt95=3;
20061
            	            					}
20062
            	            				    break;
20063
            	            				case STRING_ITOS_TOK:
20064
            	            					{
20065
            	            						alt95=3;
20066
            	            					}
20067
            	            				    break;
20068
            	            				case STRING_TO_REGEXP_TOK:
20069
            	            					{
20070
            	            						alt95=3;
20071
            	            					}
20072
            	            				    break;
20073
            	            				case STRING_TOLOWER_TOK:
20074
            	            					{
20075
            	            						alt95=3;
20076
            	            					}
20077
            	            				    break;
20078
            	            				case STRING_TOUPPER_TOK:
20079
            	            					{
20080
            	            						alt95=3;
20081
            	            					}
20082
            	            				    break;
20083
            	            				case STRING_REV_TOK:
20084
            	            					{
20085
            	            						alt95=3;
20086
            	            					}
20087
            	            				    break;
20088
            	            				case REGEXP_CONCAT_TOK:
20089
            	            					{
20090
            	            						alt95=3;
20091
            	            					}
20092
            	            				    break;
20093
            	            				case REGEXP_UNION_TOK:
20094
            	            					{
20095
            	            						alt95=3;
20096
            	            					}
20097
            	            				    break;
20098
            	            				case REGEXP_INTER_TOK:
20099
            	            					{
20100
            	            						alt95=3;
20101
            	            					}
20102
            	            				    break;
20103
            	            				case REGEXP_STAR_TOK:
20104
            	            					{
20105
            	            						alt95=3;
20106
            	            					}
20107
            	            				    break;
20108
            	            				case REGEXP_PLUS_TOK:
20109
            	            					{
20110
            	            						alt95=3;
20111
            	            					}
20112
            	            				    break;
20113
            	            				case REGEXP_OPT_TOK:
20114
            	            					{
20115
            	            						alt95=3;
20116
            	            					}
20117
            	            				    break;
20118
            	            				case REGEXP_RANGE_TOK:
20119
            	            					{
20120
            	            						alt95=3;
20121
            	            					}
20122
            	            				    break;
20123
            	            				case REGEXP_LOOP_TOK:
20124
            	            					{
20125
            	            						alt95=3;
20126
            	            					}
20127
            	            				    break;
20128
            	            				case REGEXP_COMPLEMENT_TOK:
20129
            	            					{
20130
            	            						alt95=3;
20131
            	            					}
20132
            	            				    break;
20133
            	            				case SEQ_UNIT_TOK:
20134
            	            					{
20135
            	            						alt95=3;
20136
            	            					}
20137
            	            				    break;
20138
            	            				case REGEXP_EMPTY_TOK:
20139
            	            					{
20140
            	            						alt95=3;
20141
            	            					}
20142
            	            				    break;
20143
            	            				case REGEXP_SIGMA_TOK:
20144
            	            					{
20145
            	            						alt95=3;
20146
            	            					}
20147
            	            				    break;
20148
            	            				case STRING_LITERAL:
20149
            	            					{
20150
            	            						alt95=3;
20151
            	            					}
20152
            	            				    break;
20153
            	            				case SETS_CARD_TOK:
20154
            	            					{
20155
            	            						alt95=3;
20156
            	            					}
20157
            	            				    break;
20158
            	            				case SETS_CHOOSE_TOK:
20159
            	            					{
20160
            	            						alt95=3;
20161
            	            					}
20162
            	            				    break;
20163
            	            				case IF_TOK:
20164
            	            					{
20165
            	            						alt95=3;
20166
            	            					}
20167
            	            				    break;
20168
            	            				case LPAREN:
20169
            	            					{
20170
            	            						alt95=3;
20171
            	            					}
20172
            	            				    break;
20173
            	            				case PARENHASH:
20174
            	            					{
20175
            	            						alt95=3;
20176
            	            					}
20177
            	            				    break;
20178
            	            				case LBRACE:
20179
            	            					{
20180
            	            						alt95=3;
20181
            	            					}
20182
            	            				    break;
20183
            	            				case UNIVSET_TOK:
20184
            	            					{
20185
            	            						alt95=3;
20186
            	            					}
20187
            	            				    break;
20188
            	            				case BAR:
20189
            	            					{
20190
            	            						alt95=3;
20191
            	            					}
20192
            	            				    break;
20193
            	            				case ARRAY_TOK:
20194
            	            					{
20195
            	            						alt95=3;
20196
            	            					}
20197
            	            				    break;
20198
            	            				case TRUE_TOK:
20199
            	            					{
20200
            	            						alt95=3;
20201
            	            					}
20202
            	            				    break;
20203
            	            				case FALSE_TOK:
20204
            	            					{
20205
            	            						alt95=3;
20206
            	            					}
20207
            	            				    break;
20208
            	            				case DECIMAL_LITERAL:
20209
            	            					{
20210
            	            						alt95=3;
20211
            	            					}
20212
            	            				    break;
20213
            	            				case INTEGER_LITERAL:
20214
            	            					{
20215
            	            						alt95=3;
20216
            	            					}
20217
            	            				    break;
20218
            	            				case HEX_LITERAL:
20219
            	            					{
20220
            	            						alt95=3;
20221
            	            					}
20222
            	            				    break;
20223
            	            				case BINARY_LITERAL:
20224
            	            					{
20225
            	            						alt95=3;
20226
            	            					}
20227
            	            				    break;
20228
            	            				case IDENTIFIER:
20229
            	            					{
20230
            	            						alt95=3;
20231
            	            					}
20232
            	            				    break;
20233
            	            				case FLOOR_TOK:
20234
            	            					{
20235
            	            						alt95=3;
20236
            	            					}
20237
            	            				    break;
20238
            	            				case IS_INTEGER_TOK:
20239
            	            					{
20240
            	            						alt95=3;
20241
            	            					}
20242
            	            				    break;
20243
            	            				case ABS_TOK:
20244
            	            					{
20245
            	            						alt95=3;
20246
            	            					}
20247
            	            				    break;
20248
            	            				case DIVISIBLE_TOK:
20249
            	            					{
20250
            	            						alt95=3;
20251
            	            					}
20252
            	            				    break;
20253
            	            				case DISTINCT_TOK:
20254
            	            					{
20255
            	            						alt95=3;
20256
            	            					}
20257
            	            				    break;
20258
            	            				case NOT_TOK:
20259
            	            					{
20260
            	            						alt95=3;
20261
            	            					}
20262
            	            				    break;
20263
20264
            	            				}
20265
20266
            	            			}
20267
            	            		    break;
20268
            	            		case FORALL_TOK:
20269
            	            			{
20270
            	            				switch ( LA(3) )
20271
            	            				{
20272
            	            				case LPAREN:
20273
            	            					{
20274
            	            						alt95=3;
20275
            	            					}
20276
            	            				    break;
20277
20278
            	            				}
20279
20280
            	            			}
20281
            	            		    break;
20282
            	            		case EXISTS_TOK:
20283
            	            			{
20284
            	            				switch ( LA(3) )
20285
            	            				{
20286
            	            				case LPAREN:
20287
            	            					{
20288
            	            						alt95=3;
20289
            	            					}
20290
            	            				    break;
20291
20292
            	            				}
20293
20294
            	            			}
20295
            	            		    break;
20296
            	            		case LET_TOK:
20297
            	            			{
20298
            	            				switch ( LA(3) )
20299
            	            				{
20300
            	            				case IDENTIFIER:
20301
            	            					{
20302
            	            						alt95=3;
20303
            	            					}
20304
            	            				    break;
20305
20306
            	            				}
20307
20308
            	            			}
20309
            	            		    break;
20310
            	            		case LAMBDA_TOK:
20311
            	            			{
20312
            	            				switch ( LA(3) )
20313
            	            				{
20314
            	            				case LPAREN:
20315
            	            					{
20316
            	            						alt95=3;
20317
            	            					}
20318
            	            				    break;
20319
20320
            	            				}
20321
20322
            	            			}
20323
            	            		    break;
20324
            	            		case MINUS_TOK:
20325
            	            			{
20326
            	            				switch ( LA(3) )
20327
            	            				{
20328
            	            				case BVNEG_TOK:
20329
            	            					{
20330
            	            						alt95=3;
20331
            	            					}
20332
            	            				    break;
20333
            	            				case TRANSPOSE_TOK:
20334
            	            					{
20335
            	            						alt95=3;
20336
            	            					}
20337
            	            				    break;
20338
            	            				case TRANSCLOSURE_TOK:
20339
            	            					{
20340
            	            						alt95=3;
20341
            	            					}
20342
            	            				    break;
20343
            	            				case TUPLE_TOK:
20344
            	            					{
20345
            	            						alt95=3;
20346
            	            					}
20347
            	            				    break;
20348
            	            				case IDEN_TOK:
20349
            	            					{
20350
            	            						alt95=3;
20351
            	            					}
20352
            	            				    break;
20353
            	            				case BVXOR_TOK:
20354
            	            					{
20355
            	            						alt95=3;
20356
            	            					}
20357
            	            				    break;
20358
            	            				case BVNAND_TOK:
20359
            	            					{
20360
            	            						alt95=3;
20361
            	            					}
20362
            	            				    break;
20363
            	            				case BVNOR_TOK:
20364
            	            					{
20365
            	            						alt95=3;
20366
            	            					}
20367
            	            				    break;
20368
            	            				case BVCOMP_TOK:
20369
            	            					{
20370
            	            						alt95=3;
20371
            	            					}
20372
            	            				    break;
20373
            	            				case BVXNOR_TOK:
20374
            	            					{
20375
            	            						alt95=3;
20376
            	            					}
20377
            	            				    break;
20378
            	            				case BVUMINUS_TOK:
20379
            	            					{
20380
            	            						alt95=3;
20381
            	            					}
20382
            	            				    break;
20383
            	            				case BVPLUS_TOK:
20384
            	            					{
20385
            	            						alt95=3;
20386
            	            					}
20387
            	            				    break;
20388
            	            				case BVSUB_TOK:
20389
            	            					{
20390
            	            						alt95=3;
20391
            	            					}
20392
            	            				    break;
20393
            	            				case BVMULT_TOK:
20394
            	            					{
20395
            	            						alt95=3;
20396
            	            					}
20397
            	            				    break;
20398
            	            				case BVUDIV_TOK:
20399
            	            					{
20400
            	            						alt95=3;
20401
            	            					}
20402
            	            				    break;
20403
            	            				case BVSDIV_TOK:
20404
            	            					{
20405
            	            						alt95=3;
20406
            	            					}
20407
            	            				    break;
20408
            	            				case BVUREM_TOK:
20409
            	            					{
20410
            	            						alt95=3;
20411
            	            					}
20412
            	            				    break;
20413
            	            				case BVSREM_TOK:
20414
            	            					{
20415
            	            						alt95=3;
20416
            	            					}
20417
            	            				    break;
20418
            	            				case BVSMOD_TOK:
20419
            	            					{
20420
            	            						alt95=3;
20421
            	            					}
20422
            	            				    break;
20423
            	            				case BVSHL_TOK:
20424
            	            					{
20425
            	            						alt95=3;
20426
            	            					}
20427
            	            				    break;
20428
            	            				case BVASHR_TOK:
20429
            	            					{
20430
            	            						alt95=3;
20431
            	            					}
20432
            	            				    break;
20433
            	            				case BVLSHR_TOK:
20434
            	            					{
20435
            	            						alt95=3;
20436
            	            					}
20437
            	            				    break;
20438
            	            				case SX_TOK:
20439
            	            					{
20440
            	            						alt95=3;
20441
            	            					}
20442
            	            				    break;
20443
            	            				case BVZEROEXTEND_TOK:
20444
            	            					{
20445
            	            						alt95=3;
20446
            	            					}
20447
            	            				    break;
20448
            	            				case BVREPEAT_TOK:
20449
            	            					{
20450
            	            						alt95=3;
20451
            	            					}
20452
            	            				    break;
20453
            	            				case BVROTR_TOK:
20454
            	            					{
20455
            	            						alt95=3;
20456
            	            					}
20457
            	            				    break;
20458
            	            				case BVROTL_TOK:
20459
            	            					{
20460
            	            						alt95=3;
20461
            	            					}
20462
            	            				    break;
20463
            	            				case BVLT_TOK:
20464
            	            					{
20465
            	            						alt95=3;
20466
            	            					}
20467
            	            				    break;
20468
            	            				case BVLE_TOK:
20469
            	            					{
20470
            	            						alt95=3;
20471
            	            					}
20472
            	            				    break;
20473
            	            				case BVGT_TOK:
20474
            	            					{
20475
            	            						alt95=3;
20476
            	            					}
20477
            	            				    break;
20478
            	            				case BVGE_TOK:
20479
            	            					{
20480
            	            						alt95=3;
20481
            	            					}
20482
            	            				    break;
20483
            	            				case BVSLT_TOK:
20484
            	            					{
20485
            	            						alt95=3;
20486
            	            					}
20487
            	            				    break;
20488
            	            				case BVSLE_TOK:
20489
            	            					{
20490
            	            						alt95=3;
20491
            	            					}
20492
            	            				    break;
20493
            	            				case BVSGT_TOK:
20494
            	            					{
20495
            	            						alt95=3;
20496
            	            					}
20497
            	            				    break;
20498
            	            				case BVSGE_TOK:
20499
            	            					{
20500
            	            						alt95=3;
20501
            	            					}
20502
            	            				    break;
20503
            	            				case STRING_CONCAT_TOK:
20504
            	            					{
20505
            	            						alt95=3;
20506
            	            					}
20507
            	            				    break;
20508
            	            				case STRING_LENGTH_TOK:
20509
            	            					{
20510
            	            						alt95=3;
20511
            	            					}
20512
            	            				    break;
20513
            	            				case STRING_CONTAINS_TOK:
20514
            	            					{
20515
            	            						alt95=3;
20516
            	            					}
20517
            	            				    break;
20518
            	            				case STRING_SUBSTR_TOK:
20519
            	            					{
20520
            	            						alt95=3;
20521
            	            					}
20522
            	            				    break;
20523
            	            				case STRING_CHARAT_TOK:
20524
            	            					{
20525
            	            						alt95=3;
20526
            	            					}
20527
            	            				    break;
20528
            	            				case STRING_INDEXOF_TOK:
20529
            	            					{
20530
            	            						alt95=3;
20531
            	            					}
20532
            	            				    break;
20533
            	            				case STRING_REPLACE_TOK:
20534
            	            					{
20535
            	            						alt95=3;
20536
            	            					}
20537
            	            				    break;
20538
            	            				case STRING_REPLACE_ALL_TOK:
20539
            	            					{
20540
            	            						alt95=3;
20541
            	            					}
20542
            	            				    break;
20543
            	            				case STRING_PREFIXOF_TOK:
20544
            	            					{
20545
            	            						alt95=3;
20546
            	            					}
20547
            	            				    break;
20548
            	            				case STRING_SUFFIXOF_TOK:
20549
            	            					{
20550
            	            						alt95=3;
20551
            	            					}
20552
            	            				    break;
20553
            	            				case STRING_STOI_TOK:
20554
            	            					{
20555
            	            						alt95=3;
20556
            	            					}
20557
            	            				    break;
20558
            	            				case STRING_ITOS_TOK:
20559
            	            					{
20560
            	            						alt95=3;
20561
            	            					}
20562
            	            				    break;
20563
            	            				case STRING_TO_REGEXP_TOK:
20564
            	            					{
20565
            	            						alt95=3;
20566
            	            					}
20567
            	            				    break;
20568
            	            				case STRING_TOLOWER_TOK:
20569
            	            					{
20570
            	            						alt95=3;
20571
            	            					}
20572
            	            				    break;
20573
            	            				case STRING_TOUPPER_TOK:
20574
            	            					{
20575
            	            						alt95=3;
20576
            	            					}
20577
            	            				    break;
20578
            	            				case STRING_REV_TOK:
20579
            	            					{
20580
            	            						alt95=3;
20581
            	            					}
20582
            	            				    break;
20583
            	            				case REGEXP_CONCAT_TOK:
20584
            	            					{
20585
            	            						alt95=3;
20586
            	            					}
20587
            	            				    break;
20588
            	            				case REGEXP_UNION_TOK:
20589
            	            					{
20590
            	            						alt95=3;
20591
            	            					}
20592
            	            				    break;
20593
            	            				case REGEXP_INTER_TOK:
20594
            	            					{
20595
            	            						alt95=3;
20596
            	            					}
20597
            	            				    break;
20598
            	            				case REGEXP_STAR_TOK:
20599
            	            					{
20600
            	            						alt95=3;
20601
            	            					}
20602
            	            				    break;
20603
            	            				case REGEXP_PLUS_TOK:
20604
            	            					{
20605
            	            						alt95=3;
20606
            	            					}
20607
            	            				    break;
20608
            	            				case REGEXP_OPT_TOK:
20609
            	            					{
20610
            	            						alt95=3;
20611
            	            					}
20612
            	            				    break;
20613
            	            				case REGEXP_RANGE_TOK:
20614
            	            					{
20615
            	            						alt95=3;
20616
            	            					}
20617
            	            				    break;
20618
            	            				case REGEXP_LOOP_TOK:
20619
            	            					{
20620
            	            						alt95=3;
20621
            	            					}
20622
            	            				    break;
20623
            	            				case REGEXP_COMPLEMENT_TOK:
20624
            	            					{
20625
            	            						alt95=3;
20626
            	            					}
20627
            	            				    break;
20628
            	            				case SEQ_UNIT_TOK:
20629
            	            					{
20630
            	            						alt95=3;
20631
            	            					}
20632
            	            				    break;
20633
            	            				case REGEXP_EMPTY_TOK:
20634
            	            					{
20635
            	            						alt95=3;
20636
            	            					}
20637
            	            				    break;
20638
            	            				case REGEXP_SIGMA_TOK:
20639
            	            					{
20640
            	            						alt95=3;
20641
            	            					}
20642
            	            				    break;
20643
            	            				case STRING_LITERAL:
20644
            	            					{
20645
            	            						alt95=3;
20646
            	            					}
20647
            	            				    break;
20648
            	            				case SETS_CARD_TOK:
20649
            	            					{
20650
            	            						alt95=3;
20651
            	            					}
20652
            	            				    break;
20653
            	            				case SETS_CHOOSE_TOK:
20654
            	            					{
20655
            	            						alt95=3;
20656
            	            					}
20657
            	            				    break;
20658
            	            				case IF_TOK:
20659
            	            					{
20660
            	            						alt95=3;
20661
            	            					}
20662
            	            				    break;
20663
            	            				case LPAREN:
20664
            	            					{
20665
            	            						alt95=3;
20666
            	            					}
20667
            	            				    break;
20668
            	            				case PARENHASH:
20669
            	            					{
20670
            	            						alt95=3;
20671
            	            					}
20672
            	            				    break;
20673
            	            				case LBRACE:
20674
            	            					{
20675
            	            						alt95=3;
20676
            	            					}
20677
            	            				    break;
20678
            	            				case UNIVSET_TOK:
20679
            	            					{
20680
            	            						alt95=3;
20681
            	            					}
20682
            	            				    break;
20683
            	            				case BAR:
20684
            	            					{
20685
            	            						alt95=3;
20686
            	            					}
20687
            	            				    break;
20688
            	            				case ARRAY_TOK:
20689
            	            					{
20690
            	            						alt95=3;
20691
            	            					}
20692
            	            				    break;
20693
            	            				case TRUE_TOK:
20694
            	            					{
20695
            	            						alt95=3;
20696
            	            					}
20697
            	            				    break;
20698
            	            				case FALSE_TOK:
20699
            	            					{
20700
            	            						alt95=3;
20701
            	            					}
20702
            	            				    break;
20703
            	            				case DECIMAL_LITERAL:
20704
            	            					{
20705
            	            						alt95=3;
20706
            	            					}
20707
            	            				    break;
20708
            	            				case INTEGER_LITERAL:
20709
            	            					{
20710
            	            						alt95=3;
20711
            	            					}
20712
            	            				    break;
20713
            	            				case HEX_LITERAL:
20714
            	            					{
20715
            	            						alt95=3;
20716
            	            					}
20717
            	            				    break;
20718
            	            				case BINARY_LITERAL:
20719
            	            					{
20720
            	            						alt95=3;
20721
            	            					}
20722
            	            				    break;
20723
            	            				case IDENTIFIER:
20724
            	            					{
20725
            	            						alt95=3;
20726
            	            					}
20727
            	            				    break;
20728
            	            				case FLOOR_TOK:
20729
            	            					{
20730
            	            						alt95=3;
20731
            	            					}
20732
            	            				    break;
20733
            	            				case IS_INTEGER_TOK:
20734
            	            					{
20735
            	            						alt95=3;
20736
            	            					}
20737
            	            				    break;
20738
            	            				case ABS_TOK:
20739
            	            					{
20740
            	            						alt95=3;
20741
            	            					}
20742
            	            				    break;
20743
            	            				case DIVISIBLE_TOK:
20744
            	            					{
20745
            	            						alt95=3;
20746
            	            					}
20747
            	            				    break;
20748
            	            				case DISTINCT_TOK:
20749
            	            					{
20750
            	            						alt95=3;
20751
            	            					}
20752
            	            				    break;
20753
            	            				case MINUS_TOK:
20754
            	            					{
20755
            	            						alt95=3;
20756
            	            					}
20757
            	            				    break;
20758
20759
            	            				}
20760
20761
            	            			}
20762
            	            		    break;
20763
            	            		case BVNEG_TOK:
20764
            	            			{
20765
            	            				switch ( LA(3) )
20766
            	            				{
20767
            	            				case BVNEG_TOK:
20768
            	            					{
20769
            	            						alt95=3;
20770
            	            					}
20771
            	            				    break;
20772
            	            				case TRANSPOSE_TOK:
20773
            	            					{
20774
            	            						alt95=3;
20775
            	            					}
20776
            	            				    break;
20777
            	            				case TRANSCLOSURE_TOK:
20778
            	            					{
20779
            	            						alt95=3;
20780
            	            					}
20781
            	            				    break;
20782
            	            				case TUPLE_TOK:
20783
            	            					{
20784
            	            						alt95=3;
20785
            	            					}
20786
            	            				    break;
20787
            	            				case IDEN_TOK:
20788
            	            					{
20789
            	            						alt95=3;
20790
            	            					}
20791
            	            				    break;
20792
            	            				case BVXOR_TOK:
20793
            	            					{
20794
            	            						alt95=3;
20795
            	            					}
20796
            	            				    break;
20797
            	            				case BVNAND_TOK:
20798
            	            					{
20799
            	            						alt95=3;
20800
            	            					}
20801
            	            				    break;
20802
            	            				case BVNOR_TOK:
20803
            	            					{
20804
            	            						alt95=3;
20805
            	            					}
20806
            	            				    break;
20807
            	            				case BVCOMP_TOK:
20808
            	            					{
20809
            	            						alt95=3;
20810
            	            					}
20811
            	            				    break;
20812
            	            				case BVXNOR_TOK:
20813
            	            					{
20814
            	            						alt95=3;
20815
            	            					}
20816
            	            				    break;
20817
            	            				case BVUMINUS_TOK:
20818
            	            					{
20819
            	            						alt95=3;
20820
            	            					}
20821
            	            				    break;
20822
            	            				case BVPLUS_TOK:
20823
            	            					{
20824
            	            						alt95=3;
20825
            	            					}
20826
            	            				    break;
20827
            	            				case BVSUB_TOK:
20828
            	            					{
20829
            	            						alt95=3;
20830
            	            					}
20831
            	            				    break;
20832
            	            				case BVMULT_TOK:
20833
            	            					{
20834
            	            						alt95=3;
20835
            	            					}
20836
            	            				    break;
20837
            	            				case BVUDIV_TOK:
20838
            	            					{
20839
            	            						alt95=3;
20840
            	            					}
20841
            	            				    break;
20842
            	            				case BVSDIV_TOK:
20843
            	            					{
20844
            	            						alt95=3;
20845
            	            					}
20846
            	            				    break;
20847
            	            				case BVUREM_TOK:
20848
            	            					{
20849
            	            						alt95=3;
20850
            	            					}
20851
            	            				    break;
20852
            	            				case BVSREM_TOK:
20853
            	            					{
20854
            	            						alt95=3;
20855
            	            					}
20856
            	            				    break;
20857
            	            				case BVSMOD_TOK:
20858
            	            					{
20859
            	            						alt95=3;
20860
            	            					}
20861
            	            				    break;
20862
            	            				case BVSHL_TOK:
20863
            	            					{
20864
            	            						alt95=3;
20865
            	            					}
20866
            	            				    break;
20867
            	            				case BVASHR_TOK:
20868
            	            					{
20869
            	            						alt95=3;
20870
            	            					}
20871
            	            				    break;
20872
            	            				case BVLSHR_TOK:
20873
            	            					{
20874
            	            						alt95=3;
20875
            	            					}
20876
            	            				    break;
20877
            	            				case SX_TOK:
20878
            	            					{
20879
            	            						alt95=3;
20880
            	            					}
20881
            	            				    break;
20882
            	            				case BVZEROEXTEND_TOK:
20883
            	            					{
20884
            	            						alt95=3;
20885
            	            					}
20886
            	            				    break;
20887
            	            				case BVREPEAT_TOK:
20888
            	            					{
20889
            	            						alt95=3;
20890
            	            					}
20891
            	            				    break;
20892
            	            				case BVROTR_TOK:
20893
            	            					{
20894
            	            						alt95=3;
20895
            	            					}
20896
            	            				    break;
20897
            	            				case BVROTL_TOK:
20898
            	            					{
20899
            	            						alt95=3;
20900
            	            					}
20901
            	            				    break;
20902
            	            				case BVLT_TOK:
20903
            	            					{
20904
            	            						alt95=3;
20905
            	            					}
20906
            	            				    break;
20907
            	            				case BVLE_TOK:
20908
            	            					{
20909
            	            						alt95=3;
20910
            	            					}
20911
            	            				    break;
20912
            	            				case BVGT_TOK:
20913
            	            					{
20914
            	            						alt95=3;
20915
            	            					}
20916
            	            				    break;
20917
            	            				case BVGE_TOK:
20918
            	            					{
20919
            	            						alt95=3;
20920
            	            					}
20921
            	            				    break;
20922
            	            				case BVSLT_TOK:
20923
            	            					{
20924
            	            						alt95=3;
20925
            	            					}
20926
            	            				    break;
20927
            	            				case BVSLE_TOK:
20928
            	            					{
20929
            	            						alt95=3;
20930
            	            					}
20931
            	            				    break;
20932
            	            				case BVSGT_TOK:
20933
            	            					{
20934
            	            						alt95=3;
20935
            	            					}
20936
            	            				    break;
20937
            	            				case BVSGE_TOK:
20938
            	            					{
20939
            	            						alt95=3;
20940
            	            					}
20941
            	            				    break;
20942
            	            				case STRING_CONCAT_TOK:
20943
            	            					{
20944
            	            						alt95=3;
20945
            	            					}
20946
            	            				    break;
20947
            	            				case STRING_LENGTH_TOK:
20948
            	            					{
20949
            	            						alt95=3;
20950
            	            					}
20951
            	            				    break;
20952
            	            				case STRING_CONTAINS_TOK:
20953
            	            					{
20954
            	            						alt95=3;
20955
            	            					}
20956
            	            				    break;
20957
            	            				case STRING_SUBSTR_TOK:
20958
            	            					{
20959
            	            						alt95=3;
20960
            	            					}
20961
            	            				    break;
20962
            	            				case STRING_CHARAT_TOK:
20963
            	            					{
20964
            	            						alt95=3;
20965
            	            					}
20966
            	            				    break;
20967
            	            				case STRING_INDEXOF_TOK:
20968
            	            					{
20969
            	            						alt95=3;
20970
            	            					}
20971
            	            				    break;
20972
            	            				case STRING_REPLACE_TOK:
20973
            	            					{
20974
            	            						alt95=3;
20975
            	            					}
20976
            	            				    break;
20977
            	            				case STRING_REPLACE_ALL_TOK:
20978
            	            					{
20979
            	            						alt95=3;
20980
            	            					}
20981
            	            				    break;
20982
            	            				case STRING_PREFIXOF_TOK:
20983
            	            					{
20984
            	            						alt95=3;
20985
            	            					}
20986
            	            				    break;
20987
            	            				case STRING_SUFFIXOF_TOK:
20988
            	            					{
20989
            	            						alt95=3;
20990
            	            					}
20991
            	            				    break;
20992
            	            				case STRING_STOI_TOK:
20993
            	            					{
20994
            	            						alt95=3;
20995
            	            					}
20996
            	            				    break;
20997
            	            				case STRING_ITOS_TOK:
20998
            	            					{
20999
            	            						alt95=3;
21000
            	            					}
21001
            	            				    break;
21002
            	            				case STRING_TO_REGEXP_TOK:
21003
            	            					{
21004
            	            						alt95=3;
21005
            	            					}
21006
            	            				    break;
21007
            	            				case STRING_TOLOWER_TOK:
21008
            	            					{
21009
            	            						alt95=3;
21010
            	            					}
21011
            	            				    break;
21012
            	            				case STRING_TOUPPER_TOK:
21013
            	            					{
21014
            	            						alt95=3;
21015
            	            					}
21016
            	            				    break;
21017
            	            				case STRING_REV_TOK:
21018
            	            					{
21019
            	            						alt95=3;
21020
            	            					}
21021
            	            				    break;
21022
            	            				case REGEXP_CONCAT_TOK:
21023
            	            					{
21024
            	            						alt95=3;
21025
            	            					}
21026
            	            				    break;
21027
            	            				case REGEXP_UNION_TOK:
21028
            	            					{
21029
            	            						alt95=3;
21030
            	            					}
21031
            	            				    break;
21032
            	            				case REGEXP_INTER_TOK:
21033
            	            					{
21034
            	            						alt95=3;
21035
            	            					}
21036
            	            				    break;
21037
            	            				case REGEXP_STAR_TOK:
21038
            	            					{
21039
            	            						alt95=3;
21040
            	            					}
21041
            	            				    break;
21042
            	            				case REGEXP_PLUS_TOK:
21043
            	            					{
21044
            	            						alt95=3;
21045
            	            					}
21046
            	            				    break;
21047
            	            				case REGEXP_OPT_TOK:
21048
            	            					{
21049
            	            						alt95=3;
21050
            	            					}
21051
            	            				    break;
21052
            	            				case REGEXP_RANGE_TOK:
21053
            	            					{
21054
            	            						alt95=3;
21055
            	            					}
21056
            	            				    break;
21057
            	            				case REGEXP_LOOP_TOK:
21058
            	            					{
21059
            	            						alt95=3;
21060
            	            					}
21061
            	            				    break;
21062
            	            				case REGEXP_COMPLEMENT_TOK:
21063
            	            					{
21064
            	            						alt95=3;
21065
            	            					}
21066
            	            				    break;
21067
            	            				case SEQ_UNIT_TOK:
21068
            	            					{
21069
            	            						alt95=3;
21070
            	            					}
21071
            	            				    break;
21072
            	            				case REGEXP_EMPTY_TOK:
21073
            	            					{
21074
            	            						alt95=3;
21075
            	            					}
21076
            	            				    break;
21077
            	            				case REGEXP_SIGMA_TOK:
21078
            	            					{
21079
            	            						alt95=3;
21080
            	            					}
21081
            	            				    break;
21082
            	            				case STRING_LITERAL:
21083
            	            					{
21084
            	            						alt95=3;
21085
            	            					}
21086
            	            				    break;
21087
            	            				case SETS_CARD_TOK:
21088
            	            					{
21089
            	            						alt95=3;
21090
            	            					}
21091
            	            				    break;
21092
            	            				case SETS_CHOOSE_TOK:
21093
            	            					{
21094
            	            						alt95=3;
21095
            	            					}
21096
            	            				    break;
21097
            	            				case IF_TOK:
21098
            	            					{
21099
            	            						alt95=3;
21100
            	            					}
21101
            	            				    break;
21102
            	            				case LPAREN:
21103
            	            					{
21104
            	            						alt95=3;
21105
            	            					}
21106
            	            				    break;
21107
            	            				case PARENHASH:
21108
            	            					{
21109
            	            						alt95=3;
21110
            	            					}
21111
            	            				    break;
21112
            	            				case LBRACE:
21113
            	            					{
21114
            	            						alt95=3;
21115
            	            					}
21116
            	            				    break;
21117
            	            				case UNIVSET_TOK:
21118
            	            					{
21119
            	            						alt95=3;
21120
            	            					}
21121
            	            				    break;
21122
            	            				case BAR:
21123
            	            					{
21124
            	            						alt95=3;
21125
            	            					}
21126
            	            				    break;
21127
            	            				case ARRAY_TOK:
21128
            	            					{
21129
            	            						alt95=3;
21130
            	            					}
21131
            	            				    break;
21132
            	            				case TRUE_TOK:
21133
            	            					{
21134
            	            						alt95=3;
21135
            	            					}
21136
            	            				    break;
21137
            	            				case FALSE_TOK:
21138
            	            					{
21139
            	            						alt95=3;
21140
            	            					}
21141
            	            				    break;
21142
            	            				case DECIMAL_LITERAL:
21143
            	            					{
21144
            	            						alt95=3;
21145
            	            					}
21146
            	            				    break;
21147
            	            				case INTEGER_LITERAL:
21148
            	            					{
21149
            	            						alt95=3;
21150
            	            					}
21151
            	            				    break;
21152
            	            				case HEX_LITERAL:
21153
            	            					{
21154
            	            						alt95=3;
21155
            	            					}
21156
            	            				    break;
21157
            	            				case BINARY_LITERAL:
21158
            	            					{
21159
            	            						alt95=3;
21160
            	            					}
21161
            	            				    break;
21162
            	            				case IDENTIFIER:
21163
            	            					{
21164
            	            						alt95=3;
21165
            	            					}
21166
            	            				    break;
21167
            	            				case FLOOR_TOK:
21168
            	            					{
21169
            	            						alt95=3;
21170
            	            					}
21171
            	            				    break;
21172
            	            				case IS_INTEGER_TOK:
21173
            	            					{
21174
            	            						alt95=3;
21175
            	            					}
21176
            	            				    break;
21177
            	            				case ABS_TOK:
21178
            	            					{
21179
            	            						alt95=3;
21180
            	            					}
21181
            	            				    break;
21182
            	            				case DIVISIBLE_TOK:
21183
            	            					{
21184
            	            						alt95=3;
21185
            	            					}
21186
            	            				    break;
21187
            	            				case DISTINCT_TOK:
21188
            	            					{
21189
            	            						alt95=3;
21190
            	            					}
21191
            	            				    break;
21192
21193
            	            				}
21194
21195
            	            			}
21196
            	            		    break;
21197
            	            		case TRANSPOSE_TOK:
21198
            	            			{
21199
            	            				switch ( LA(3) )
21200
            	            				{
21201
            	            				case LPAREN:
21202
            	            					{
21203
            	            						alt95=3;
21204
            	            					}
21205
            	            				    break;
21206
21207
            	            				}
21208
21209
            	            			}
21210
            	            		    break;
21211
            	            		case TRANSCLOSURE_TOK:
21212
            	            			{
21213
            	            				switch ( LA(3) )
21214
            	            				{
21215
            	            				case LPAREN:
21216
            	            					{
21217
            	            						alt95=3;
21218
            	            					}
21219
            	            				    break;
21220
21221
            	            				}
21222
21223
            	            			}
21224
            	            		    break;
21225
            	            		case TUPLE_TOK:
21226
            	            			{
21227
            	            				switch ( LA(3) )
21228
            	            				{
21229
            	            				case LPAREN:
21230
            	            					{
21231
            	            						alt95=3;
21232
            	            					}
21233
            	            				    break;
21234
21235
            	            				}
21236
21237
            	            			}
21238
            	            		    break;
21239
            	            		case IDEN_TOK:
21240
            	            			{
21241
            	            				switch ( LA(3) )
21242
            	            				{
21243
            	            				case LPAREN:
21244
            	            					{
21245
            	            						alt95=3;
21246
            	            					}
21247
            	            				    break;
21248
21249
            	            				}
21250
21251
            	            			}
21252
            	            		    break;
21253
            	            		case BVXOR_TOK:
21254
            	            			{
21255
            	            				switch ( LA(3) )
21256
            	            				{
21257
            	            				case LPAREN:
21258
            	            					{
21259
            	            						alt95=3;
21260
            	            					}
21261
            	            				    break;
21262
21263
            	            				}
21264
21265
            	            			}
21266
            	            		    break;
21267
            	            		case BVNAND_TOK:
21268
            	            			{
21269
            	            				switch ( LA(3) )
21270
            	            				{
21271
            	            				case LPAREN:
21272
            	            					{
21273
            	            						alt95=3;
21274
            	            					}
21275
            	            				    break;
21276
21277
            	            				}
21278
21279
            	            			}
21280
            	            		    break;
21281
            	            		case BVNOR_TOK:
21282
            	            			{
21283
            	            				switch ( LA(3) )
21284
            	            				{
21285
            	            				case LPAREN:
21286
            	            					{
21287
            	            						alt95=3;
21288
            	            					}
21289
            	            				    break;
21290
21291
            	            				}
21292
21293
            	            			}
21294
            	            		    break;
21295
            	            		case BVCOMP_TOK:
21296
            	            			{
21297
            	            				switch ( LA(3) )
21298
            	            				{
21299
            	            				case LPAREN:
21300
            	            					{
21301
            	            						alt95=3;
21302
            	            					}
21303
            	            				    break;
21304
21305
            	            				}
21306
21307
            	            			}
21308
            	            		    break;
21309
            	            		case BVXNOR_TOK:
21310
            	            			{
21311
            	            				switch ( LA(3) )
21312
            	            				{
21313
            	            				case LPAREN:
21314
            	            					{
21315
            	            						alt95=3;
21316
            	            					}
21317
            	            				    break;
21318
21319
            	            				}
21320
21321
            	            			}
21322
            	            		    break;
21323
            	            		case BVUMINUS_TOK:
21324
            	            			{
21325
            	            				switch ( LA(3) )
21326
            	            				{
21327
            	            				case LPAREN:
21328
            	            					{
21329
            	            						alt95=3;
21330
            	            					}
21331
            	            				    break;
21332
21333
            	            				}
21334
21335
            	            			}
21336
            	            		    break;
21337
            	            		case BVPLUS_TOK:
21338
            	            			{
21339
            	            				switch ( LA(3) )
21340
            	            				{
21341
            	            				case LPAREN:
21342
            	            					{
21343
            	            						alt95=3;
21344
            	            					}
21345
            	            				    break;
21346
21347
            	            				}
21348
21349
            	            			}
21350
            	            		    break;
21351
            	            		case BVSUB_TOK:
21352
            	            			{
21353
            	            				switch ( LA(3) )
21354
            	            				{
21355
            	            				case LPAREN:
21356
            	            					{
21357
            	            						alt95=3;
21358
            	            					}
21359
            	            				    break;
21360
21361
            	            				}
21362
21363
            	            			}
21364
            	            		    break;
21365
            	            		case BVMULT_TOK:
21366
            	            			{
21367
            	            				switch ( LA(3) )
21368
            	            				{
21369
            	            				case LPAREN:
21370
            	            					{
21371
            	            						alt95=3;
21372
            	            					}
21373
            	            				    break;
21374
21375
            	            				}
21376
21377
            	            			}
21378
            	            		    break;
21379
            	            		case BVUDIV_TOK:
21380
            	            			{
21381
            	            				switch ( LA(3) )
21382
            	            				{
21383
            	            				case LPAREN:
21384
            	            					{
21385
            	            						alt95=3;
21386
            	            					}
21387
            	            				    break;
21388
21389
            	            				}
21390
21391
            	            			}
21392
            	            		    break;
21393
            	            		case BVSDIV_TOK:
21394
            	            			{
21395
            	            				switch ( LA(3) )
21396
            	            				{
21397
            	            				case LPAREN:
21398
            	            					{
21399
            	            						alt95=3;
21400
            	            					}
21401
            	            				    break;
21402
21403
            	            				}
21404
21405
            	            			}
21406
            	            		    break;
21407
            	            		case BVUREM_TOK:
21408
            	            			{
21409
            	            				switch ( LA(3) )
21410
            	            				{
21411
            	            				case LPAREN:
21412
            	            					{
21413
            	            						alt95=3;
21414
            	            					}
21415
            	            				    break;
21416
21417
            	            				}
21418
21419
            	            			}
21420
            	            		    break;
21421
            	            		case BVSREM_TOK:
21422
            	            			{
21423
            	            				switch ( LA(3) )
21424
            	            				{
21425
            	            				case LPAREN:
21426
            	            					{
21427
            	            						alt95=3;
21428
            	            					}
21429
            	            				    break;
21430
21431
            	            				}
21432
21433
            	            			}
21434
            	            		    break;
21435
            	            		case BVSMOD_TOK:
21436
            	            			{
21437
            	            				switch ( LA(3) )
21438
            	            				{
21439
            	            				case LPAREN:
21440
            	            					{
21441
            	            						alt95=3;
21442
            	            					}
21443
            	            				    break;
21444
21445
            	            				}
21446
21447
            	            			}
21448
            	            		    break;
21449
            	            		case BVSHL_TOK:
21450
            	            			{
21451
            	            				switch ( LA(3) )
21452
            	            				{
21453
            	            				case LPAREN:
21454
            	            					{
21455
            	            						alt95=3;
21456
            	            					}
21457
            	            				    break;
21458
21459
            	            				}
21460
21461
            	            			}
21462
            	            		    break;
21463
            	            		case BVASHR_TOK:
21464
            	            			{
21465
            	            				switch ( LA(3) )
21466
            	            				{
21467
            	            				case LPAREN:
21468
            	            					{
21469
            	            						alt95=3;
21470
            	            					}
21471
            	            				    break;
21472
21473
            	            				}
21474
21475
            	            			}
21476
            	            		    break;
21477
            	            		case BVLSHR_TOK:
21478
            	            			{
21479
            	            				switch ( LA(3) )
21480
            	            				{
21481
            	            				case LPAREN:
21482
            	            					{
21483
            	            						alt95=3;
21484
            	            					}
21485
            	            				    break;
21486
21487
            	            				}
21488
21489
            	            			}
21490
            	            		    break;
21491
            	            		case SX_TOK:
21492
            	            			{
21493
            	            				switch ( LA(3) )
21494
            	            				{
21495
            	            				case LPAREN:
21496
            	            					{
21497
            	            						alt95=3;
21498
            	            					}
21499
            	            				    break;
21500
21501
            	            				}
21502
21503
            	            			}
21504
            	            		    break;
21505
            	            		case BVZEROEXTEND_TOK:
21506
            	            			{
21507
            	            				switch ( LA(3) )
21508
            	            				{
21509
            	            				case LPAREN:
21510
            	            					{
21511
            	            						alt95=3;
21512
            	            					}
21513
            	            				    break;
21514
21515
            	            				}
21516
21517
            	            			}
21518
            	            		    break;
21519
            	            		case BVREPEAT_TOK:
21520
            	            			{
21521
            	            				switch ( LA(3) )
21522
            	            				{
21523
            	            				case LPAREN:
21524
            	            					{
21525
            	            						alt95=3;
21526
            	            					}
21527
            	            				    break;
21528
21529
            	            				}
21530
21531
            	            			}
21532
            	            		    break;
21533
            	            		case BVROTR_TOK:
21534
            	            			{
21535
            	            				switch ( LA(3) )
21536
            	            				{
21537
            	            				case LPAREN:
21538
            	            					{
21539
            	            						alt95=3;
21540
            	            					}
21541
            	            				    break;
21542
21543
            	            				}
21544
21545
            	            			}
21546
            	            		    break;
21547
            	            		case BVROTL_TOK:
21548
            	            			{
21549
            	            				switch ( LA(3) )
21550
            	            				{
21551
            	            				case LPAREN:
21552
            	            					{
21553
            	            						alt95=3;
21554
            	            					}
21555
            	            				    break;
21556
21557
            	            				}
21558
21559
            	            			}
21560
            	            		    break;
21561
            	            		case BVLT_TOK:
21562
            	            			{
21563
            	            				switch ( LA(3) )
21564
            	            				{
21565
            	            				case LPAREN:
21566
            	            					{
21567
            	            						alt95=3;
21568
            	            					}
21569
            	            				    break;
21570
21571
            	            				}
21572
21573
            	            			}
21574
            	            		    break;
21575
            	            		case BVLE_TOK:
21576
            	            			{
21577
            	            				switch ( LA(3) )
21578
            	            				{
21579
            	            				case LPAREN:
21580
            	            					{
21581
            	            						alt95=3;
21582
            	            					}
21583
            	            				    break;
21584
21585
            	            				}
21586
21587
            	            			}
21588
            	            		    break;
21589
            	            		case BVGT_TOK:
21590
            	            			{
21591
            	            				switch ( LA(3) )
21592
            	            				{
21593
            	            				case LPAREN:
21594
            	            					{
21595
            	            						alt95=3;
21596
            	            					}
21597
            	            				    break;
21598
21599
            	            				}
21600
21601
            	            			}
21602
            	            		    break;
21603
            	            		case BVGE_TOK:
21604
            	            			{
21605
            	            				switch ( LA(3) )
21606
            	            				{
21607
            	            				case LPAREN:
21608
            	            					{
21609
            	            						alt95=3;
21610
            	            					}
21611
            	            				    break;
21612
21613
            	            				}
21614
21615
            	            			}
21616
            	            		    break;
21617
            	            		case BVSLT_TOK:
21618
            	            			{
21619
            	            				switch ( LA(3) )
21620
            	            				{
21621
            	            				case LPAREN:
21622
            	            					{
21623
            	            						alt95=3;
21624
            	            					}
21625
            	            				    break;
21626
21627
            	            				}
21628
21629
            	            			}
21630
            	            		    break;
21631
            	            		case BVSLE_TOK:
21632
            	            			{
21633
            	            				switch ( LA(3) )
21634
            	            				{
21635
            	            				case LPAREN:
21636
            	            					{
21637
            	            						alt95=3;
21638
            	            					}
21639
            	            				    break;
21640
21641
            	            				}
21642
21643
            	            			}
21644
            	            		    break;
21645
            	            		case BVSGT_TOK:
21646
            	            			{
21647
            	            				switch ( LA(3) )
21648
            	            				{
21649
            	            				case LPAREN:
21650
            	            					{
21651
            	            						alt95=3;
21652
            	            					}
21653
            	            				    break;
21654
21655
            	            				}
21656
21657
            	            			}
21658
            	            		    break;
21659
            	            		case BVSGE_TOK:
21660
            	            			{
21661
            	            				switch ( LA(3) )
21662
            	            				{
21663
            	            				case LPAREN:
21664
            	            					{
21665
            	            						alt95=3;
21666
            	            					}
21667
            	            				    break;
21668
21669
            	            				}
21670
21671
            	            			}
21672
            	            		    break;
21673
            	            		case STRING_CONCAT_TOK:
21674
            	            			{
21675
            	            				switch ( LA(3) )
21676
            	            				{
21677
            	            				case LPAREN:
21678
            	            					{
21679
            	            						alt95=3;
21680
            	            					}
21681
            	            				    break;
21682
21683
            	            				}
21684
21685
            	            			}
21686
            	            		    break;
21687
            	            		case STRING_LENGTH_TOK:
21688
            	            			{
21689
            	            				switch ( LA(3) )
21690
            	            				{
21691
            	            				case LPAREN:
21692
            	            					{
21693
            	            						alt95=3;
21694
            	            					}
21695
            	            				    break;
21696
21697
            	            				}
21698
21699
            	            			}
21700
            	            		    break;
21701
            	            		case STRING_CONTAINS_TOK:
21702
            	            			{
21703
            	            				switch ( LA(3) )
21704
            	            				{
21705
            	            				case LPAREN:
21706
            	            					{
21707
            	            						alt95=3;
21708
            	            					}
21709
            	            				    break;
21710
21711
            	            				}
21712
21713
            	            			}
21714
            	            		    break;
21715
            	            		case STRING_SUBSTR_TOK:
21716
            	            			{
21717
            	            				switch ( LA(3) )
21718
            	            				{
21719
            	            				case LPAREN:
21720
            	            					{
21721
            	            						alt95=3;
21722
            	            					}
21723
            	            				    break;
21724
21725
            	            				}
21726
21727
            	            			}
21728
            	            		    break;
21729
            	            		case STRING_CHARAT_TOK:
21730
            	            			{
21731
            	            				switch ( LA(3) )
21732
            	            				{
21733
            	            				case LPAREN:
21734
            	            					{
21735
            	            						alt95=3;
21736
            	            					}
21737
            	            				    break;
21738
21739
            	            				}
21740
21741
            	            			}
21742
            	            		    break;
21743
            	            		case STRING_INDEXOF_TOK:
21744
            	            			{
21745
            	            				switch ( LA(3) )
21746
            	            				{
21747
            	            				case LPAREN:
21748
            	            					{
21749
            	            						alt95=3;
21750
            	            					}
21751
            	            				    break;
21752
21753
            	            				}
21754
21755
            	            			}
21756
            	            		    break;
21757
            	            		case STRING_REPLACE_TOK:
21758
            	            			{
21759
            	            				switch ( LA(3) )
21760
            	            				{
21761
            	            				case LPAREN:
21762
            	            					{
21763
            	            						alt95=3;
21764
            	            					}
21765
            	            				    break;
21766
21767
            	            				}
21768
21769
            	            			}
21770
            	            		    break;
21771
            	            		case STRING_REPLACE_ALL_TOK:
21772
            	            			{
21773
            	            				switch ( LA(3) )
21774
            	            				{
21775
            	            				case LPAREN:
21776
            	            					{
21777
            	            						alt95=3;
21778
            	            					}
21779
            	            				    break;
21780
21781
            	            				}
21782
21783
            	            			}
21784
            	            		    break;
21785
            	            		case STRING_PREFIXOF_TOK:
21786
            	            			{
21787
            	            				switch ( LA(3) )
21788
            	            				{
21789
            	            				case LPAREN:
21790
            	            					{
21791
            	            						alt95=3;
21792
            	            					}
21793
            	            				    break;
21794
21795
            	            				}
21796
21797
            	            			}
21798
            	            		    break;
21799
            	            		case STRING_SUFFIXOF_TOK:
21800
            	            			{
21801
            	            				switch ( LA(3) )
21802
            	            				{
21803
            	            				case LPAREN:
21804
            	            					{
21805
            	            						alt95=3;
21806
            	            					}
21807
            	            				    break;
21808
21809
            	            				}
21810
21811
            	            			}
21812
            	            		    break;
21813
            	            		case STRING_STOI_TOK:
21814
            	            			{
21815
            	            				switch ( LA(3) )
21816
            	            				{
21817
            	            				case LPAREN:
21818
            	            					{
21819
            	            						alt95=3;
21820
            	            					}
21821
            	            				    break;
21822
21823
            	            				}
21824
21825
            	            			}
21826
            	            		    break;
21827
            	            		case STRING_ITOS_TOK:
21828
            	            			{
21829
            	            				switch ( LA(3) )
21830
            	            				{
21831
            	            				case LPAREN:
21832
            	            					{
21833
            	            						alt95=3;
21834
            	            					}
21835
            	            				    break;
21836
21837
            	            				}
21838
21839
            	            			}
21840
            	            		    break;
21841
            	            		case STRING_TO_REGEXP_TOK:
21842
            	            			{
21843
            	            				switch ( LA(3) )
21844
            	            				{
21845
            	            				case LPAREN:
21846
            	            					{
21847
            	            						alt95=3;
21848
            	            					}
21849
            	            				    break;
21850
21851
            	            				}
21852
21853
            	            			}
21854
            	            		    break;
21855
            	            		case STRING_TOLOWER_TOK:
21856
            	            			{
21857
            	            				switch ( LA(3) )
21858
            	            				{
21859
            	            				case LPAREN:
21860
            	            					{
21861
            	            						alt95=3;
21862
            	            					}
21863
            	            				    break;
21864
21865
            	            				}
21866
21867
            	            			}
21868
            	            		    break;
21869
            	            		case STRING_TOUPPER_TOK:
21870
            	            			{
21871
            	            				switch ( LA(3) )
21872
            	            				{
21873
            	            				case LPAREN:
21874
            	            					{
21875
            	            						alt95=3;
21876
            	            					}
21877
            	            				    break;
21878
21879
            	            				}
21880
21881
            	            			}
21882
            	            		    break;
21883
            	            		case STRING_REV_TOK:
21884
            	            			{
21885
            	            				switch ( LA(3) )
21886
            	            				{
21887
            	            				case LPAREN:
21888
            	            					{
21889
            	            						alt95=3;
21890
            	            					}
21891
            	            				    break;
21892
21893
            	            				}
21894
21895
            	            			}
21896
            	            		    break;
21897
            	            		case REGEXP_CONCAT_TOK:
21898
            	            			{
21899
            	            				switch ( LA(3) )
21900
            	            				{
21901
            	            				case LPAREN:
21902
            	            					{
21903
            	            						alt95=3;
21904
            	            					}
21905
            	            				    break;
21906
21907
            	            				}
21908
21909
            	            			}
21910
            	            		    break;
21911
            	            		case REGEXP_UNION_TOK:
21912
            	            			{
21913
            	            				switch ( LA(3) )
21914
            	            				{
21915
            	            				case LPAREN:
21916
            	            					{
21917
            	            						alt95=3;
21918
            	            					}
21919
            	            				    break;
21920
21921
            	            				}
21922
21923
            	            			}
21924
            	            		    break;
21925
            	            		case REGEXP_INTER_TOK:
21926
            	            			{
21927
            	            				switch ( LA(3) )
21928
            	            				{
21929
            	            				case LPAREN:
21930
            	            					{
21931
            	            						alt95=3;
21932
            	            					}
21933
            	            				    break;
21934
21935
            	            				}
21936
21937
            	            			}
21938
            	            		    break;
21939
            	            		case REGEXP_STAR_TOK:
21940
            	            			{
21941
            	            				switch ( LA(3) )
21942
            	            				{
21943
            	            				case LPAREN:
21944
            	            					{
21945
            	            						alt95=3;
21946
            	            					}
21947
            	            				    break;
21948
21949
            	            				}
21950
21951
            	            			}
21952
            	            		    break;
21953
            	            		case REGEXP_PLUS_TOK:
21954
            	            			{
21955
            	            				switch ( LA(3) )
21956
            	            				{
21957
            	            				case LPAREN:
21958
            	            					{
21959
            	            						alt95=3;
21960
            	            					}
21961
            	            				    break;
21962
21963
            	            				}
21964
21965
            	            			}
21966
            	            		    break;
21967
            	            		case REGEXP_OPT_TOK:
21968
            	            			{
21969
            	            				switch ( LA(3) )
21970
            	            				{
21971
            	            				case LPAREN:
21972
            	            					{
21973
            	            						alt95=3;
21974
            	            					}
21975
            	            				    break;
21976
21977
            	            				}
21978
21979
            	            			}
21980
            	            		    break;
21981
            	            		case REGEXP_RANGE_TOK:
21982
            	            			{
21983
            	            				switch ( LA(3) )
21984
            	            				{
21985
            	            				case LPAREN:
21986
            	            					{
21987
            	            						alt95=3;
21988
            	            					}
21989
            	            				    break;
21990
21991
            	            				}
21992
21993
            	            			}
21994
            	            		    break;
21995
            	            		case REGEXP_LOOP_TOK:
21996
            	            			{
21997
            	            				switch ( LA(3) )
21998
            	            				{
21999
            	            				case LPAREN:
22000
            	            					{
22001
            	            						alt95=3;
22002
            	            					}
22003
            	            				    break;
22004
22005
            	            				}
22006
22007
            	            			}
22008
            	            		    break;
22009
            	            		case REGEXP_COMPLEMENT_TOK:
22010
            	            			{
22011
            	            				switch ( LA(3) )
22012
            	            				{
22013
            	            				case LPAREN:
22014
            	            					{
22015
            	            						alt95=3;
22016
            	            					}
22017
            	            				    break;
22018
22019
            	            				}
22020
22021
            	            			}
22022
            	            		    break;
22023
            	            		case SEQ_UNIT_TOK:
22024
            	            			{
22025
            	            				switch ( LA(3) )
22026
            	            				{
22027
            	            				case LPAREN:
22028
            	            					{
22029
            	            						alt95=3;
22030
            	            					}
22031
            	            				    break;
22032
22033
            	            				}
22034
22035
            	            			}
22036
            	            		    break;
22037
            	            		case REGEXP_EMPTY_TOK:
22038
            	            			{
22039
            	            				switch ( LA(3) )
22040
            	            				{
22041
            	            				case LBRACKET:
22042
            	            					{
22043
            	            						alt95=3;
22044
            	            					}
22045
            	            				    break;
22046
            	            				case LEFTSHIFT_TOK:
22047
            	            					{
22048
            	            						alt95=3;
22049
            	            					}
22050
            	            				    break;
22051
            	            				case RIGHTSHIFT_TOK:
22052
            	            					{
22053
            	            						alt95=3;
22054
            	            					}
22055
            	            				    break;
22056
            	            				case LPAREN:
22057
            	            					{
22058
            	            						alt95=3;
22059
            	            					}
22060
            	            				    break;
22061
            	            				case DOT:
22062
            	            					{
22063
            	            						alt95=3;
22064
            	            					}
22065
            	            				    break;
22066
            	            				case COLON:
22067
            	            					{
22068
            	            						alt95=3;
22069
            	            					}
22070
            	            				    break;
22071
            	            				case JOIN_IMAGE_TOK:
22072
            	            				case JOIN_TOK:
22073
            	            				case PRODUCT_TOK:
22074
            	            					{
22075
            	            						alt95=3;
22076
            	            					}
22077
            	            				    break;
22078
            	            				case BAR:
22079
            	            				case BVAND_TOK:
22080
            	            				case CONCAT_TOK:
22081
            	            					{
22082
            	            						alt95=3;
22083
            	            					}
22084
            	            				    break;
22085
            	            				case WITH_TOK:
22086
            	            					{
22087
            	            						alt95=3;
22088
            	            					}
22089
            	            				    break;
22090
            	            				case DIV_TOK:
22091
            	            				case EXP_TOK:
22092
            	            				case INTDIV_TOK:
22093
            	            				case MINUS_TOK:
22094
            	            				case MOD_TOK:
22095
            	            				case PLUS_TOK:
22096
            	            				case STAR_TOK:
22097
            	            					{
22098
            	            						alt95=3;
22099
            	            					}
22100
            	            				    break;
22101
            	            				case DISEQUAL_TOK:
22102
            	            				case EQUAL_TOK:
22103
            	            				case FMF_CARD_TOK:
22104
            	            				case GEQ_TOK:
22105
            	            				case GT_TOK:
22106
            	            				case LEQ_TOK:
22107
            	            				case LT_TOK:
22108
            	            				case MEMBER_TOK:
22109
            	            					{
22110
            	            						alt95=3;
22111
            	            					}
22112
            	            				    break;
22113
            	            				case AND_TOK:
22114
            	            				case IFF_TOK:
22115
            	            				case IMPLIES_TOK:
22116
            	            				case OR_TOK:
22117
            	            				case XOR_TOK:
22118
            	            					{
22119
            	            						alt95=3;
22120
            	            					}
22121
            	            				    break;
22122
            	            				case COMMA:
22123
            	            					{
22124
            	            						alt95=3;
22125
            	            					}
22126
            	            				    break;
22127
            	            				case RPAREN:
22128
            	            					{
22129
            	            						alt95=3;
22130
            	            					}
22131
            	            				    break;
22132
22133
            	            				}
22134
22135
            	            			}
22136
            	            		    break;
22137
            	            		case REGEXP_SIGMA_TOK:
22138
            	            			{
22139
            	            				switch ( LA(3) )
22140
            	            				{
22141
            	            				case LBRACKET:
22142
            	            					{
22143
            	            						alt95=3;
22144
            	            					}
22145
            	            				    break;
22146
            	            				case LEFTSHIFT_TOK:
22147
            	            					{
22148
            	            						alt95=3;
22149
            	            					}
22150
            	            				    break;
22151
            	            				case RIGHTSHIFT_TOK:
22152
            	            					{
22153
            	            						alt95=3;
22154
            	            					}
22155
            	            				    break;
22156
            	            				case LPAREN:
22157
            	            					{
22158
            	            						alt95=3;
22159
            	            					}
22160
            	            				    break;
22161
            	            				case DOT:
22162
            	            					{
22163
            	            						alt95=3;
22164
            	            					}
22165
            	            				    break;
22166
            	            				case COLON:
22167
            	            					{
22168
            	            						alt95=3;
22169
            	            					}
22170
            	            				    break;
22171
            	            				case JOIN_IMAGE_TOK:
22172
            	            				case JOIN_TOK:
22173
            	            				case PRODUCT_TOK:
22174
            	            					{
22175
            	            						alt95=3;
22176
            	            					}
22177
            	            				    break;
22178
            	            				case BAR:
22179
            	            				case BVAND_TOK:
22180
            	            				case CONCAT_TOK:
22181
            	            					{
22182
            	            						alt95=3;
22183
            	            					}
22184
            	            				    break;
22185
            	            				case WITH_TOK:
22186
            	            					{
22187
            	            						alt95=3;
22188
            	            					}
22189
            	            				    break;
22190
            	            				case DIV_TOK:
22191
            	            				case EXP_TOK:
22192
            	            				case INTDIV_TOK:
22193
            	            				case MINUS_TOK:
22194
            	            				case MOD_TOK:
22195
            	            				case PLUS_TOK:
22196
            	            				case STAR_TOK:
22197
            	            					{
22198
            	            						alt95=3;
22199
            	            					}
22200
            	            				    break;
22201
            	            				case DISEQUAL_TOK:
22202
            	            				case EQUAL_TOK:
22203
            	            				case FMF_CARD_TOK:
22204
            	            				case GEQ_TOK:
22205
            	            				case GT_TOK:
22206
            	            				case LEQ_TOK:
22207
            	            				case LT_TOK:
22208
            	            				case MEMBER_TOK:
22209
            	            					{
22210
            	            						alt95=3;
22211
            	            					}
22212
            	            				    break;
22213
            	            				case AND_TOK:
22214
            	            				case IFF_TOK:
22215
            	            				case IMPLIES_TOK:
22216
            	            				case OR_TOK:
22217
            	            				case XOR_TOK:
22218
            	            					{
22219
            	            						alt95=3;
22220
            	            					}
22221
            	            				    break;
22222
            	            				case COMMA:
22223
            	            					{
22224
            	            						alt95=3;
22225
            	            					}
22226
            	            				    break;
22227
            	            				case RPAREN:
22228
            	            					{
22229
            	            						alt95=3;
22230
            	            					}
22231
            	            				    break;
22232
22233
            	            				}
22234
22235
            	            			}
22236
            	            		    break;
22237
            	            		case STRING_LITERAL:
22238
            	            			{
22239
            	            				switch ( LA(3) )
22240
            	            				{
22241
            	            				case LBRACKET:
22242
            	            					{
22243
            	            						alt95=3;
22244
            	            					}
22245
            	            				    break;
22246
            	            				case LEFTSHIFT_TOK:
22247
            	            					{
22248
            	            						alt95=3;
22249
            	            					}
22250
            	            				    break;
22251
            	            				case RIGHTSHIFT_TOK:
22252
            	            					{
22253
            	            						alt95=3;
22254
            	            					}
22255
            	            				    break;
22256
            	            				case LPAREN:
22257
            	            					{
22258
            	            						alt95=3;
22259
            	            					}
22260
            	            				    break;
22261
            	            				case DOT:
22262
            	            					{
22263
            	            						alt95=3;
22264
            	            					}
22265
            	            				    break;
22266
            	            				case COLON:
22267
            	            					{
22268
            	            						alt95=3;
22269
            	            					}
22270
            	            				    break;
22271
            	            				case JOIN_IMAGE_TOK:
22272
            	            				case JOIN_TOK:
22273
            	            				case PRODUCT_TOK:
22274
            	            					{
22275
            	            						alt95=3;
22276
            	            					}
22277
            	            				    break;
22278
            	            				case BAR:
22279
            	            				case BVAND_TOK:
22280
            	            				case CONCAT_TOK:
22281
            	            					{
22282
            	            						alt95=3;
22283
            	            					}
22284
            	            				    break;
22285
            	            				case WITH_TOK:
22286
            	            					{
22287
            	            						alt95=3;
22288
            	            					}
22289
            	            				    break;
22290
            	            				case DIV_TOK:
22291
            	            				case EXP_TOK:
22292
            	            				case INTDIV_TOK:
22293
            	            				case MINUS_TOK:
22294
            	            				case MOD_TOK:
22295
            	            				case PLUS_TOK:
22296
            	            				case STAR_TOK:
22297
            	            					{
22298
            	            						alt95=3;
22299
            	            					}
22300
            	            				    break;
22301
            	            				case DISEQUAL_TOK:
22302
            	            				case EQUAL_TOK:
22303
            	            				case FMF_CARD_TOK:
22304
            	            				case GEQ_TOK:
22305
            	            				case GT_TOK:
22306
            	            				case LEQ_TOK:
22307
            	            				case LT_TOK:
22308
            	            				case MEMBER_TOK:
22309
            	            					{
22310
            	            						alt95=3;
22311
            	            					}
22312
            	            				    break;
22313
            	            				case AND_TOK:
22314
            	            				case IFF_TOK:
22315
            	            				case IMPLIES_TOK:
22316
            	            				case OR_TOK:
22317
            	            				case XOR_TOK:
22318
            	            					{
22319
            	            						alt95=3;
22320
            	            					}
22321
            	            				    break;
22322
            	            				case COMMA:
22323
            	            					{
22324
            	            						alt95=3;
22325
            	            					}
22326
            	            				    break;
22327
            	            				case RPAREN:
22328
            	            					{
22329
            	            						alt95=3;
22330
            	            					}
22331
            	            				    break;
22332
22333
            	            				}
22334
22335
            	            			}
22336
            	            		    break;
22337
            	            		case SETS_CARD_TOK:
22338
            	            			{
22339
            	            				switch ( LA(3) )
22340
            	            				{
22341
            	            				case LPAREN:
22342
            	            					{
22343
            	            						alt95=3;
22344
            	            					}
22345
            	            				    break;
22346
22347
            	            				}
22348
22349
            	            			}
22350
            	            		    break;
22351
            	            		case SETS_CHOOSE_TOK:
22352
            	            			{
22353
            	            				switch ( LA(3) )
22354
            	            				{
22355
            	            				case LPAREN:
22356
            	            					{
22357
            	            						alt95=3;
22358
            	            					}
22359
            	            				    break;
22360
22361
            	            				}
22362
22363
            	            			}
22364
            	            		    break;
22365
3
            	            		case IF_TOK:
22366
            	            			{
22367
3
            	            				switch ( LA(3) )
22368
            	            				{
22369
            	            				case NOT_TOK:
22370
            	            					{
22371
            	            						alt95=3;
22372
            	            					}
22373
            	            				    break;
22374
            	            				case FORALL_TOK:
22375
            	            					{
22376
            	            						alt95=3;
22377
            	            					}
22378
            	            				    break;
22379
            	            				case EXISTS_TOK:
22380
            	            					{
22381
            	            						alt95=3;
22382
            	            					}
22383
            	            				    break;
22384
            	            				case LET_TOK:
22385
            	            					{
22386
            	            						alt95=3;
22387
            	            					}
22388
            	            				    break;
22389
            	            				case LAMBDA_TOK:
22390
            	            					{
22391
            	            						alt95=3;
22392
            	            					}
22393
            	            				    break;
22394
            	            				case MINUS_TOK:
22395
            	            					{
22396
            	            						alt95=3;
22397
            	            					}
22398
            	            				    break;
22399
            	            				case BVNEG_TOK:
22400
            	            					{
22401
            	            						alt95=3;
22402
            	            					}
22403
            	            				    break;
22404
            	            				case TRANSPOSE_TOK:
22405
            	            					{
22406
            	            						alt95=3;
22407
            	            					}
22408
            	            				    break;
22409
            	            				case TRANSCLOSURE_TOK:
22410
            	            					{
22411
            	            						alt95=3;
22412
            	            					}
22413
            	            				    break;
22414
            	            				case TUPLE_TOK:
22415
            	            					{
22416
            	            						alt95=3;
22417
            	            					}
22418
            	            				    break;
22419
            	            				case IDEN_TOK:
22420
            	            					{
22421
            	            						alt95=3;
22422
            	            					}
22423
            	            				    break;
22424
            	            				case BVXOR_TOK:
22425
            	            					{
22426
            	            						alt95=3;
22427
            	            					}
22428
            	            				    break;
22429
            	            				case BVNAND_TOK:
22430
            	            					{
22431
            	            						alt95=3;
22432
            	            					}
22433
            	            				    break;
22434
            	            				case BVNOR_TOK:
22435
            	            					{
22436
            	            						alt95=3;
22437
            	            					}
22438
            	            				    break;
22439
            	            				case BVCOMP_TOK:
22440
            	            					{
22441
            	            						alt95=3;
22442
            	            					}
22443
            	            				    break;
22444
            	            				case BVXNOR_TOK:
22445
            	            					{
22446
            	            						alt95=3;
22447
            	            					}
22448
            	            				    break;
22449
            	            				case BVUMINUS_TOK:
22450
            	            					{
22451
            	            						alt95=3;
22452
            	            					}
22453
            	            				    break;
22454
            	            				case BVPLUS_TOK:
22455
            	            					{
22456
            	            						alt95=3;
22457
            	            					}
22458
            	            				    break;
22459
            	            				case BVSUB_TOK:
22460
            	            					{
22461
            	            						alt95=3;
22462
            	            					}
22463
            	            				    break;
22464
            	            				case BVMULT_TOK:
22465
            	            					{
22466
            	            						alt95=3;
22467
            	            					}
22468
            	            				    break;
22469
            	            				case BVUDIV_TOK:
22470
            	            					{
22471
            	            						alt95=3;
22472
            	            					}
22473
            	            				    break;
22474
            	            				case BVSDIV_TOK:
22475
            	            					{
22476
            	            						alt95=3;
22477
            	            					}
22478
            	            				    break;
22479
            	            				case BVUREM_TOK:
22480
            	            					{
22481
            	            						alt95=3;
22482
            	            					}
22483
            	            				    break;
22484
            	            				case BVSREM_TOK:
22485
            	            					{
22486
            	            						alt95=3;
22487
            	            					}
22488
            	            				    break;
22489
            	            				case BVSMOD_TOK:
22490
            	            					{
22491
            	            						alt95=3;
22492
            	            					}
22493
            	            				    break;
22494
            	            				case BVSHL_TOK:
22495
            	            					{
22496
            	            						alt95=3;
22497
            	            					}
22498
            	            				    break;
22499
            	            				case BVASHR_TOK:
22500
            	            					{
22501
            	            						alt95=3;
22502
            	            					}
22503
            	            				    break;
22504
            	            				case BVLSHR_TOK:
22505
            	            					{
22506
            	            						alt95=3;
22507
            	            					}
22508
            	            				    break;
22509
            	            				case SX_TOK:
22510
            	            					{
22511
            	            						alt95=3;
22512
            	            					}
22513
            	            				    break;
22514
            	            				case BVZEROEXTEND_TOK:
22515
            	            					{
22516
            	            						alt95=3;
22517
            	            					}
22518
            	            				    break;
22519
            	            				case BVREPEAT_TOK:
22520
            	            					{
22521
            	            						alt95=3;
22522
            	            					}
22523
            	            				    break;
22524
            	            				case BVROTR_TOK:
22525
            	            					{
22526
            	            						alt95=3;
22527
            	            					}
22528
            	            				    break;
22529
            	            				case BVROTL_TOK:
22530
            	            					{
22531
            	            						alt95=3;
22532
            	            					}
22533
            	            				    break;
22534
            	            				case BVLT_TOK:
22535
            	            					{
22536
            	            						alt95=3;
22537
            	            					}
22538
            	            				    break;
22539
            	            				case BVLE_TOK:
22540
            	            					{
22541
            	            						alt95=3;
22542
            	            					}
22543
            	            				    break;
22544
            	            				case BVGT_TOK:
22545
            	            					{
22546
            	            						alt95=3;
22547
            	            					}
22548
            	            				    break;
22549
            	            				case BVGE_TOK:
22550
            	            					{
22551
            	            						alt95=3;
22552
            	            					}
22553
            	            				    break;
22554
            	            				case BVSLT_TOK:
22555
            	            					{
22556
            	            						alt95=3;
22557
            	            					}
22558
            	            				    break;
22559
            	            				case BVSLE_TOK:
22560
            	            					{
22561
            	            						alt95=3;
22562
            	            					}
22563
            	            				    break;
22564
            	            				case BVSGT_TOK:
22565
            	            					{
22566
            	            						alt95=3;
22567
            	            					}
22568
            	            				    break;
22569
            	            				case BVSGE_TOK:
22570
            	            					{
22571
            	            						alt95=3;
22572
            	            					}
22573
            	            				    break;
22574
            	            				case STRING_CONCAT_TOK:
22575
            	            					{
22576
            	            						alt95=3;
22577
            	            					}
22578
            	            				    break;
22579
            	            				case STRING_LENGTH_TOK:
22580
            	            					{
22581
            	            						alt95=3;
22582
            	            					}
22583
            	            				    break;
22584
            	            				case STRING_CONTAINS_TOK:
22585
            	            					{
22586
            	            						alt95=3;
22587
            	            					}
22588
            	            				    break;
22589
            	            				case STRING_SUBSTR_TOK:
22590
            	            					{
22591
            	            						alt95=3;
22592
            	            					}
22593
            	            				    break;
22594
            	            				case STRING_CHARAT_TOK:
22595
            	            					{
22596
            	            						alt95=3;
22597
            	            					}
22598
            	            				    break;
22599
            	            				case STRING_INDEXOF_TOK:
22600
            	            					{
22601
            	            						alt95=3;
22602
            	            					}
22603
            	            				    break;
22604
            	            				case STRING_REPLACE_TOK:
22605
            	            					{
22606
            	            						alt95=3;
22607
            	            					}
22608
            	            				    break;
22609
            	            				case STRING_REPLACE_ALL_TOK:
22610
            	            					{
22611
            	            						alt95=3;
22612
            	            					}
22613
            	            				    break;
22614
            	            				case STRING_PREFIXOF_TOK:
22615
            	            					{
22616
            	            						alt95=3;
22617
            	            					}
22618
            	            				    break;
22619
            	            				case STRING_SUFFIXOF_TOK:
22620
            	            					{
22621
            	            						alt95=3;
22622
            	            					}
22623
            	            				    break;
22624
            	            				case STRING_STOI_TOK:
22625
            	            					{
22626
            	            						alt95=3;
22627
            	            					}
22628
            	            				    break;
22629
            	            				case STRING_ITOS_TOK:
22630
            	            					{
22631
            	            						alt95=3;
22632
            	            					}
22633
            	            				    break;
22634
            	            				case STRING_TO_REGEXP_TOK:
22635
            	            					{
22636
            	            						alt95=3;
22637
            	            					}
22638
            	            				    break;
22639
            	            				case STRING_TOLOWER_TOK:
22640
            	            					{
22641
            	            						alt95=3;
22642
            	            					}
22643
            	            				    break;
22644
            	            				case STRING_TOUPPER_TOK:
22645
            	            					{
22646
            	            						alt95=3;
22647
            	            					}
22648
            	            				    break;
22649
            	            				case STRING_REV_TOK:
22650
            	            					{
22651
            	            						alt95=3;
22652
            	            					}
22653
            	            				    break;
22654
            	            				case REGEXP_CONCAT_TOK:
22655
            	            					{
22656
            	            						alt95=3;
22657
            	            					}
22658
            	            				    break;
22659
            	            				case REGEXP_UNION_TOK:
22660
            	            					{
22661
            	            						alt95=3;
22662
            	            					}
22663
            	            				    break;
22664
            	            				case REGEXP_INTER_TOK:
22665
            	            					{
22666
            	            						alt95=3;
22667
            	            					}
22668
            	            				    break;
22669
            	            				case REGEXP_STAR_TOK:
22670
            	            					{
22671
            	            						alt95=3;
22672
            	            					}
22673
            	            				    break;
22674
            	            				case REGEXP_PLUS_TOK:
22675
            	            					{
22676
            	            						alt95=3;
22677
            	            					}
22678
            	            				    break;
22679
            	            				case REGEXP_OPT_TOK:
22680
            	            					{
22681
            	            						alt95=3;
22682
            	            					}
22683
            	            				    break;
22684
            	            				case REGEXP_RANGE_TOK:
22685
            	            					{
22686
            	            						alt95=3;
22687
            	            					}
22688
            	            				    break;
22689
            	            				case REGEXP_LOOP_TOK:
22690
            	            					{
22691
            	            						alt95=3;
22692
            	            					}
22693
            	            				    break;
22694
            	            				case REGEXP_COMPLEMENT_TOK:
22695
            	            					{
22696
            	            						alt95=3;
22697
            	            					}
22698
            	            				    break;
22699
            	            				case SEQ_UNIT_TOK:
22700
            	            					{
22701
            	            						alt95=3;
22702
            	            					}
22703
            	            				    break;
22704
            	            				case REGEXP_EMPTY_TOK:
22705
            	            					{
22706
            	            						alt95=3;
22707
            	            					}
22708
            	            				    break;
22709
            	            				case REGEXP_SIGMA_TOK:
22710
            	            					{
22711
            	            						alt95=3;
22712
            	            					}
22713
            	            				    break;
22714
            	            				case STRING_LITERAL:
22715
            	            					{
22716
            	            						alt95=3;
22717
            	            					}
22718
            	            				    break;
22719
            	            				case SETS_CARD_TOK:
22720
            	            					{
22721
            	            						alt95=3;
22722
            	            					}
22723
            	            				    break;
22724
            	            				case SETS_CHOOSE_TOK:
22725
            	            					{
22726
            	            						alt95=3;
22727
            	            					}
22728
            	            				    break;
22729
            	            				case IF_TOK:
22730
            	            					{
22731
            	            						alt95=3;
22732
            	            					}
22733
            	            				    break;
22734
            	            				case LPAREN:
22735
            	            					{
22736
            	            						alt95=3;
22737
            	            					}
22738
            	            				    break;
22739
            	            				case PARENHASH:
22740
            	            					{
22741
            	            						alt95=3;
22742
            	            					}
22743
            	            				    break;
22744
            	            				case LBRACE:
22745
            	            					{
22746
            	            						alt95=3;
22747
            	            					}
22748
            	            				    break;
22749
            	            				case UNIVSET_TOK:
22750
            	            					{
22751
            	            						alt95=3;
22752
            	            					}
22753
            	            				    break;
22754
            	            				case BAR:
22755
            	            					{
22756
            	            						alt95=3;
22757
            	            					}
22758
            	            				    break;
22759
            	            				case ARRAY_TOK:
22760
            	            					{
22761
            	            						alt95=3;
22762
            	            					}
22763
            	            				    break;
22764
            	            				case TRUE_TOK:
22765
            	            					{
22766
            	            						alt95=3;
22767
            	            					}
22768
            	            				    break;
22769
            	            				case FALSE_TOK:
22770
            	            					{
22771
            	            						alt95=3;
22772
            	            					}
22773
            	            				    break;
22774
            	            				case DECIMAL_LITERAL:
22775
            	            					{
22776
            	            						alt95=3;
22777
            	            					}
22778
            	            				    break;
22779
            	            				case INTEGER_LITERAL:
22780
            	            					{
22781
            	            						alt95=3;
22782
            	            					}
22783
            	            				    break;
22784
            	            				case HEX_LITERAL:
22785
            	            					{
22786
            	            						alt95=3;
22787
            	            					}
22788
            	            				    break;
22789
            	            				case BINARY_LITERAL:
22790
            	            					{
22791
            	            						alt95=3;
22792
            	            					}
22793
            	            				    break;
22794
3
            	            				case IDENTIFIER:
22795
            	            					{
22796
3
            	            						alt95=3;
22797
            	            					}
22798
3
            	            				    break;
22799
            	            				case FLOOR_TOK:
22800
            	            					{
22801
            	            						alt95=3;
22802
            	            					}
22803
            	            				    break;
22804
            	            				case IS_INTEGER_TOK:
22805
            	            					{
22806
            	            						alt95=3;
22807
            	            					}
22808
            	            				    break;
22809
            	            				case ABS_TOK:
22810
            	            					{
22811
            	            						alt95=3;
22812
            	            					}
22813
            	            				    break;
22814
            	            				case DIVISIBLE_TOK:
22815
            	            					{
22816
            	            						alt95=3;
22817
            	            					}
22818
            	            				    break;
22819
            	            				case DISTINCT_TOK:
22820
            	            					{
22821
            	            						alt95=3;
22822
            	            					}
22823
            	            				    break;
22824
22825
            	            				}
22826
22827
            	            			}
22828
3
            	            		    break;
22829
75
            	            		case LPAREN:
22830
            	            			{
22831
75
            	            				switch ( LA(3) )
22832
            	            				{
22833
            	            				case RPAREN:
22834
            	            					{
22835
            	            						alt95=3;
22836
            	            					}
22837
            	            				    break;
22838
            	            				case NOT_TOK:
22839
            	            					{
22840
            	            						alt95=3;
22841
            	            					}
22842
            	            				    break;
22843
            	            				case FORALL_TOK:
22844
            	            					{
22845
            	            						alt95=3;
22846
            	            					}
22847
            	            				    break;
22848
            	            				case EXISTS_TOK:
22849
            	            					{
22850
            	            						alt95=3;
22851
            	            					}
22852
            	            				    break;
22853
75
            	            				case LET_TOK:
22854
            	            					{
22855
75
            	            						alt95=3;
22856
            	            					}
22857
75
            	            				    break;
22858
            	            				case LAMBDA_TOK:
22859
            	            					{
22860
            	            						alt95=3;
22861
            	            					}
22862
            	            				    break;
22863
            	            				case MINUS_TOK:
22864
            	            					{
22865
            	            						alt95=3;
22866
            	            					}
22867
            	            				    break;
22868
            	            				case BVNEG_TOK:
22869
            	            					{
22870
            	            						alt95=3;
22871
            	            					}
22872
            	            				    break;
22873
            	            				case TRANSPOSE_TOK:
22874
            	            					{
22875
            	            						alt95=3;
22876
            	            					}
22877
            	            				    break;
22878
            	            				case TRANSCLOSURE_TOK:
22879
            	            					{
22880
            	            						alt95=3;
22881
            	            					}
22882
            	            				    break;
22883
            	            				case TUPLE_TOK:
22884
            	            					{
22885
            	            						alt95=3;
22886
            	            					}
22887
            	            				    break;
22888
            	            				case IDEN_TOK:
22889
            	            					{
22890
            	            						alt95=3;
22891
            	            					}
22892
            	            				    break;
22893
            	            				case BVXOR_TOK:
22894
            	            					{
22895
            	            						alt95=3;
22896
            	            					}
22897
            	            				    break;
22898
            	            				case BVNAND_TOK:
22899
            	            					{
22900
            	            						alt95=3;
22901
            	            					}
22902
            	            				    break;
22903
            	            				case BVNOR_TOK:
22904
            	            					{
22905
            	            						alt95=3;
22906
            	            					}
22907
            	            				    break;
22908
            	            				case BVCOMP_TOK:
22909
            	            					{
22910
            	            						alt95=3;
22911
            	            					}
22912
            	            				    break;
22913
            	            				case BVXNOR_TOK:
22914
            	            					{
22915
            	            						alt95=3;
22916
            	            					}
22917
            	            				    break;
22918
            	            				case BVUMINUS_TOK:
22919
            	            					{
22920
            	            						alt95=3;
22921
            	            					}
22922
            	            				    break;
22923
            	            				case BVPLUS_TOK:
22924
            	            					{
22925
            	            						alt95=3;
22926
            	            					}
22927
            	            				    break;
22928
            	            				case BVSUB_TOK:
22929
            	            					{
22930
            	            						alt95=3;
22931
            	            					}
22932
            	            				    break;
22933
            	            				case BVMULT_TOK:
22934
            	            					{
22935
            	            						alt95=3;
22936
            	            					}
22937
            	            				    break;
22938
            	            				case BVUDIV_TOK:
22939
            	            					{
22940
            	            						alt95=3;
22941
            	            					}
22942
            	            				    break;
22943
            	            				case BVSDIV_TOK:
22944
            	            					{
22945
            	            						alt95=3;
22946
            	            					}
22947
            	            				    break;
22948
            	            				case BVUREM_TOK:
22949
            	            					{
22950
            	            						alt95=3;
22951
            	            					}
22952
            	            				    break;
22953
            	            				case BVSREM_TOK:
22954
            	            					{
22955
            	            						alt95=3;
22956
            	            					}
22957
            	            				    break;
22958
            	            				case BVSMOD_TOK:
22959
            	            					{
22960
            	            						alt95=3;
22961
            	            					}
22962
            	            				    break;
22963
            	            				case BVSHL_TOK:
22964
            	            					{
22965
            	            						alt95=3;
22966
            	            					}
22967
            	            				    break;
22968
            	            				case BVASHR_TOK:
22969
            	            					{
22970
            	            						alt95=3;
22971
            	            					}
22972
            	            				    break;
22973
            	            				case BVLSHR_TOK:
22974
            	            					{
22975
            	            						alt95=3;
22976
            	            					}
22977
            	            				    break;
22978
            	            				case SX_TOK:
22979
            	            					{
22980
            	            						alt95=3;
22981
            	            					}
22982
            	            				    break;
22983
            	            				case BVZEROEXTEND_TOK:
22984
            	            					{
22985
            	            						alt95=3;
22986
            	            					}
22987
            	            				    break;
22988
            	            				case BVREPEAT_TOK:
22989
            	            					{
22990
            	            						alt95=3;
22991
            	            					}
22992
            	            				    break;
22993
            	            				case BVROTR_TOK:
22994
            	            					{
22995
            	            						alt95=3;
22996
            	            					}
22997
            	            				    break;
22998
            	            				case BVROTL_TOK:
22999
            	            					{
23000
            	            						alt95=3;
23001
            	            					}
23002
            	            				    break;
23003
            	            				case BVLT_TOK:
23004
            	            					{
23005
            	            						alt95=3;
23006
            	            					}
23007
            	            				    break;
23008
            	            				case BVLE_TOK:
23009
            	            					{
23010
            	            						alt95=3;
23011
            	            					}
23012
            	            				    break;
23013
            	            				case BVGT_TOK:
23014
            	            					{
23015
            	            						alt95=3;
23016
            	            					}
23017
            	            				    break;
23018
            	            				case BVGE_TOK:
23019
            	            					{
23020
            	            						alt95=3;
23021
            	            					}
23022
            	            				    break;
23023
            	            				case BVSLT_TOK:
23024
            	            					{
23025
            	            						alt95=3;
23026
            	            					}
23027
            	            				    break;
23028
            	            				case BVSLE_TOK:
23029
            	            					{
23030
            	            						alt95=3;
23031
            	            					}
23032
            	            				    break;
23033
            	            				case BVSGT_TOK:
23034
            	            					{
23035
            	            						alt95=3;
23036
            	            					}
23037
            	            				    break;
23038
            	            				case BVSGE_TOK:
23039
            	            					{
23040
            	            						alt95=3;
23041
            	            					}
23042
            	            				    break;
23043
            	            				case STRING_CONCAT_TOK:
23044
            	            					{
23045
            	            						alt95=3;
23046
            	            					}
23047
            	            				    break;
23048
            	            				case STRING_LENGTH_TOK:
23049
            	            					{
23050
            	            						alt95=3;
23051
            	            					}
23052
            	            				    break;
23053
            	            				case STRING_CONTAINS_TOK:
23054
            	            					{
23055
            	            						alt95=3;
23056
            	            					}
23057
            	            				    break;
23058
            	            				case STRING_SUBSTR_TOK:
23059
            	            					{
23060
            	            						alt95=3;
23061
            	            					}
23062
            	            				    break;
23063
            	            				case STRING_CHARAT_TOK:
23064
            	            					{
23065
            	            						alt95=3;
23066
            	            					}
23067
            	            				    break;
23068
            	            				case STRING_INDEXOF_TOK:
23069
            	            					{
23070
            	            						alt95=3;
23071
            	            					}
23072
            	            				    break;
23073
            	            				case STRING_REPLACE_TOK:
23074
            	            					{
23075
            	            						alt95=3;
23076
            	            					}
23077
            	            				    break;
23078
            	            				case STRING_REPLACE_ALL_TOK:
23079
            	            					{
23080
            	            						alt95=3;
23081
            	            					}
23082
            	            				    break;
23083
            	            				case STRING_PREFIXOF_TOK:
23084
            	            					{
23085
            	            						alt95=3;
23086
            	            					}
23087
            	            				    break;
23088
            	            				case STRING_SUFFIXOF_TOK:
23089
            	            					{
23090
            	            						alt95=3;
23091
            	            					}
23092
            	            				    break;
23093
            	            				case STRING_STOI_TOK:
23094
            	            					{
23095
            	            						alt95=3;
23096
            	            					}
23097
            	            				    break;
23098
            	            				case STRING_ITOS_TOK:
23099
            	            					{
23100
            	            						alt95=3;
23101
            	            					}
23102
            	            				    break;
23103
            	            				case STRING_TO_REGEXP_TOK:
23104
            	            					{
23105
            	            						alt95=3;
23106
            	            					}
23107
            	            				    break;
23108
            	            				case STRING_TOLOWER_TOK:
23109
            	            					{
23110
            	            						alt95=3;
23111
            	            					}
23112
            	            				    break;
23113
            	            				case STRING_TOUPPER_TOK:
23114
            	            					{
23115
            	            						alt95=3;
23116
            	            					}
23117
            	            				    break;
23118
            	            				case STRING_REV_TOK:
23119
            	            					{
23120
            	            						alt95=3;
23121
            	            					}
23122
            	            				    break;
23123
            	            				case REGEXP_CONCAT_TOK:
23124
            	            					{
23125
            	            						alt95=3;
23126
            	            					}
23127
            	            				    break;
23128
            	            				case REGEXP_UNION_TOK:
23129
            	            					{
23130
            	            						alt95=3;
23131
            	            					}
23132
            	            				    break;
23133
            	            				case REGEXP_INTER_TOK:
23134
            	            					{
23135
            	            						alt95=3;
23136
            	            					}
23137
            	            				    break;
23138
            	            				case REGEXP_STAR_TOK:
23139
            	            					{
23140
            	            						alt95=3;
23141
            	            					}
23142
            	            				    break;
23143
            	            				case REGEXP_PLUS_TOK:
23144
            	            					{
23145
            	            						alt95=3;
23146
            	            					}
23147
            	            				    break;
23148
            	            				case REGEXP_OPT_TOK:
23149
            	            					{
23150
            	            						alt95=3;
23151
            	            					}
23152
            	            				    break;
23153
            	            				case REGEXP_RANGE_TOK:
23154
            	            					{
23155
            	            						alt95=3;
23156
            	            					}
23157
            	            				    break;
23158
            	            				case REGEXP_LOOP_TOK:
23159
            	            					{
23160
            	            						alt95=3;
23161
            	            					}
23162
            	            				    break;
23163
            	            				case REGEXP_COMPLEMENT_TOK:
23164
            	            					{
23165
            	            						alt95=3;
23166
            	            					}
23167
            	            				    break;
23168
            	            				case SEQ_UNIT_TOK:
23169
            	            					{
23170
            	            						alt95=3;
23171
            	            					}
23172
            	            				    break;
23173
            	            				case REGEXP_EMPTY_TOK:
23174
            	            					{
23175
            	            						alt95=3;
23176
            	            					}
23177
            	            				    break;
23178
            	            				case REGEXP_SIGMA_TOK:
23179
            	            					{
23180
            	            						alt95=3;
23181
            	            					}
23182
            	            				    break;
23183
            	            				case STRING_LITERAL:
23184
            	            					{
23185
            	            						alt95=3;
23186
            	            					}
23187
            	            				    break;
23188
            	            				case SETS_CARD_TOK:
23189
            	            					{
23190
            	            						alt95=3;
23191
            	            					}
23192
            	            				    break;
23193
            	            				case SETS_CHOOSE_TOK:
23194
            	            					{
23195
            	            						alt95=3;
23196
            	            					}
23197
            	            				    break;
23198
            	            				case IF_TOK:
23199
            	            					{
23200
            	            						alt95=3;
23201
            	            					}
23202
            	            				    break;
23203
            	            				case LPAREN:
23204
            	            					{
23205
            	            						alt95=3;
23206
            	            					}
23207
            	            				    break;
23208
            	            				case PARENHASH:
23209
            	            					{
23210
            	            						alt95=3;
23211
            	            					}
23212
            	            				    break;
23213
            	            				case LBRACE:
23214
            	            					{
23215
            	            						alt95=3;
23216
            	            					}
23217
            	            				    break;
23218
            	            				case UNIVSET_TOK:
23219
            	            					{
23220
            	            						alt95=3;
23221
            	            					}
23222
            	            				    break;
23223
            	            				case BAR:
23224
            	            					{
23225
            	            						alt95=3;
23226
            	            					}
23227
            	            				    break;
23228
            	            				case ARRAY_TOK:
23229
            	            					{
23230
            	            						alt95=3;
23231
            	            					}
23232
            	            				    break;
23233
            	            				case TRUE_TOK:
23234
            	            					{
23235
            	            						alt95=3;
23236
            	            					}
23237
            	            				    break;
23238
            	            				case FALSE_TOK:
23239
            	            					{
23240
            	            						alt95=3;
23241
            	            					}
23242
            	            				    break;
23243
            	            				case DECIMAL_LITERAL:
23244
            	            					{
23245
            	            						alt95=3;
23246
            	            					}
23247
            	            				    break;
23248
            	            				case INTEGER_LITERAL:
23249
            	            					{
23250
            	            						alt95=3;
23251
            	            					}
23252
            	            				    break;
23253
            	            				case HEX_LITERAL:
23254
            	            					{
23255
            	            						alt95=3;
23256
            	            					}
23257
            	            				    break;
23258
            	            				case BINARY_LITERAL:
23259
            	            					{
23260
            	            						alt95=3;
23261
            	            					}
23262
            	            				    break;
23263
            	            				case IDENTIFIER:
23264
            	            					{
23265
            	            						alt95=3;
23266
            	            					}
23267
            	            				    break;
23268
            	            				case FLOOR_TOK:
23269
            	            					{
23270
            	            						alt95=3;
23271
            	            					}
23272
            	            				    break;
23273
            	            				case IS_INTEGER_TOK:
23274
            	            					{
23275
            	            						alt95=3;
23276
            	            					}
23277
            	            				    break;
23278
            	            				case ABS_TOK:
23279
            	            					{
23280
            	            						alt95=3;
23281
            	            					}
23282
            	            				    break;
23283
            	            				case DIVISIBLE_TOK:
23284
            	            					{
23285
            	            						alt95=3;
23286
            	            					}
23287
            	            				    break;
23288
            	            				case DISTINCT_TOK:
23289
            	            					{
23290
            	            						alt95=3;
23291
            	            					}
23292
            	            				    break;
23293
23294
            	            				}
23295
23296
            	            			}
23297
75
            	            		    break;
23298
            	            		case PARENHASH:
23299
            	            			{
23300
            	            				switch ( LA(3) )
23301
            	            				{
23302
            	            				case HASHPAREN:
23303
            	            					{
23304
            	            						alt95=3;
23305
            	            					}
23306
            	            				    break;
23307
            	            				case IDENTIFIER:
23308
            	            					{
23309
            	            						alt95=3;
23310
            	            					}
23311
            	            				    break;
23312
23313
            	            				}
23314
23315
            	            			}
23316
            	            		    break;
23317
4
            	            		case LBRACE:
23318
            	            			{
23319
4
            	            				switch ( LA(3) )
23320
            	            				{
23321
            	            				case RBRACE:
23322
            	            					{
23323
            	            						alt95=3;
23324
            	            					}
23325
            	            				    break;
23326
            	            				case NOT_TOK:
23327
            	            					{
23328
            	            						alt95=3;
23329
            	            					}
23330
            	            				    break;
23331
            	            				case FORALL_TOK:
23332
            	            					{
23333
            	            						alt95=3;
23334
            	            					}
23335
            	            				    break;
23336
            	            				case EXISTS_TOK:
23337
            	            					{
23338
            	            						alt95=3;
23339
            	            					}
23340
            	            				    break;
23341
            	            				case LET_TOK:
23342
            	            					{
23343
            	            						alt95=3;
23344
            	            					}
23345
            	            				    break;
23346
            	            				case LAMBDA_TOK:
23347
            	            					{
23348
            	            						alt95=3;
23349
            	            					}
23350
            	            				    break;
23351
            	            				case MINUS_TOK:
23352
            	            					{
23353
            	            						alt95=3;
23354
            	            					}
23355
            	            				    break;
23356
            	            				case BVNEG_TOK:
23357
            	            					{
23358
            	            						alt95=3;
23359
            	            					}
23360
            	            				    break;
23361
            	            				case TRANSPOSE_TOK:
23362
            	            					{
23363
            	            						alt95=3;
23364
            	            					}
23365
            	            				    break;
23366
            	            				case TRANSCLOSURE_TOK:
23367
            	            					{
23368
            	            						alt95=3;
23369
            	            					}
23370
            	            				    break;
23371
2
            	            				case TUPLE_TOK:
23372
            	            					{
23373
2
            	            						alt95=3;
23374
            	            					}
23375
2
            	            				    break;
23376
            	            				case IDEN_TOK:
23377
            	            					{
23378
            	            						alt95=3;
23379
            	            					}
23380
            	            				    break;
23381
            	            				case BVXOR_TOK:
23382
            	            					{
23383
            	            						alt95=3;
23384
            	            					}
23385
            	            				    break;
23386
            	            				case BVNAND_TOK:
23387
            	            					{
23388
            	            						alt95=3;
23389
            	            					}
23390
            	            				    break;
23391
            	            				case BVNOR_TOK:
23392
            	            					{
23393
            	            						alt95=3;
23394
            	            					}
23395
            	            				    break;
23396
            	            				case BVCOMP_TOK:
23397
            	            					{
23398
            	            						alt95=3;
23399
            	            					}
23400
            	            				    break;
23401
            	            				case BVXNOR_TOK:
23402
            	            					{
23403
            	            						alt95=3;
23404
            	            					}
23405
            	            				    break;
23406
            	            				case BVUMINUS_TOK:
23407
            	            					{
23408
            	            						alt95=3;
23409
            	            					}
23410
            	            				    break;
23411
            	            				case BVPLUS_TOK:
23412
            	            					{
23413
            	            						alt95=3;
23414
            	            					}
23415
            	            				    break;
23416
            	            				case BVSUB_TOK:
23417
            	            					{
23418
            	            						alt95=3;
23419
            	            					}
23420
            	            				    break;
23421
            	            				case BVMULT_TOK:
23422
            	            					{
23423
            	            						alt95=3;
23424
            	            					}
23425
            	            				    break;
23426
            	            				case BVUDIV_TOK:
23427
            	            					{
23428
            	            						alt95=3;
23429
            	            					}
23430
            	            				    break;
23431
            	            				case BVSDIV_TOK:
23432
            	            					{
23433
            	            						alt95=3;
23434
            	            					}
23435
            	            				    break;
23436
            	            				case BVUREM_TOK:
23437
            	            					{
23438
            	            						alt95=3;
23439
            	            					}
23440
            	            				    break;
23441
            	            				case BVSREM_TOK:
23442
            	            					{
23443
            	            						alt95=3;
23444
            	            					}
23445
            	            				    break;
23446
            	            				case BVSMOD_TOK:
23447
            	            					{
23448
            	            						alt95=3;
23449
            	            					}
23450
            	            				    break;
23451
            	            				case BVSHL_TOK:
23452
            	            					{
23453
            	            						alt95=3;
23454
            	            					}
23455
            	            				    break;
23456
            	            				case BVASHR_TOK:
23457
            	            					{
23458
            	            						alt95=3;
23459
            	            					}
23460
            	            				    break;
23461
            	            				case BVLSHR_TOK:
23462
            	            					{
23463
            	            						alt95=3;
23464
            	            					}
23465
            	            				    break;
23466
            	            				case SX_TOK:
23467
            	            					{
23468
            	            						alt95=3;
23469
            	            					}
23470
            	            				    break;
23471
            	            				case BVZEROEXTEND_TOK:
23472
            	            					{
23473
            	            						alt95=3;
23474
            	            					}
23475
            	            				    break;
23476
            	            				case BVREPEAT_TOK:
23477
            	            					{
23478
            	            						alt95=3;
23479
            	            					}
23480
            	            				    break;
23481
            	            				case BVROTR_TOK:
23482
            	            					{
23483
            	            						alt95=3;
23484
            	            					}
23485
            	            				    break;
23486
            	            				case BVROTL_TOK:
23487
            	            					{
23488
            	            						alt95=3;
23489
            	            					}
23490
            	            				    break;
23491
            	            				case BVLT_TOK:
23492
            	            					{
23493
            	            						alt95=3;
23494
            	            					}
23495
            	            				    break;
23496
            	            				case BVLE_TOK:
23497
            	            					{
23498
            	            						alt95=3;
23499
            	            					}
23500
            	            				    break;
23501
            	            				case BVGT_TOK:
23502
            	            					{
23503
            	            						alt95=3;
23504
            	            					}
23505
            	            				    break;
23506
            	            				case BVGE_TOK:
23507
            	            					{
23508
            	            						alt95=3;
23509
            	            					}
23510
            	            				    break;
23511
            	            				case BVSLT_TOK:
23512
            	            					{
23513
            	            						alt95=3;
23514
            	            					}
23515
            	            				    break;
23516
            	            				case BVSLE_TOK:
23517
            	            					{
23518
            	            						alt95=3;
23519
            	            					}
23520
            	            				    break;
23521
            	            				case BVSGT_TOK:
23522
            	            					{
23523
            	            						alt95=3;
23524
            	            					}
23525
            	            				    break;
23526
            	            				case BVSGE_TOK:
23527
            	            					{
23528
            	            						alt95=3;
23529
            	            					}
23530
            	            				    break;
23531
            	            				case STRING_CONCAT_TOK:
23532
            	            					{
23533
            	            						alt95=3;
23534
            	            					}
23535
            	            				    break;
23536
            	            				case STRING_LENGTH_TOK:
23537
            	            					{
23538
            	            						alt95=3;
23539
            	            					}
23540
            	            				    break;
23541
            	            				case STRING_CONTAINS_TOK:
23542
            	            					{
23543
            	            						alt95=3;
23544
            	            					}
23545
            	            				    break;
23546
            	            				case STRING_SUBSTR_TOK:
23547
            	            					{
23548
            	            						alt95=3;
23549
            	            					}
23550
            	            				    break;
23551
            	            				case STRING_CHARAT_TOK:
23552
            	            					{
23553
            	            						alt95=3;
23554
            	            					}
23555
            	            				    break;
23556
            	            				case STRING_INDEXOF_TOK:
23557
            	            					{
23558
            	            						alt95=3;
23559
            	            					}
23560
            	            				    break;
23561
            	            				case STRING_REPLACE_TOK:
23562
            	            					{
23563
            	            						alt95=3;
23564
            	            					}
23565
            	            				    break;
23566
            	            				case STRING_REPLACE_ALL_TOK:
23567
            	            					{
23568
            	            						alt95=3;
23569
            	            					}
23570
            	            				    break;
23571
            	            				case STRING_PREFIXOF_TOK:
23572
            	            					{
23573
            	            						alt95=3;
23574
            	            					}
23575
            	            				    break;
23576
            	            				case STRING_SUFFIXOF_TOK:
23577
            	            					{
23578
            	            						alt95=3;
23579
            	            					}
23580
            	            				    break;
23581
            	            				case STRING_STOI_TOK:
23582
            	            					{
23583
            	            						alt95=3;
23584
            	            					}
23585
            	            				    break;
23586
            	            				case STRING_ITOS_TOK:
23587
            	            					{
23588
            	            						alt95=3;
23589
            	            					}
23590
            	            				    break;
23591
            	            				case STRING_TO_REGEXP_TOK:
23592
            	            					{
23593
            	            						alt95=3;
23594
            	            					}
23595
            	            				    break;
23596
            	            				case STRING_TOLOWER_TOK:
23597
            	            					{
23598
            	            						alt95=3;
23599
            	            					}
23600
            	            				    break;
23601
            	            				case STRING_TOUPPER_TOK:
23602
            	            					{
23603
            	            						alt95=3;
23604
            	            					}
23605
            	            				    break;
23606
            	            				case STRING_REV_TOK:
23607
            	            					{
23608
            	            						alt95=3;
23609
            	            					}
23610
            	            				    break;
23611
            	            				case REGEXP_CONCAT_TOK:
23612
            	            					{
23613
            	            						alt95=3;
23614
            	            					}
23615
            	            				    break;
23616
            	            				case REGEXP_UNION_TOK:
23617
            	            					{
23618
            	            						alt95=3;
23619
            	            					}
23620
            	            				    break;
23621
            	            				case REGEXP_INTER_TOK:
23622
            	            					{
23623
            	            						alt95=3;
23624
            	            					}
23625
            	            				    break;
23626
            	            				case REGEXP_STAR_TOK:
23627
            	            					{
23628
            	            						alt95=3;
23629
            	            					}
23630
            	            				    break;
23631
            	            				case REGEXP_PLUS_TOK:
23632
            	            					{
23633
            	            						alt95=3;
23634
            	            					}
23635
            	            				    break;
23636
            	            				case REGEXP_OPT_TOK:
23637
            	            					{
23638
            	            						alt95=3;
23639
            	            					}
23640
            	            				    break;
23641
            	            				case REGEXP_RANGE_TOK:
23642
            	            					{
23643
            	            						alt95=3;
23644
            	            					}
23645
            	            				    break;
23646
            	            				case REGEXP_LOOP_TOK:
23647
            	            					{
23648
            	            						alt95=3;
23649
            	            					}
23650
            	            				    break;
23651
            	            				case REGEXP_COMPLEMENT_TOK:
23652
            	            					{
23653
            	            						alt95=3;
23654
            	            					}
23655
            	            				    break;
23656
            	            				case SEQ_UNIT_TOK:
23657
            	            					{
23658
            	            						alt95=3;
23659
            	            					}
23660
            	            				    break;
23661
            	            				case REGEXP_EMPTY_TOK:
23662
            	            					{
23663
            	            						alt95=3;
23664
            	            					}
23665
            	            				    break;
23666
            	            				case REGEXP_SIGMA_TOK:
23667
            	            					{
23668
            	            						alt95=3;
23669
            	            					}
23670
            	            				    break;
23671
            	            				case STRING_LITERAL:
23672
            	            					{
23673
            	            						alt95=3;
23674
            	            					}
23675
            	            				    break;
23676
            	            				case SETS_CARD_TOK:
23677
            	            					{
23678
            	            						alt95=3;
23679
            	            					}
23680
            	            				    break;
23681
            	            				case SETS_CHOOSE_TOK:
23682
            	            					{
23683
            	            						alt95=3;
23684
            	            					}
23685
            	            				    break;
23686
            	            				case IF_TOK:
23687
            	            					{
23688
            	            						alt95=3;
23689
            	            					}
23690
            	            				    break;
23691
2
            	            				case LPAREN:
23692
            	            					{
23693
2
            	            						alt95=3;
23694
            	            					}
23695
2
            	            				    break;
23696
            	            				case PARENHASH:
23697
            	            					{
23698
            	            						alt95=3;
23699
            	            					}
23700
            	            				    break;
23701
            	            				case LBRACE:
23702
            	            					{
23703
            	            						alt95=3;
23704
            	            					}
23705
            	            				    break;
23706
            	            				case UNIVSET_TOK:
23707
            	            					{
23708
            	            						alt95=3;
23709
            	            					}
23710
            	            				    break;
23711
            	            				case BAR:
23712
            	            					{
23713
            	            						alt95=3;
23714
            	            					}
23715
            	            				    break;
23716
            	            				case ARRAY_TOK:
23717
            	            					{
23718
            	            						alt95=3;
23719
            	            					}
23720
            	            				    break;
23721
            	            				case TRUE_TOK:
23722
            	            					{
23723
            	            						alt95=3;
23724
            	            					}
23725
            	            				    break;
23726
            	            				case FALSE_TOK:
23727
            	            					{
23728
            	            						alt95=3;
23729
            	            					}
23730
            	            				    break;
23731
            	            				case DECIMAL_LITERAL:
23732
            	            					{
23733
            	            						alt95=3;
23734
            	            					}
23735
            	            				    break;
23736
            	            				case INTEGER_LITERAL:
23737
            	            					{
23738
            	            						alt95=3;
23739
            	            					}
23740
            	            				    break;
23741
            	            				case HEX_LITERAL:
23742
            	            					{
23743
            	            						alt95=3;
23744
            	            					}
23745
            	            				    break;
23746
            	            				case BINARY_LITERAL:
23747
            	            					{
23748
            	            						alt95=3;
23749
            	            					}
23750
            	            				    break;
23751
            	            				case IDENTIFIER:
23752
            	            					{
23753
            	            						alt95=3;
23754
            	            					}
23755
            	            				    break;
23756
            	            				case FLOOR_TOK:
23757
            	            					{
23758
            	            						alt95=3;
23759
            	            					}
23760
            	            				    break;
23761
            	            				case IS_INTEGER_TOK:
23762
            	            					{
23763
            	            						alt95=3;
23764
            	            					}
23765
            	            				    break;
23766
            	            				case ABS_TOK:
23767
            	            					{
23768
            	            						alt95=3;
23769
            	            					}
23770
            	            				    break;
23771
            	            				case DIVISIBLE_TOK:
23772
            	            					{
23773
            	            						alt95=3;
23774
            	            					}
23775
            	            				    break;
23776
            	            				case DISTINCT_TOK:
23777
            	            					{
23778
            	            						alt95=3;
23779
            	            					}
23780
            	            				    break;
23781
23782
            	            				}
23783
23784
            	            			}
23785
4
            	            		    break;
23786
            	            		case UNIVSET_TOK:
23787
            	            			{
23788
            	            				switch ( LA(3) )
23789
            	            				{
23790
            	            				case LBRACKET:
23791
            	            					{
23792
            	            						alt95=3;
23793
            	            					}
23794
            	            				    break;
23795
            	            				case LEFTSHIFT_TOK:
23796
            	            					{
23797
            	            						alt95=3;
23798
            	            					}
23799
            	            				    break;
23800
            	            				case RIGHTSHIFT_TOK:
23801
            	            					{
23802
            	            						alt95=3;
23803
            	            					}
23804
            	            				    break;
23805
            	            				case LPAREN:
23806
            	            					{
23807
            	            						alt95=3;
23808
            	            					}
23809
            	            				    break;
23810
            	            				case DOT:
23811
            	            					{
23812
            	            						alt95=3;
23813
            	            					}
23814
            	            				    break;
23815
            	            				case COLON:
23816
            	            					{
23817
            	            						alt95=3;
23818
            	            					}
23819
            	            				    break;
23820
            	            				case JOIN_IMAGE_TOK:
23821
            	            				case JOIN_TOK:
23822
            	            				case PRODUCT_TOK:
23823
            	            					{
23824
            	            						alt95=3;
23825
            	            					}
23826
            	            				    break;
23827
            	            				case BAR:
23828
            	            				case BVAND_TOK:
23829
            	            				case CONCAT_TOK:
23830
            	            					{
23831
            	            						alt95=3;
23832
            	            					}
23833
            	            				    break;
23834
            	            				case WITH_TOK:
23835
            	            					{
23836
            	            						alt95=3;
23837
            	            					}
23838
            	            				    break;
23839
            	            				case DIV_TOK:
23840
            	            				case EXP_TOK:
23841
            	            				case INTDIV_TOK:
23842
            	            				case MINUS_TOK:
23843
            	            				case MOD_TOK:
23844
            	            				case PLUS_TOK:
23845
            	            				case STAR_TOK:
23846
            	            					{
23847
            	            						alt95=3;
23848
            	            					}
23849
            	            				    break;
23850
            	            				case DISEQUAL_TOK:
23851
            	            				case EQUAL_TOK:
23852
            	            				case FMF_CARD_TOK:
23853
            	            				case GEQ_TOK:
23854
            	            				case GT_TOK:
23855
            	            				case LEQ_TOK:
23856
            	            				case LT_TOK:
23857
            	            				case MEMBER_TOK:
23858
            	            					{
23859
            	            						alt95=3;
23860
            	            					}
23861
            	            				    break;
23862
            	            				case AND_TOK:
23863
            	            				case IFF_TOK:
23864
            	            				case IMPLIES_TOK:
23865
            	            				case OR_TOK:
23866
            	            				case XOR_TOK:
23867
            	            					{
23868
            	            						alt95=3;
23869
            	            					}
23870
            	            				    break;
23871
            	            				case COMMA:
23872
            	            					{
23873
            	            						alt95=3;
23874
            	            					}
23875
            	            				    break;
23876
            	            				case RPAREN:
23877
            	            					{
23878
            	            						alt95=3;
23879
            	            					}
23880
            	            				    break;
23881
23882
            	            				}
23883
23884
            	            			}
23885
            	            		    break;
23886
            	            		case BAR:
23887
            	            			{
23888
            	            				switch ( LA(3) )
23889
            	            				{
23890
            	            				case BAR:
23891
            	            					{
23892
            	            						alt95=3;
23893
            	            					}
23894
            	            				    break;
23895
23896
            	            				}
23897
23898
            	            			}
23899
            	            		    break;
23900
            	            		case ARRAY_TOK:
23901
            	            			{
23902
            	            				switch ( LA(3) )
23903
            	            				{
23904
            	            				case LPAREN:
23905
            	            					{
23906
            	            						alt95=3;
23907
            	            					}
23908
            	            				    break;
23909
23910
            	            				}
23911
23912
            	            			}
23913
            	            		    break;
23914
4
            	            		case TRUE_TOK:
23915
            	            			{
23916
4
            	            				switch ( LA(3) )
23917
            	            				{
23918
            	            				case LBRACKET:
23919
            	            					{
23920
            	            						alt95=3;
23921
            	            					}
23922
            	            				    break;
23923
            	            				case LEFTSHIFT_TOK:
23924
            	            					{
23925
            	            						alt95=3;
23926
            	            					}
23927
            	            				    break;
23928
            	            				case RIGHTSHIFT_TOK:
23929
            	            					{
23930
            	            						alt95=3;
23931
            	            					}
23932
            	            				    break;
23933
            	            				case LPAREN:
23934
            	            					{
23935
            	            						alt95=3;
23936
            	            					}
23937
            	            				    break;
23938
            	            				case DOT:
23939
            	            					{
23940
            	            						alt95=3;
23941
            	            					}
23942
            	            				    break;
23943
            	            				case COLON:
23944
            	            					{
23945
            	            						alt95=3;
23946
            	            					}
23947
            	            				    break;
23948
            	            				case JOIN_IMAGE_TOK:
23949
            	            				case JOIN_TOK:
23950
            	            				case PRODUCT_TOK:
23951
            	            					{
23952
            	            						alt95=3;
23953
            	            					}
23954
            	            				    break;
23955
            	            				case BAR:
23956
            	            				case BVAND_TOK:
23957
            	            				case CONCAT_TOK:
23958
            	            					{
23959
            	            						alt95=3;
23960
            	            					}
23961
            	            				    break;
23962
            	            				case WITH_TOK:
23963
            	            					{
23964
            	            						alt95=3;
23965
            	            					}
23966
            	            				    break;
23967
            	            				case DIV_TOK:
23968
            	            				case EXP_TOK:
23969
            	            				case INTDIV_TOK:
23970
            	            				case MINUS_TOK:
23971
            	            				case MOD_TOK:
23972
            	            				case PLUS_TOK:
23973
            	            				case STAR_TOK:
23974
            	            					{
23975
            	            						alt95=3;
23976
            	            					}
23977
            	            				    break;
23978
            	            				case DISEQUAL_TOK:
23979
            	            				case EQUAL_TOK:
23980
            	            				case FMF_CARD_TOK:
23981
            	            				case GEQ_TOK:
23982
            	            				case GT_TOK:
23983
            	            				case LEQ_TOK:
23984
            	            				case LT_TOK:
23985
            	            				case MEMBER_TOK:
23986
            	            					{
23987
            	            						alt95=3;
23988
            	            					}
23989
            	            				    break;
23990
            	            				case AND_TOK:
23991
            	            				case IFF_TOK:
23992
            	            				case IMPLIES_TOK:
23993
            	            				case OR_TOK:
23994
            	            				case XOR_TOK:
23995
            	            					{
23996
            	            						alt95=3;
23997
            	            					}
23998
            	            				    break;
23999
2
            	            				case COMMA:
24000
            	            					{
24001
2
            	            						alt95=3;
24002
            	            					}
24003
2
            	            				    break;
24004
2
            	            				case RPAREN:
24005
            	            					{
24006
2
            	            						alt95=3;
24007
            	            					}
24008
2
            	            				    break;
24009
24010
            	            				}
24011
24012
            	            			}
24013
4
            	            		    break;
24014
2
            	            		case FALSE_TOK:
24015
            	            			{
24016
2
            	            				switch ( LA(3) )
24017
            	            				{
24018
            	            				case LBRACKET:
24019
            	            					{
24020
            	            						alt95=3;
24021
            	            					}
24022
            	            				    break;
24023
            	            				case LEFTSHIFT_TOK:
24024
            	            					{
24025
            	            						alt95=3;
24026
            	            					}
24027
            	            				    break;
24028
            	            				case RIGHTSHIFT_TOK:
24029
            	            					{
24030
            	            						alt95=3;
24031
            	            					}
24032
            	            				    break;
24033
            	            				case LPAREN:
24034
            	            					{
24035
            	            						alt95=3;
24036
            	            					}
24037
            	            				    break;
24038
            	            				case DOT:
24039
            	            					{
24040
            	            						alt95=3;
24041
            	            					}
24042
            	            				    break;
24043
            	            				case COLON:
24044
            	            					{
24045
            	            						alt95=3;
24046
            	            					}
24047
            	            				    break;
24048
            	            				case JOIN_IMAGE_TOK:
24049
            	            				case JOIN_TOK:
24050
            	            				case PRODUCT_TOK:
24051
            	            					{
24052
            	            						alt95=3;
24053
            	            					}
24054
            	            				    break;
24055
            	            				case BAR:
24056
            	            				case BVAND_TOK:
24057
            	            				case CONCAT_TOK:
24058
            	            					{
24059
            	            						alt95=3;
24060
            	            					}
24061
            	            				    break;
24062
            	            				case WITH_TOK:
24063
            	            					{
24064
            	            						alt95=3;
24065
            	            					}
24066
            	            				    break;
24067
            	            				case DIV_TOK:
24068
            	            				case EXP_TOK:
24069
            	            				case INTDIV_TOK:
24070
            	            				case MINUS_TOK:
24071
            	            				case MOD_TOK:
24072
            	            				case PLUS_TOK:
24073
            	            				case STAR_TOK:
24074
            	            					{
24075
            	            						alt95=3;
24076
            	            					}
24077
            	            				    break;
24078
            	            				case DISEQUAL_TOK:
24079
            	            				case EQUAL_TOK:
24080
            	            				case FMF_CARD_TOK:
24081
            	            				case GEQ_TOK:
24082
            	            				case GT_TOK:
24083
            	            				case LEQ_TOK:
24084
            	            				case LT_TOK:
24085
            	            				case MEMBER_TOK:
24086
            	            					{
24087
            	            						alt95=3;
24088
            	            					}
24089
            	            				    break;
24090
            	            				case AND_TOK:
24091
            	            				case IFF_TOK:
24092
            	            				case IMPLIES_TOK:
24093
            	            				case OR_TOK:
24094
            	            				case XOR_TOK:
24095
            	            					{
24096
            	            						alt95=3;
24097
            	            					}
24098
            	            				    break;
24099
            	            				case COMMA:
24100
            	            					{
24101
            	            						alt95=3;
24102
            	            					}
24103
            	            				    break;
24104
2
            	            				case RPAREN:
24105
            	            					{
24106
2
            	            						alt95=3;
24107
            	            					}
24108
2
            	            				    break;
24109
24110
            	            				}
24111
24112
            	            			}
24113
2
            	            		    break;
24114
11
            	            		case DECIMAL_LITERAL:
24115
            	            			{
24116
11
            	            				switch ( LA(3) )
24117
            	            				{
24118
            	            				case LBRACKET:
24119
            	            					{
24120
            	            						alt95=3;
24121
            	            					}
24122
            	            				    break;
24123
            	            				case LEFTSHIFT_TOK:
24124
            	            					{
24125
            	            						alt95=3;
24126
            	            					}
24127
            	            				    break;
24128
            	            				case RIGHTSHIFT_TOK:
24129
            	            					{
24130
            	            						alt95=3;
24131
            	            					}
24132
            	            				    break;
24133
            	            				case LPAREN:
24134
            	            					{
24135
            	            						alt95=3;
24136
            	            					}
24137
            	            				    break;
24138
            	            				case DOT:
24139
            	            					{
24140
            	            						alt95=3;
24141
            	            					}
24142
            	            				    break;
24143
            	            				case COLON:
24144
            	            					{
24145
            	            						alt95=3;
24146
            	            					}
24147
            	            				    break;
24148
            	            				case JOIN_IMAGE_TOK:
24149
            	            				case JOIN_TOK:
24150
            	            				case PRODUCT_TOK:
24151
            	            					{
24152
            	            						alt95=3;
24153
            	            					}
24154
            	            				    break;
24155
            	            				case BAR:
24156
            	            				case BVAND_TOK:
24157
            	            				case CONCAT_TOK:
24158
            	            					{
24159
            	            						alt95=3;
24160
            	            					}
24161
            	            				    break;
24162
            	            				case WITH_TOK:
24163
            	            					{
24164
            	            						alt95=3;
24165
            	            					}
24166
            	            				    break;
24167
            	            				case DIV_TOK:
24168
            	            				case EXP_TOK:
24169
            	            				case INTDIV_TOK:
24170
            	            				case MINUS_TOK:
24171
            	            				case MOD_TOK:
24172
            	            				case PLUS_TOK:
24173
            	            				case STAR_TOK:
24174
            	            					{
24175
            	            						alt95=3;
24176
            	            					}
24177
            	            				    break;
24178
            	            				case DISEQUAL_TOK:
24179
            	            				case EQUAL_TOK:
24180
            	            				case FMF_CARD_TOK:
24181
            	            				case GEQ_TOK:
24182
            	            				case GT_TOK:
24183
            	            				case LEQ_TOK:
24184
            	            				case LT_TOK:
24185
            	            				case MEMBER_TOK:
24186
            	            					{
24187
            	            						alt95=3;
24188
            	            					}
24189
            	            				    break;
24190
            	            				case AND_TOK:
24191
            	            				case IFF_TOK:
24192
            	            				case IMPLIES_TOK:
24193
            	            				case OR_TOK:
24194
            	            				case XOR_TOK:
24195
            	            					{
24196
            	            						alt95=3;
24197
            	            					}
24198
            	            				    break;
24199
8
            	            				case COMMA:
24200
            	            					{
24201
8
            	            						alt95=3;
24202
            	            					}
24203
8
            	            				    break;
24204
3
            	            				case RPAREN:
24205
            	            					{
24206
3
            	            						alt95=3;
24207
            	            					}
24208
3
            	            				    break;
24209
24210
            	            				}
24211
24212
            	            			}
24213
11
            	            		    break;
24214
53
            	            		case INTEGER_LITERAL:
24215
            	            			{
24216
53
            	            				switch ( LA(3) )
24217
            	            				{
24218
            	            				case LBRACKET:
24219
            	            					{
24220
            	            						alt95=3;
24221
            	            					}
24222
            	            				    break;
24223
            	            				case LEFTSHIFT_TOK:
24224
            	            					{
24225
            	            						alt95=3;
24226
            	            					}
24227
            	            				    break;
24228
            	            				case RIGHTSHIFT_TOK:
24229
            	            					{
24230
            	            						alt95=3;
24231
            	            					}
24232
            	            				    break;
24233
            	            				case LPAREN:
24234
            	            					{
24235
            	            						alt95=3;
24236
            	            					}
24237
            	            				    break;
24238
            	            				case DOT:
24239
            	            					{
24240
            	            						alt95=3;
24241
            	            					}
24242
            	            				    break;
24243
            	            				case COLON:
24244
            	            					{
24245
            	            						alt95=3;
24246
            	            					}
24247
            	            				    break;
24248
            	            				case JOIN_IMAGE_TOK:
24249
            	            				case JOIN_TOK:
24250
            	            				case PRODUCT_TOK:
24251
            	            					{
24252
            	            						alt95=3;
24253
            	            					}
24254
            	            				    break;
24255
            	            				case BAR:
24256
            	            				case BVAND_TOK:
24257
            	            				case CONCAT_TOK:
24258
            	            					{
24259
            	            						alt95=3;
24260
            	            					}
24261
            	            				    break;
24262
            	            				case WITH_TOK:
24263
            	            					{
24264
            	            						alt95=3;
24265
            	            					}
24266
            	            				    break;
24267
            	            				case DIV_TOK:
24268
            	            				case EXP_TOK:
24269
            	            				case INTDIV_TOK:
24270
            	            				case MINUS_TOK:
24271
            	            				case MOD_TOK:
24272
            	            				case PLUS_TOK:
24273
            	            				case STAR_TOK:
24274
            	            					{
24275
            	            						alt95=3;
24276
            	            					}
24277
            	            				    break;
24278
            	            				case DISEQUAL_TOK:
24279
            	            				case EQUAL_TOK:
24280
            	            				case FMF_CARD_TOK:
24281
            	            				case GEQ_TOK:
24282
            	            				case GT_TOK:
24283
            	            				case LEQ_TOK:
24284
            	            				case LT_TOK:
24285
            	            				case MEMBER_TOK:
24286
            	            					{
24287
            	            						alt95=3;
24288
            	            					}
24289
            	            				    break;
24290
            	            				case AND_TOK:
24291
            	            				case IFF_TOK:
24292
            	            				case IMPLIES_TOK:
24293
            	            				case OR_TOK:
24294
            	            				case XOR_TOK:
24295
            	            					{
24296
            	            						alt95=3;
24297
            	            					}
24298
            	            				    break;
24299
            	            				case COMMA:
24300
            	            					{
24301
            	            						alt95=3;
24302
            	            					}
24303
            	            				    break;
24304
53
            	            				case RPAREN:
24305
            	            					{
24306
53
            	            						alt95=3;
24307
            	            					}
24308
53
            	            				    break;
24309
24310
            	            				}
24311
24312
            	            			}
24313
53
            	            		    break;
24314
            	            		case HEX_LITERAL:
24315
            	            			{
24316
            	            				switch ( LA(3) )
24317
            	            				{
24318
            	            				case LBRACKET:
24319
            	            					{
24320
            	            						alt95=3;
24321
            	            					}
24322
            	            				    break;
24323
            	            				case LEFTSHIFT_TOK:
24324
            	            					{
24325
            	            						alt95=3;
24326
            	            					}
24327
            	            				    break;
24328
            	            				case RIGHTSHIFT_TOK:
24329
            	            					{
24330
            	            						alt95=3;
24331
            	            					}
24332
            	            				    break;
24333
            	            				case LPAREN:
24334
            	            					{
24335
            	            						alt95=3;
24336
            	            					}
24337
            	            				    break;
24338
            	            				case DOT:
24339
            	            					{
24340
            	            						alt95=3;
24341
            	            					}
24342
            	            				    break;
24343
            	            				case COLON:
24344
            	            					{
24345
            	            						alt95=3;
24346
            	            					}
24347
            	            				    break;
24348
            	            				case JOIN_IMAGE_TOK:
24349
            	            				case JOIN_TOK:
24350
            	            				case PRODUCT_TOK:
24351
            	            					{
24352
            	            						alt95=3;
24353
            	            					}
24354
            	            				    break;
24355
            	            				case BAR:
24356
            	            				case BVAND_TOK:
24357
            	            				case CONCAT_TOK:
24358
            	            					{
24359
            	            						alt95=3;
24360
            	            					}
24361
            	            				    break;
24362
            	            				case WITH_TOK:
24363
            	            					{
24364
            	            						alt95=3;
24365
            	            					}
24366
            	            				    break;
24367
            	            				case DIV_TOK:
24368
            	            				case EXP_TOK:
24369
            	            				case INTDIV_TOK:
24370
            	            				case MINUS_TOK:
24371
            	            				case MOD_TOK:
24372
            	            				case PLUS_TOK:
24373
            	            				case STAR_TOK:
24374
            	            					{
24375
            	            						alt95=3;
24376
            	            					}
24377
            	            				    break;
24378
            	            				case DISEQUAL_TOK:
24379
            	            				case EQUAL_TOK:
24380
            	            				case FMF_CARD_TOK:
24381
            	            				case GEQ_TOK:
24382
            	            				case GT_TOK:
24383
            	            				case LEQ_TOK:
24384
            	            				case LT_TOK:
24385
            	            				case MEMBER_TOK:
24386
            	            					{
24387
            	            						alt95=3;
24388
            	            					}
24389
            	            				    break;
24390
            	            				case AND_TOK:
24391
            	            				case IFF_TOK:
24392
            	            				case IMPLIES_TOK:
24393
            	            				case OR_TOK:
24394
            	            				case XOR_TOK:
24395
            	            					{
24396
            	            						alt95=3;
24397
            	            					}
24398
            	            				    break;
24399
            	            				case COMMA:
24400
            	            					{
24401
            	            						alt95=3;
24402
            	            					}
24403
            	            				    break;
24404
            	            				case RPAREN:
24405
            	            					{
24406
            	            						alt95=3;
24407
            	            					}
24408
            	            				    break;
24409
24410
            	            				}
24411
24412
            	            			}
24413
            	            		    break;
24414
20
            	            		case BINARY_LITERAL:
24415
            	            			{
24416
20
            	            				switch ( LA(3) )
24417
            	            				{
24418
            	            				case LBRACKET:
24419
            	            					{
24420
            	            						alt95=3;
24421
            	            					}
24422
            	            				    break;
24423
            	            				case LEFTSHIFT_TOK:
24424
            	            					{
24425
            	            						alt95=3;
24426
            	            					}
24427
            	            				    break;
24428
            	            				case RIGHTSHIFT_TOK:
24429
            	            					{
24430
            	            						alt95=3;
24431
            	            					}
24432
            	            				    break;
24433
            	            				case LPAREN:
24434
            	            					{
24435
            	            						alt95=3;
24436
            	            					}
24437
            	            				    break;
24438
            	            				case DOT:
24439
            	            					{
24440
            	            						alt95=3;
24441
            	            					}
24442
            	            				    break;
24443
            	            				case COLON:
24444
            	            					{
24445
            	            						alt95=3;
24446
            	            					}
24447
            	            				    break;
24448
            	            				case JOIN_IMAGE_TOK:
24449
            	            				case JOIN_TOK:
24450
            	            				case PRODUCT_TOK:
24451
            	            					{
24452
            	            						alt95=3;
24453
            	            					}
24454
            	            				    break;
24455
            	            				case BAR:
24456
            	            				case BVAND_TOK:
24457
            	            				case CONCAT_TOK:
24458
            	            					{
24459
            	            						alt95=3;
24460
            	            					}
24461
            	            				    break;
24462
            	            				case WITH_TOK:
24463
            	            					{
24464
            	            						alt95=3;
24465
            	            					}
24466
            	            				    break;
24467
            	            				case DIV_TOK:
24468
            	            				case EXP_TOK:
24469
            	            				case INTDIV_TOK:
24470
            	            				case MINUS_TOK:
24471
            	            				case MOD_TOK:
24472
            	            				case PLUS_TOK:
24473
            	            				case STAR_TOK:
24474
            	            					{
24475
            	            						alt95=3;
24476
            	            					}
24477
            	            				    break;
24478
            	            				case DISEQUAL_TOK:
24479
            	            				case EQUAL_TOK:
24480
            	            				case FMF_CARD_TOK:
24481
            	            				case GEQ_TOK:
24482
            	            				case GT_TOK:
24483
            	            				case LEQ_TOK:
24484
            	            				case LT_TOK:
24485
            	            				case MEMBER_TOK:
24486
            	            					{
24487
            	            						alt95=3;
24488
            	            					}
24489
            	            				    break;
24490
            	            				case AND_TOK:
24491
            	            				case IFF_TOK:
24492
            	            				case IMPLIES_TOK:
24493
            	            				case OR_TOK:
24494
            	            				case XOR_TOK:
24495
            	            					{
24496
            	            						alt95=3;
24497
            	            					}
24498
            	            				    break;
24499
12
            	            				case COMMA:
24500
            	            					{
24501
12
            	            						alt95=3;
24502
            	            					}
24503
12
            	            				    break;
24504
8
            	            				case RPAREN:
24505
            	            					{
24506
8
            	            						alt95=3;
24507
            	            					}
24508
8
            	            				    break;
24509
24510
            	            				}
24511
24512
            	            			}
24513
20
            	            		    break;
24514
861
            	            		case IDENTIFIER:
24515
            	            			{
24516
861
            	            				switch ( LA(3) )
24517
            	            				{
24518
            	            				case LBRACKET:
24519
            	            					{
24520
            	            						alt95=3;
24521
            	            					}
24522
            	            				    break;
24523
            	            				case LEFTSHIFT_TOK:
24524
            	            					{
24525
            	            						alt95=3;
24526
            	            					}
24527
            	            				    break;
24528
            	            				case RIGHTSHIFT_TOK:
24529
            	            					{
24530
            	            						alt95=3;
24531
            	            					}
24532
            	            				    break;
24533
125
            	            				case LPAREN:
24534
            	            					{
24535
125
            	            						alt95=3;
24536
            	            					}
24537
125
            	            				    break;
24538
            	            				case DOT:
24539
            	            					{
24540
            	            						alt95=3;
24541
            	            					}
24542
            	            				    break;
24543
            	            				case COLON:
24544
            	            					{
24545
            	            						alt95=3;
24546
            	            					}
24547
            	            				    break;
24548
            	            				case JOIN_IMAGE_TOK:
24549
            	            				case JOIN_TOK:
24550
            	            				case PRODUCT_TOK:
24551
            	            					{
24552
            	            						alt95=3;
24553
            	            					}
24554
            	            				    break;
24555
            	            				case BAR:
24556
            	            				case BVAND_TOK:
24557
            	            				case CONCAT_TOK:
24558
            	            					{
24559
            	            						alt95=3;
24560
            	            					}
24561
            	            				    break;
24562
            	            				case WITH_TOK:
24563
            	            					{
24564
            	            						alt95=3;
24565
            	            					}
24566
            	            				    break;
24567
12
            	            				case DIV_TOK:
24568
            	            				case EXP_TOK:
24569
            	            				case INTDIV_TOK:
24570
            	            				case MINUS_TOK:
24571
            	            				case MOD_TOK:
24572
            	            				case PLUS_TOK:
24573
            	            				case STAR_TOK:
24574
            	            					{
24575
12
            	            						alt95=3;
24576
            	            					}
24577
12
            	            				    break;
24578
            	            				case DISEQUAL_TOK:
24579
            	            				case EQUAL_TOK:
24580
            	            				case FMF_CARD_TOK:
24581
            	            				case GEQ_TOK:
24582
            	            				case GT_TOK:
24583
            	            				case LEQ_TOK:
24584
            	            				case LT_TOK:
24585
            	            				case MEMBER_TOK:
24586
            	            					{
24587
            	            						alt95=3;
24588
            	            					}
24589
            	            				    break;
24590
            	            				case AND_TOK:
24591
            	            				case IFF_TOK:
24592
            	            				case IMPLIES_TOK:
24593
            	            				case OR_TOK:
24594
            	            				case XOR_TOK:
24595
            	            					{
24596
            	            						alt95=3;
24597
            	            					}
24598
            	            				    break;
24599
79
            	            				case COMMA:
24600
            	            					{
24601
79
            	            						alt95=3;
24602
            	            					}
24603
79
            	            				    break;
24604
645
            	            				case RPAREN:
24605
            	            					{
24606
645
            	            						alt95=3;
24607
            	            					}
24608
645
            	            				    break;
24609
24610
            	            				}
24611
24612
            	            			}
24613
861
            	            		    break;
24614
            	            		case FLOOR_TOK:
24615
            	            			{
24616
            	            				switch ( LA(3) )
24617
            	            				{
24618
            	            				case LPAREN:
24619
            	            					{
24620
            	            						alt95=3;
24621
            	            					}
24622
            	            				    break;
24623
24624
            	            				}
24625
24626
            	            			}
24627
            	            		    break;
24628
            	            		case IS_INTEGER_TOK:
24629
            	            			{
24630
            	            				switch ( LA(3) )
24631
            	            				{
24632
            	            				case LPAREN:
24633
            	            					{
24634
            	            						alt95=3;
24635
            	            					}
24636
            	            				    break;
24637
24638
            	            				}
24639
24640
            	            			}
24641
            	            		    break;
24642
            	            		case ABS_TOK:
24643
            	            			{
24644
            	            				switch ( LA(3) )
24645
            	            				{
24646
            	            				case LPAREN:
24647
            	            					{
24648
            	            						alt95=3;
24649
            	            					}
24650
            	            				    break;
24651
24652
            	            				}
24653
24654
            	            			}
24655
            	            		    break;
24656
            	            		case DIVISIBLE_TOK:
24657
            	            			{
24658
            	            				switch ( LA(3) )
24659
            	            				{
24660
            	            				case LPAREN:
24661
            	            					{
24662
            	            						alt95=3;
24663
            	            					}
24664
            	            				    break;
24665
24666
            	            				}
24667
24668
            	            			}
24669
            	            		    break;
24670
            	            		case DISTINCT_TOK:
24671
            	            			{
24672
            	            				switch ( LA(3) )
24673
            	            				{
24674
            	            				case LPAREN:
24675
            	            					{
24676
            	            						alt95=3;
24677
            	            					}
24678
            	            				    break;
24679
24680
            	            				}
24681
24682
            	            			}
24683
            	            		    break;
24684
24685
            	            		}
24686
24687
            	            	}
24688
1033
            	                break;
24689
27
            	            case LEFTSHIFT_TOK:
24690
            	            case RIGHTSHIFT_TOK:
24691
            	            	{
24692
27
            	            		alt95=2;
24693
            	            	}
24694
27
            	                break;
24695
217
            	            case DOT:
24696
            	            	{
24697
217
            	            		alt95=4;
24698
            	            	}
24699
217
            	                break;
24700
24701
            	            }
24702
24703
82270
            	            switch (alt95)
24704
            	            {
24705
194
            	        	case 1:
24706
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1763:7: LBRACKET ( formula[f2] |k1= numeral COLON k2= numeral ) RBRACKET
24707
            	        	    {
24708
194
            	        	         MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_postfixTerm5763);
24709
194
            	        	        if  (HASEXCEPTION())
24710
            	        	        {
24711
            	        	            goto rulepostfixTermEx;
24712
            	        	        }
24713
194
            	        	        if (HASFAILED())
24714
            	        	        {
24715
            	        	            return ;
24716
            	        	        }
24717
24718
24719
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1764:9: ( formula[f2] |k1= numeral COLON k2= numeral )
24720
            	        	        {
24721
194
            	        	            int alt91=2;
24722
194
            	        	            switch ( LA(1) )
24723
            	        	            {
24724
53
            	        	            case ABS_TOK:
24725
            	        	            case ARRAY_TOK:
24726
            	        	            case BAR:
24727
            	        	            case BINARY_LITERAL:
24728
            	        	            case BVASHR_TOK:
24729
            	        	            case BVCOMP_TOK:
24730
            	        	            case BVGE_TOK:
24731
            	        	            case BVGT_TOK:
24732
            	        	            case BVLE_TOK:
24733
            	        	            case BVLSHR_TOK:
24734
            	        	            case BVLT_TOK:
24735
            	        	            case BVMULT_TOK:
24736
            	        	            case BVNAND_TOK:
24737
            	        	            case BVNEG_TOK:
24738
            	        	            case BVNOR_TOK:
24739
            	        	            case BVPLUS_TOK:
24740
            	        	            case BVREPEAT_TOK:
24741
            	        	            case BVROTL_TOK:
24742
            	        	            case BVROTR_TOK:
24743
            	        	            case BVSDIV_TOK:
24744
            	        	            case BVSGE_TOK:
24745
            	        	            case BVSGT_TOK:
24746
            	        	            case BVSHL_TOK:
24747
            	        	            case BVSLE_TOK:
24748
            	        	            case BVSLT_TOK:
24749
            	        	            case BVSMOD_TOK:
24750
            	        	            case BVSREM_TOK:
24751
            	        	            case BVSUB_TOK:
24752
            	        	            case BVUDIV_TOK:
24753
            	        	            case BVUMINUS_TOK:
24754
            	        	            case BVUREM_TOK:
24755
            	        	            case BVXNOR_TOK:
24756
            	        	            case BVXOR_TOK:
24757
            	        	            case BVZEROEXTEND_TOK:
24758
            	        	            case DECIMAL_LITERAL:
24759
            	        	            case DISTINCT_TOK:
24760
            	        	            case DIVISIBLE_TOK:
24761
            	        	            case EXISTS_TOK:
24762
            	        	            case FALSE_TOK:
24763
            	        	            case FLOOR_TOK:
24764
            	        	            case FORALL_TOK:
24765
            	        	            case HEX_LITERAL:
24766
            	        	            case IDENTIFIER:
24767
            	        	            case IDEN_TOK:
24768
            	        	            case IF_TOK:
24769
            	        	            case IS_INTEGER_TOK:
24770
            	        	            case LAMBDA_TOK:
24771
            	        	            case LBRACE:
24772
            	        	            case LET_TOK:
24773
            	        	            case LPAREN:
24774
            	        	            case MINUS_TOK:
24775
            	        	            case NOT_TOK:
24776
            	        	            case PARENHASH:
24777
            	        	            case REGEXP_COMPLEMENT_TOK:
24778
            	        	            case REGEXP_CONCAT_TOK:
24779
            	        	            case REGEXP_EMPTY_TOK:
24780
            	        	            case REGEXP_INTER_TOK:
24781
            	        	            case REGEXP_LOOP_TOK:
24782
            	        	            case REGEXP_OPT_TOK:
24783
            	        	            case REGEXP_PLUS_TOK:
24784
            	        	            case REGEXP_RANGE_TOK:
24785
            	        	            case REGEXP_SIGMA_TOK:
24786
            	        	            case REGEXP_STAR_TOK:
24787
            	        	            case REGEXP_UNION_TOK:
24788
            	        	            case SEQ_UNIT_TOK:
24789
            	        	            case SETS_CARD_TOK:
24790
            	        	            case SETS_CHOOSE_TOK:
24791
            	        	            case STRING_CHARAT_TOK:
24792
            	        	            case STRING_CONCAT_TOK:
24793
            	        	            case STRING_CONTAINS_TOK:
24794
            	        	            case STRING_INDEXOF_TOK:
24795
            	        	            case STRING_ITOS_TOK:
24796
            	        	            case STRING_LENGTH_TOK:
24797
            	        	            case STRING_LITERAL:
24798
            	        	            case STRING_PREFIXOF_TOK:
24799
            	        	            case STRING_REPLACE_ALL_TOK:
24800
            	        	            case STRING_REPLACE_TOK:
24801
            	        	            case STRING_REV_TOK:
24802
            	        	            case STRING_STOI_TOK:
24803
            	        	            case STRING_SUBSTR_TOK:
24804
            	        	            case STRING_SUFFIXOF_TOK:
24805
            	        	            case STRING_TOLOWER_TOK:
24806
            	        	            case STRING_TOUPPER_TOK:
24807
            	        	            case STRING_TO_REGEXP_TOK:
24808
            	        	            case SX_TOK:
24809
            	        	            case TRANSCLOSURE_TOK:
24810
            	        	            case TRANSPOSE_TOK:
24811
            	        	            case TRUE_TOK:
24812
            	        	            case TUPLE_TOK:
24813
            	        	            case UNIVSET_TOK:
24814
            	        	            	{
24815
53
            	        	            		alt91=1;
24816
            	        	            	}
24817
53
            	        	                break;
24818
141
            	        	            case INTEGER_LITERAL:
24819
            	        	            	{
24820
141
            	        	            		switch ( LA(2) )
24821
            	        	            		{
24822
90
            	        	            		case AND_TOK:
24823
            	        	            		case BAR:
24824
            	        	            		case BVAND_TOK:
24825
            	        	            		case CONCAT_TOK:
24826
            	        	            		case DISEQUAL_TOK:
24827
            	        	            		case DIV_TOK:
24828
            	        	            		case DOT:
24829
            	        	            		case EQUAL_TOK:
24830
            	        	            		case EXP_TOK:
24831
            	        	            		case FMF_CARD_TOK:
24832
            	        	            		case GEQ_TOK:
24833
            	        	            		case GT_TOK:
24834
            	        	            		case IFF_TOK:
24835
            	        	            		case IMPLIES_TOK:
24836
            	        	            		case INTDIV_TOK:
24837
            	        	            		case JOIN_IMAGE_TOK:
24838
            	        	            		case JOIN_TOK:
24839
            	        	            		case LBRACKET:
24840
            	        	            		case LEFTSHIFT_TOK:
24841
            	        	            		case LEQ_TOK:
24842
            	        	            		case LPAREN:
24843
            	        	            		case LT_TOK:
24844
            	        	            		case MEMBER_TOK:
24845
            	        	            		case MINUS_TOK:
24846
            	        	            		case MOD_TOK:
24847
            	        	            		case OR_TOK:
24848
            	        	            		case PLUS_TOK:
24849
            	        	            		case PRODUCT_TOK:
24850
            	        	            		case RBRACKET:
24851
            	        	            		case RIGHTSHIFT_TOK:
24852
            	        	            		case STAR_TOK:
24853
            	        	            		case WITH_TOK:
24854
            	        	            		case XOR_TOK:
24855
            	        	            			{
24856
90
            	        	            				alt91=1;
24857
            	        	            			}
24858
90
            	        	            		    break;
24859
51
            	        	            		case COLON:
24860
            	        	            			{
24861
51
            	        	            				switch ( LA(3) )
24862
            	        	            				{
24863
            	        	            				case COLON:
24864
            	        	            					{
24865
            	        	            						alt91=1;
24866
            	        	            					}
24867
            	        	            				    break;
24868
51
            	        	            				case INTEGER_LITERAL:
24869
            	        	            					{
24870
51
            	        	            						alt91=2;
24871
            	        	            					}
24872
51
            	        	            				    break;
24873
24874
            	        	            				default:
24875
            	        	            				    if (BACKTRACKING>0)
24876
            	        	            				    {
24877
            	        	            				        FAILEDFLAG = ANTLR3_TRUE;
24878
            	        	            				        return ;
24879
            	        	            				    }
24880
24881
            	        	            				    CONSTRUCTEX();
24882
            	        	            				    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
24883
            	        	            				    EXCEPTION->message      = (void *)"";
24884
            	        	            				    EXCEPTION->decisionNum  = 91;
24885
            	        	            				    EXCEPTION->state        = 97;
24886
24887
24888
            	        	            				    goto rulepostfixTermEx;
24889
24890
            	        	            				}
24891
24892
            	        	            			}
24893
51
            	        	            		    break;
24894
24895
            	        	            		default:
24896
            	        	            		    if (BACKTRACKING>0)
24897
            	        	            		    {
24898
            	        	            		        FAILEDFLAG = ANTLR3_TRUE;
24899
            	        	            		        return ;
24900
            	        	            		    }
24901
24902
            	        	            		    CONSTRUCTEX();
24903
            	        	            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
24904
            	        	            		    EXCEPTION->message      = (void *)"";
24905
            	        	            		    EXCEPTION->decisionNum  = 91;
24906
            	        	            		    EXCEPTION->state        = 83;
24907
24908
24909
            	        	            		    goto rulepostfixTermEx;
24910
24911
            	        	            		}
24912
24913
            	        	            	}
24914
141
            	        	                break;
24915
24916
            	        	            default:
24917
            	        	                if (BACKTRACKING>0)
24918
            	        	                {
24919
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
24920
            	        	                    return ;
24921
            	        	                }
24922
24923
            	        	                CONSTRUCTEX();
24924
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
24925
            	        	                EXCEPTION->message      = (void *)"";
24926
            	        	                EXCEPTION->decisionNum  = 91;
24927
            	        	                EXCEPTION->state        = 0;
24928
24929
24930
            	        	                goto rulepostfixTermEx;
24931
24932
            	        	            }
24933
24934
194
            	        	            switch (alt91)
24935
            	        	            {
24936
143
            	        	        	case 1:
24937
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1764:11: formula[f2]
24938
            	        	        	    {
24939
143
            	        	        	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm5775);
24940
143
            	        	        	        formula(ctx, f2);
24941
24942
143
            	        	        	        FOLLOWPOP();
24943
143
            	        	        	        if  (HASEXCEPTION())
24944
            	        	        	        {
24945
            	        	        	            goto rulepostfixTermEx;
24946
            	        	        	        }
24947
143
            	        	        	        if (HASFAILED())
24948
            	        	        	        {
24949
            	        	        	            return ;
24950
            	        	        	        }
24951
24952
24953
143
            	        	        	        if ( BACKTRACKING==0 )
24954
            	        	        	        {
24955
143
            	        	        	             extract = false;
24956
            	        	        	        }
24957
24958
24959
            	        	        	    }
24960
143
            	        	        	    break;
24961
51
            	        	        	case 2:
24962
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1765:11: k1= numeral COLON k2= numeral
24963
            	        	        	    {
24964
51
            	        	        	        FOLLOWPUSH(FOLLOW_numeral_in_postfixTerm5792);
24965
51
            	        	        	        k1=numeral(ctx);
24966
24967
51
            	        	        	        FOLLOWPOP();
24968
51
            	        	        	        if  (HASEXCEPTION())
24969
            	        	        	        {
24970
            	        	        	            goto rulepostfixTermEx;
24971
            	        	        	        }
24972
51
            	        	        	        if (HASFAILED())
24973
            	        	        	        {
24974
            	        	        	            return ;
24975
            	        	        	        }
24976
24977
24978
51
            	        	        	         MATCHT(COLON, &FOLLOW_COLON_in_postfixTerm5794);
24979
51
            	        	        	        if  (HASEXCEPTION())
24980
            	        	        	        {
24981
            	        	        	            goto rulepostfixTermEx;
24982
            	        	        	        }
24983
51
            	        	        	        if (HASFAILED())
24984
            	        	        	        {
24985
            	        	        	            return ;
24986
            	        	        	        }
24987
24988
24989
51
            	        	        	        FOLLOWPUSH(FOLLOW_numeral_in_postfixTerm5798);
24990
51
            	        	        	        k2=numeral(ctx);
24991
24992
51
            	        	        	        FOLLOWPOP();
24993
51
            	        	        	        if  (HASEXCEPTION())
24994
            	        	        	        {
24995
            	        	        	            goto rulepostfixTermEx;
24996
            	        	        	        }
24997
51
            	        	        	        if (HASFAILED())
24998
            	        	        	        {
24999
            	        	        	            return ;
25000
            	        	        	        }
25001
25002
25003
51
            	        	        	        if ( BACKTRACKING==0 )
25004
            	        	        	        {
25005
51
            	        	        	             extract = true;
25006
            	        	        	        }
25007
25008
25009
            	        	        	    }
25010
51
            	        	        	    break;
25011
25012
            	        	            }
25013
            	        	        }
25014
25015
194
            	        	         MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_postfixTerm5810);
25016
194
            	        	        if  (HASEXCEPTION())
25017
            	        	        {
25018
            	        	            goto rulepostfixTermEx;
25019
            	        	        }
25020
194
            	        	        if (HASFAILED())
25021
            	        	        {
25022
            	        	            return ;
25023
            	        	        }
25024
25025
25026
194
            	        	        if ( BACKTRACKING==0 )
25027
            	        	        {
25028
194
            	        	             if(extract) {
25029
            	        	                      /* bitvector extract */
25030
51
            	        	                      f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_EXTRACT,k1,k2), f);
25031
            	        	                    } else {
25032
            	        	                      /* array select */
25033
143
            	        	                      f = MK_TERM(cvc5::api::SELECT, f, f2);
25034
            	        	                    }
25035
25036
            	        	        }
25037
25038
25039
            	        	    }
25040
194
            	        	    break;
25041
27
            	        	case 2:
25042
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1776:7: ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK ) k= numeral
25043
            	        	    {
25044
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1776:7: ( LEFTSHIFT_TOK | RIGHTSHIFT_TOK )
25045
            	        	        {
25046
27
            	        	            int alt92=2;
25047
27
            	        	            switch ( LA(1) )
25048
            	        	            {
25049
12
            	        	            case LEFTSHIFT_TOK:
25050
            	        	            	{
25051
12
            	        	            		alt92=1;
25052
            	        	            	}
25053
12
            	        	                break;
25054
15
            	        	            case RIGHTSHIFT_TOK:
25055
            	        	            	{
25056
15
            	        	            		alt92=2;
25057
            	        	            	}
25058
15
            	        	                break;
25059
25060
            	        	            default:
25061
            	        	                if (BACKTRACKING>0)
25062
            	        	                {
25063
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
25064
            	        	                    return ;
25065
            	        	                }
25066
25067
            	        	                CONSTRUCTEX();
25068
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
25069
            	        	                EXCEPTION->message      = (void *)"";
25070
            	        	                EXCEPTION->decisionNum  = 92;
25071
            	        	                EXCEPTION->state        = 0;
25072
25073
25074
            	        	                goto rulepostfixTermEx;
25075
25076
            	        	            }
25077
25078
27
            	        	            switch (alt92)
25079
            	        	            {
25080
12
            	        	        	case 1:
25081
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1776:9: LEFTSHIFT_TOK
25082
            	        	        	    {
25083
12
            	        	        	         MATCHT(LEFTSHIFT_TOK, &FOLLOW_LEFTSHIFT_TOK_in_postfixTerm5836);
25084
12
            	        	        	        if  (HASEXCEPTION())
25085
            	        	        	        {
25086
            	        	        	            goto rulepostfixTermEx;
25087
            	        	        	        }
25088
12
            	        	        	        if (HASFAILED())
25089
            	        	        	        {
25090
            	        	        	            return ;
25091
            	        	        	        }
25092
25093
25094
12
            	        	        	        if ( BACKTRACKING==0 )
25095
            	        	        	        {
25096
12
            	        	        	             left = true;
25097
            	        	        	        }
25098
25099
25100
            	        	        	    }
25101
12
            	        	        	    break;
25102
15
            	        	        	case 2:
25103
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1777:9: RIGHTSHIFT_TOK
25104
            	        	        	    {
25105
15
            	        	        	         MATCHT(RIGHTSHIFT_TOK, &FOLLOW_RIGHTSHIFT_TOK_in_postfixTerm5848);
25106
15
            	        	        	        if  (HASEXCEPTION())
25107
            	        	        	        {
25108
            	        	        	            goto rulepostfixTermEx;
25109
            	        	        	        }
25110
15
            	        	        	        if (HASFAILED())
25111
            	        	        	        {
25112
            	        	        	            return ;
25113
            	        	        	        }
25114
25115
25116
15
            	        	        	        if ( BACKTRACKING==0 )
25117
            	        	        	        {
25118
15
            	        	        	             left = false;
25119
            	        	        	        }
25120
25121
25122
            	        	        	    }
25123
15
            	        	        	    break;
25124
25125
            	        	            }
25126
            	        	        }
25127
25128
27
            	        	        FOLLOWPUSH(FOLLOW_numeral_in_postfixTerm5856);
25129
27
            	        	        k=numeral(ctx);
25130
25131
27
            	        	        FOLLOWPOP();
25132
27
            	        	        if  (HASEXCEPTION())
25133
            	        	        {
25134
            	        	            goto rulepostfixTermEx;
25135
            	        	        }
25136
27
            	        	        if (HASFAILED())
25137
            	        	        {
25138
            	        	            return ;
25139
            	        	        }
25140
25141
25142
27
            	        	        if ( BACKTRACKING==0 )
25143
            	        	        {
25144
25145
27
            	        	                    if(left) {
25146
12
            	        	                      f = MK_TERM(api::BITVECTOR_CONCAT, f, SOLVER->mkBitVector(k));
25147
            	        	                    } else {
25148
15
            	        	                      unsigned bv_size = f.getSort().getBVSize();
25149
30
            	        	                      f = MK_TERM(api::BITVECTOR_CONCAT,
25150
30
            	        	                                  SOLVER->mkBitVector(k),
25151
45
            	        	                                  SOLVER->mkTerm(
25152
30
            	        	                                      SOLVER->mkOp(api::BITVECTOR_EXTRACT, bv_size - 1, k), f));
25153
            	        	                    }
25154
25155
            	        	        }
25156
25157
25158
            	        	    }
25159
27
            	        	    break;
25160
1033
            	        	case 3:
25161
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1791:7: LPAREN formula[f] ( COMMA formula[f] )* RPAREN
25162
            	        	    {
25163
1033
            	        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm5881);
25164
1033
            	        	        if  (HASEXCEPTION())
25165
            	        	        {
25166
            	        	            goto rulepostfixTermEx;
25167
            	        	        }
25168
1033
            	        	        if (HASFAILED())
25169
            	        	        {
25170
            	        	            return ;
25171
            	        	        }
25172
25173
25174
1033
            	        	        if ( BACKTRACKING==0 )
25175
            	        	        {
25176
1033
            	        	             args.push_back(f);
25177
            	        	        }
25178
25179
25180
1033
            	        	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm5891);
25181
1033
            	        	        formula(ctx, f);
25182
25183
1033
            	        	        FOLLOWPOP();
25184
1033
            	        	        if  (HASEXCEPTION())
25185
            	        	        {
25186
            	        	            goto rulepostfixTermEx;
25187
            	        	        }
25188
1033
            	        	        if (HASFAILED())
25189
            	        	        {
25190
            	        	            return ;
25191
            	        	        }
25192
25193
25194
1033
            	        	        if ( BACKTRACKING==0 )
25195
            	        	        {
25196
1033
            	        	             args.push_back(f);
25197
            	        	        }
25198
25199
25200
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1793:7: ( COMMA formula[f] )*
25201
25202
            	        	        for (;;)
25203
            	        	        {
25204
1192
            	        	            int alt93=2;
25205
1192
            	        	            switch ( LA(1) )
25206
            	        	            {
25207
159
            	        	            case COMMA:
25208
            	        	            	{
25209
159
            	        	            		alt93=1;
25210
            	        	            	}
25211
159
            	        	                break;
25212
25213
            	        	            }
25214
25215
1192
            	        	            switch (alt93)
25216
            	        	            {
25217
159
            	        	        	case 1:
25218
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1793:9: COMMA formula[f]
25219
            	        	        	    {
25220
159
            	        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_postfixTerm5904);
25221
159
            	        	        	        if  (HASEXCEPTION())
25222
            	        	        	        {
25223
            	        	        	            goto rulepostfixTermEx;
25224
            	        	        	        }
25225
159
            	        	        	        if (HASFAILED())
25226
            	        	        	        {
25227
            	        	        	            return ;
25228
            	        	        	        }
25229
25230
25231
159
            	        	        	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm5906);
25232
159
            	        	        	        formula(ctx, f);
25233
25234
159
            	        	        	        FOLLOWPOP();
25235
159
            	        	        	        if  (HASEXCEPTION())
25236
            	        	        	        {
25237
            	        	        	            goto rulepostfixTermEx;
25238
            	        	        	        }
25239
159
            	        	        	        if (HASFAILED())
25240
            	        	        	        {
25241
            	        	        	            return ;
25242
            	        	        	        }
25243
25244
25245
159
            	        	        	        if ( BACKTRACKING==0 )
25246
            	        	        	        {
25247
159
            	        	        	             args.push_back(f);
25248
            	        	        	        }
25249
25250
25251
            	        	        	    }
25252
159
            	        	        	    break;
25253
25254
1033
            	        	        	default:
25255
1033
            	        	        	    goto loop93;	/* break out of the loop */
25256
            	        	        	    break;
25257
            	        	            }
25258
159
            	        	        }
25259
1033
            	        	        loop93: ; /* Jump out to here if this rule does not match */
25260
25261
25262
1033
            	        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm5914);
25263
1033
            	        	        if  (HASEXCEPTION())
25264
            	        	        {
25265
            	        	            goto rulepostfixTermEx;
25266
            	        	        }
25267
1033
            	        	        if (HASFAILED())
25268
            	        	        {
25269
            	        	            return ;
25270
            	        	        }
25271
25272
25273
1033
            	        	        if ( BACKTRACKING==0 )
25274
            	        	        {
25275
25276
1035
            	        	                    PARSER_STATE->checkFunctionLike(args.front());
25277
1031
            	        	                    api::Kind kind = PARSER_STATE->getKindForFunction(args.front());
25278
1031
            	        	                    Debug("parser") << "expr is " << args.front() << std::endl;
25279
1031
            	        	                    Debug("parser") << "kind is " << kind << std::endl;
25280
1031
            	        	                    f = SOLVER->mkTerm(kind,args);
25281
25282
            	        	        }
25283
25284
25285
            	        	    }
25286
1031
            	        	    break;
25287
217
            	        	case 4:
25288
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1803:7: DOT ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral )
25289
            	        	    {
25290
217
            	        	         MATCHT(DOT, &FOLLOW_DOT_in_postfixTerm5939);
25291
217
            	        	        if  (HASEXCEPTION())
25292
            	        	        {
25293
            	        	            goto rulepostfixTermEx;
25294
            	        	        }
25295
217
            	        	        if (HASFAILED())
25296
            	        	        {
25297
            	        	            return ;
25298
            	        	        }
25299
25300
25301
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1804:7: ( identifier[id,CHECK_NONE,SYM_VARIABLE] |k= numeral )
25302
            	        	        {
25303
217
            	        	            int alt94=2;
25304
217
            	        	            switch ( LA(1) )
25305
            	        	            {
25306
142
            	        	            case IDENTIFIER:
25307
            	        	            	{
25308
142
            	        	            		alt94=1;
25309
            	        	            	}
25310
142
            	        	                break;
25311
75
            	        	            case INTEGER_LITERAL:
25312
            	        	            	{
25313
75
            	        	            		alt94=2;
25314
            	        	            	}
25315
75
            	        	                break;
25316
25317
            	        	            default:
25318
            	        	                if (BACKTRACKING>0)
25319
            	        	                {
25320
            	        	                    FAILEDFLAG = ANTLR3_TRUE;
25321
            	        	                    return ;
25322
            	        	                }
25323
25324
            	        	                CONSTRUCTEX();
25325
            	        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
25326
            	        	                EXCEPTION->message      = (void *)"";
25327
            	        	                EXCEPTION->decisionNum  = 94;
25328
            	        	                EXCEPTION->state        = 0;
25329
25330
25331
            	        	                goto rulepostfixTermEx;
25332
25333
            	        	            }
25334
25335
217
            	        	            switch (alt94)
25336
            	        	            {
25337
142
            	        	        	case 1:
25338
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1804:9: identifier[id,CHECK_NONE,SYM_VARIABLE]
25339
            	        	        	    {
25340
142
            	        	        	        FOLLOWPUSH(FOLLOW_identifier_in_postfixTerm5949);
25341
142
            	        	        	        identifier(ctx, id, CHECK_NONE, SYM_VARIABLE);
25342
25343
142
            	        	        	        FOLLOWPOP();
25344
142
            	        	        	        if  (HASEXCEPTION())
25345
            	        	        	        {
25346
            	        	        	            goto rulepostfixTermEx;
25347
            	        	        	        }
25348
142
            	        	        	        if (HASFAILED())
25349
            	        	        	        {
25350
            	        	        	            return ;
25351
            	        	        	        }
25352
25353
25354
142
            	        	        	        if ( BACKTRACKING==0 )
25355
            	        	        	        {
25356
284
            	        	        	             api::Sort type = f.getSort();
25357
142
            	        	        	                      if(! type.isRecord()) {
25358
            	        	        	                        PARSER_STATE->parseError("record-select applied to non-record");
25359
            	        	        	                      }
25360
284
            	        	        	                      const api::Datatype& dt = type.getDatatype();
25361
284
            	        	        	                      f = SOLVER->mkTerm(api::APPLY_SELECTOR,
25362
284
            	        	        	                                         dt[0][id].getSelectorTerm(),
25363
            	        	        	                                         f);
25364
25365
            	        	        	        }
25366
25367
25368
            	        	        	    }
25369
142
            	        	        	    break;
25370
75
            	        	        	case 2:
25371
            	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1814:9: k= numeral
25372
            	        	        	    {
25373
75
            	        	        	        FOLLOWPUSH(FOLLOW_numeral_in_postfixTerm5972);
25374
75
            	        	        	        k=numeral(ctx);
25375
25376
75
            	        	        	        FOLLOWPOP();
25377
75
            	        	        	        if  (HASEXCEPTION())
25378
            	        	        	        {
25379
            	        	        	            goto rulepostfixTermEx;
25380
            	        	        	        }
25381
75
            	        	        	        if (HASFAILED())
25382
            	        	        	        {
25383
            	        	        	            return ;
25384
            	        	        	        }
25385
25386
25387
75
            	        	        	        if ( BACKTRACKING==0 )
25388
            	        	        	        {
25389
25390
150
            	        	        	                      api::Sort type = f.getSort();
25391
75
            	        	        	                      if(! type.isTuple()) {
25392
            	        	        	                        PARSER_STATE->parseError("tuple-select applied to non-tuple");
25393
            	        	        	                      }
25394
75
            	        	        	                      size_t length = type.getTupleLength();
25395
75
            	        	        	                      if(k >= length) {
25396
            	        	        	                        std::stringstream ss;
25397
            	        	        	                        ss << "tuple is of length " << length << "; cannot access index " << k;
25398
            	        	        	                        PARSER_STATE->parseError(ss.str());
25399
            	        	        	                      }
25400
150
            	        	        	                      const api::Datatype& dt = type.getDatatype();
25401
150
            	        	        	                      f = SOLVER->mkTerm(api::APPLY_SELECTOR,
25402
150
            	        	        	                                         dt[0][k].getSelectorTerm(),
25403
            	        	        	                                         f);
25404
25405
            	        	        	        }
25406
25407
25408
            	        	        	    }
25409
75
            	        	        	    break;
25410
25411
            	        	            }
25412
            	        	        }
25413
25414
            	        	    }
25415
217
            	        	    break;
25416
25417
80799
            	        	default:
25418
80799
            	        	    goto loop95;	/* break out of the loop */
25419
            	        	    break;
25420
            	            }
25421
1469
            	        }
25422
80799
            	        loop95: ; /* Jump out to here if this rule does not match */
25423
25424
25425
            	    }
25426
80799
            	    break;
25427
4
            	case 2:
25428
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1833:7: FLOOR_TOK LPAREN formula[f] RPAREN
25429
            	    {
25430
4
            	         MATCHT(FLOOR_TOK, &FOLLOW_FLOOR_TOK_in_postfixTerm6005);
25431
4
            	        if  (HASEXCEPTION())
25432
            	        {
25433
            	            goto rulepostfixTermEx;
25434
            	        }
25435
4
            	        if (HASFAILED())
25436
            	        {
25437
            	            return ;
25438
            	        }
25439
25440
25441
4
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm6007);
25442
4
            	        if  (HASEXCEPTION())
25443
            	        {
25444
            	            goto rulepostfixTermEx;
25445
            	        }
25446
4
            	        if (HASFAILED())
25447
            	        {
25448
            	            return ;
25449
            	        }
25450
25451
25452
4
            	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6009);
25453
4
            	        formula(ctx, f);
25454
25455
4
            	        FOLLOWPOP();
25456
4
            	        if  (HASEXCEPTION())
25457
            	        {
25458
            	            goto rulepostfixTermEx;
25459
            	        }
25460
4
            	        if (HASFAILED())
25461
            	        {
25462
            	            return ;
25463
            	        }
25464
25465
25466
4
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm6012);
25467
4
            	        if  (HASEXCEPTION())
25468
            	        {
25469
            	            goto rulepostfixTermEx;
25470
            	        }
25471
4
            	        if (HASFAILED())
25472
            	        {
25473
            	            return ;
25474
            	        }
25475
25476
25477
4
            	        if ( BACKTRACKING==0 )
25478
            	        {
25479
4
            	             f = MK_TERM(cvc5::api::TO_INTEGER, f);
25480
            	        }
25481
25482
25483
            	    }
25484
4
            	    break;
25485
            	case 3:
25486
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1835:7: IS_INTEGER_TOK LPAREN formula[f] RPAREN
25487
            	    {
25488
            	         MATCHT(IS_INTEGER_TOK, &FOLLOW_IS_INTEGER_TOK_in_postfixTerm6028);
25489
            	        if  (HASEXCEPTION())
25490
            	        {
25491
            	            goto rulepostfixTermEx;
25492
            	        }
25493
            	        if (HASFAILED())
25494
            	        {
25495
            	            return ;
25496
            	        }
25497
25498
25499
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm6030);
25500
            	        if  (HASEXCEPTION())
25501
            	        {
25502
            	            goto rulepostfixTermEx;
25503
            	        }
25504
            	        if (HASFAILED())
25505
            	        {
25506
            	            return ;
25507
            	        }
25508
25509
25510
            	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6032);
25511
            	        formula(ctx, f);
25512
25513
            	        FOLLOWPOP();
25514
            	        if  (HASEXCEPTION())
25515
            	        {
25516
            	            goto rulepostfixTermEx;
25517
            	        }
25518
            	        if (HASFAILED())
25519
            	        {
25520
            	            return ;
25521
            	        }
25522
25523
25524
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm6035);
25525
            	        if  (HASEXCEPTION())
25526
            	        {
25527
            	            goto rulepostfixTermEx;
25528
            	        }
25529
            	        if (HASFAILED())
25530
            	        {
25531
            	            return ;
25532
            	        }
25533
25534
25535
            	        if ( BACKTRACKING==0 )
25536
            	        {
25537
            	             f = MK_TERM(cvc5::api::IS_INTEGER, f);
25538
            	        }
25539
25540
25541
            	    }
25542
            	    break;
25543
            	case 4:
25544
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1837:7: ABS_TOK LPAREN formula[f] RPAREN
25545
            	    {
25546
            	         MATCHT(ABS_TOK, &FOLLOW_ABS_TOK_in_postfixTerm6051);
25547
            	        if  (HASEXCEPTION())
25548
            	        {
25549
            	            goto rulepostfixTermEx;
25550
            	        }
25551
            	        if (HASFAILED())
25552
            	        {
25553
            	            return ;
25554
            	        }
25555
25556
25557
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm6053);
25558
            	        if  (HASEXCEPTION())
25559
            	        {
25560
            	            goto rulepostfixTermEx;
25561
            	        }
25562
            	        if (HASFAILED())
25563
            	        {
25564
            	            return ;
25565
            	        }
25566
25567
25568
            	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6055);
25569
            	        formula(ctx, f);
25570
25571
            	        FOLLOWPOP();
25572
            	        if  (HASEXCEPTION())
25573
            	        {
25574
            	            goto rulepostfixTermEx;
25575
            	        }
25576
            	        if (HASFAILED())
25577
            	        {
25578
            	            return ;
25579
            	        }
25580
25581
25582
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm6058);
25583
            	        if  (HASEXCEPTION())
25584
            	        {
25585
            	            goto rulepostfixTermEx;
25586
            	        }
25587
            	        if (HASFAILED())
25588
            	        {
25589
            	            return ;
25590
            	        }
25591
25592
25593
            	        if ( BACKTRACKING==0 )
25594
            	        {
25595
            	             f = MK_TERM(cvc5::api::ABS, f);
25596
            	        }
25597
25598
25599
            	    }
25600
            	    break;
25601
            	case 5:
25602
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1839:7: DIVISIBLE_TOK LPAREN formula[f] COMMA n= numeral RPAREN
25603
            	    {
25604
            	         MATCHT(DIVISIBLE_TOK, &FOLLOW_DIVISIBLE_TOK_in_postfixTerm6074);
25605
            	        if  (HASEXCEPTION())
25606
            	        {
25607
            	            goto rulepostfixTermEx;
25608
            	        }
25609
            	        if (HASFAILED())
25610
            	        {
25611
            	            return ;
25612
            	        }
25613
25614
25615
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm6076);
25616
            	        if  (HASEXCEPTION())
25617
            	        {
25618
            	            goto rulepostfixTermEx;
25619
            	        }
25620
            	        if (HASFAILED())
25621
            	        {
25622
            	            return ;
25623
            	        }
25624
25625
25626
            	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6078);
25627
            	        formula(ctx, f);
25628
25629
            	        FOLLOWPOP();
25630
            	        if  (HASEXCEPTION())
25631
            	        {
25632
            	            goto rulepostfixTermEx;
25633
            	        }
25634
            	        if (HASFAILED())
25635
            	        {
25636
            	            return ;
25637
            	        }
25638
25639
25640
            	         MATCHT(COMMA, &FOLLOW_COMMA_in_postfixTerm6081);
25641
            	        if  (HASEXCEPTION())
25642
            	        {
25643
            	            goto rulepostfixTermEx;
25644
            	        }
25645
            	        if (HASFAILED())
25646
            	        {
25647
            	            return ;
25648
            	        }
25649
25650
25651
            	        FOLLOWPUSH(FOLLOW_numeral_in_postfixTerm6085);
25652
            	        n=numeral(ctx);
25653
25654
            	        FOLLOWPOP();
25655
            	        if  (HASEXCEPTION())
25656
            	        {
25657
            	            goto rulepostfixTermEx;
25658
            	        }
25659
            	        if (HASFAILED())
25660
            	        {
25661
            	            return ;
25662
            	        }
25663
25664
25665
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm6087);
25666
            	        if  (HASEXCEPTION())
25667
            	        {
25668
            	            goto rulepostfixTermEx;
25669
            	        }
25670
            	        if (HASFAILED())
25671
            	        {
25672
            	            return ;
25673
            	        }
25674
25675
25676
            	        if ( BACKTRACKING==0 )
25677
            	        {
25678
            	             f = MK_TERM(SOLVER->mkOp(cvc5::api::DIVISIBLE, n), f);
25679
            	        }
25680
25681
25682
            	    }
25683
            	    break;
25684
10
            	case 6:
25685
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1841:7: DISTINCT_TOK LPAREN formula[f] ( COMMA formula[f] )* RPAREN
25686
            	    {
25687
10
            	         MATCHT(DISTINCT_TOK, &FOLLOW_DISTINCT_TOK_in_postfixTerm6103);
25688
10
            	        if  (HASEXCEPTION())
25689
            	        {
25690
            	            goto rulepostfixTermEx;
25691
            	        }
25692
10
            	        if (HASFAILED())
25693
            	        {
25694
            	            return ;
25695
            	        }
25696
25697
25698
10
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_postfixTerm6105);
25699
10
            	        if  (HASEXCEPTION())
25700
            	        {
25701
            	            goto rulepostfixTermEx;
25702
            	        }
25703
10
            	        if (HASFAILED())
25704
            	        {
25705
            	            return ;
25706
            	        }
25707
25708
25709
10
            	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6113);
25710
10
            	        formula(ctx, f);
25711
25712
10
            	        FOLLOWPOP();
25713
10
            	        if  (HASEXCEPTION())
25714
            	        {
25715
            	            goto rulepostfixTermEx;
25716
            	        }
25717
10
            	        if (HASFAILED())
25718
            	        {
25719
            	            return ;
25720
            	        }
25721
25722
25723
10
            	        if ( BACKTRACKING==0 )
25724
            	        {
25725
10
            	             args.push_back(f);
25726
            	        }
25727
25728
25729
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1843:7: ( COMMA formula[f] )*
25730
25731
            	        for (;;)
25732
            	        {
25733
23
            	            int alt96=2;
25734
23
            	            switch ( LA(1) )
25735
            	            {
25736
13
            	            case COMMA:
25737
            	            	{
25738
13
            	            		alt96=1;
25739
            	            	}
25740
13
            	                break;
25741
25742
            	            }
25743
25744
23
            	            switch (alt96)
25745
            	            {
25746
13
            	        	case 1:
25747
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1843:9: COMMA formula[f]
25748
            	        	    {
25749
13
            	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_postfixTerm6126);
25750
13
            	        	        if  (HASEXCEPTION())
25751
            	        	        {
25752
            	        	            goto rulepostfixTermEx;
25753
            	        	        }
25754
13
            	        	        if (HASFAILED())
25755
            	        	        {
25756
            	        	            return ;
25757
            	        	        }
25758
25759
25760
13
            	        	        FOLLOWPUSH(FOLLOW_formula_in_postfixTerm6128);
25761
13
            	        	        formula(ctx, f);
25762
25763
13
            	        	        FOLLOWPOP();
25764
13
            	        	        if  (HASEXCEPTION())
25765
            	        	        {
25766
            	        	            goto rulepostfixTermEx;
25767
            	        	        }
25768
13
            	        	        if (HASFAILED())
25769
            	        	        {
25770
            	        	            return ;
25771
            	        	        }
25772
25773
25774
13
            	        	        if ( BACKTRACKING==0 )
25775
            	        	        {
25776
13
            	        	             args.push_back(f);
25777
            	        	        }
25778
25779
25780
            	        	    }
25781
13
            	        	    break;
25782
25783
10
            	        	default:
25784
10
            	        	    goto loop96;	/* break out of the loop */
25785
            	        	    break;
25786
            	            }
25787
13
            	        }
25788
10
            	        loop96: ; /* Jump out to here if this rule does not match */
25789
25790
25791
10
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_postfixTerm6136);
25792
10
            	        if  (HASEXCEPTION())
25793
            	        {
25794
            	            goto rulepostfixTermEx;
25795
            	        }
25796
10
            	        if (HASFAILED())
25797
            	        {
25798
            	            return ;
25799
            	        }
25800
25801
25802
10
            	        if ( BACKTRACKING==0 )
25803
            	        {
25804
25805
20
            	                    f = (args.size() == 1) ? SOLVER->mkTrue()
25806
10
            	                                           : MK_TERM(cvc5::api::DISTINCT, args);
25807
25808
            	        }
25809
25810
25811
            	    }
25812
10
            	    break;
25813
25814
                }
25815
            }
25816
25817
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1849:5: ( typeAscription[f, t] )?
25818
            {
25819
80813
                int alt98=2;
25820
80813
                switch ( LA(1) )
25821
                {
25822
63
                    case COLON:
25823
                    	{
25824
63
                    		switch ( LA(2) )
25825
                    		{
25826
63
                    		    case COLON:
25827
                    		    	{
25828
63
                    		    		alt98=1;
25829
                    		    	}
25830
63
                    		        break;
25831
                    		}
25832
25833
                    	}
25834
63
                        break;
25835
                }
25836
25837
80813
                switch (alt98)
25838
                {
25839
63
            	case 1:
25840
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1849:7: typeAscription[f, t]
25841
            	    {
25842
63
            	        FOLLOWPUSH(FOLLOW_typeAscription_in_postfixTerm6158);
25843
63
            	        typeAscription(ctx, f, t);
25844
25845
63
            	        FOLLOWPOP();
25846
63
            	        if  (HASEXCEPTION())
25847
            	        {
25848
            	            goto rulepostfixTermEx;
25849
            	        }
25850
63
            	        if (HASFAILED())
25851
            	        {
25852
            	            return ;
25853
            	        }
25854
25855
25856
63
            	        if ( BACKTRACKING==0 )
25857
            	        {
25858
25859
63
            	                    f = PARSER_STATE->applyTypeAscription(f,t);
25860
25861
            	        }
25862
25863
25864
            	    }
25865
63
            	    break;
25866
25867
                }
25868
            }
25869
25870
        }
25871
25872
    }
25873
25874
    // This is where rules clean up and exit
25875
    //
25876
80813
    goto rulepostfixTermEx; /* Prevent compiler warnings */
25877
80813
    rulepostfixTermEx: ;
25878
25879
80813
            if (HASEXCEPTION())
25880
            {
25881
                PREPORTERROR();
25882
                PRECOVER();
25883
            }
25884
80813
    return ;
25885
}
25886
/* $ANTLR end postfixTerm */
25887
25888
/**
25889
 * $ANTLR start relationTerm
25890
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1856:1: relationTerm[cvc5::api::Term& f] : ( TRANSPOSE_TOK LPAREN formula[f] RPAREN | TRANSCLOSURE_TOK LPAREN formula[f] RPAREN | TUPLE_TOK LPAREN formula[f] RPAREN | IDEN_TOK LPAREN formula[f] RPAREN | bvTerm[f] );
25891
 */
25892
static void
25893
80801
relationTerm(pCvcParser ctx, cvc5::api::Term& f)
25894
{
25895
    /* Initialize rule variables
25896
     */
25897
25898
    {
25899
        {
25900
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1858:3: ( TRANSPOSE_TOK LPAREN formula[f] RPAREN | TRANSCLOSURE_TOK LPAREN formula[f] RPAREN | TUPLE_TOK LPAREN formula[f] RPAREN | IDEN_TOK LPAREN formula[f] RPAREN | bvTerm[f] )
25901
25902
            ANTLR3_UINT32 alt99;
25903
25904
80801
            alt99=5;
25905
25906
80801
            switch ( LA(1) )
25907
            {
25908
101
            case TRANSPOSE_TOK:
25909
            	{
25910
101
            		alt99=1;
25911
            	}
25912
101
                break;
25913
37
            case TRANSCLOSURE_TOK:
25914
            	{
25915
37
            		alt99=2;
25916
            	}
25917
37
                break;
25918
130
            case TUPLE_TOK:
25919
            	{
25920
130
            		alt99=3;
25921
            	}
25922
130
                break;
25923
8
            case IDEN_TOK:
25924
            	{
25925
8
            		alt99=4;
25926
            	}
25927
8
                break;
25928
80525
            case ARRAY_TOK:
25929
            case BAR:
25930
            case BINARY_LITERAL:
25931
            case BVASHR_TOK:
25932
            case BVCOMP_TOK:
25933
            case BVGE_TOK:
25934
            case BVGT_TOK:
25935
            case BVLE_TOK:
25936
            case BVLSHR_TOK:
25937
            case BVLT_TOK:
25938
            case BVMULT_TOK:
25939
            case BVNAND_TOK:
25940
            case BVNOR_TOK:
25941
            case BVPLUS_TOK:
25942
            case BVREPEAT_TOK:
25943
            case BVROTL_TOK:
25944
            case BVROTR_TOK:
25945
            case BVSDIV_TOK:
25946
            case BVSGE_TOK:
25947
            case BVSGT_TOK:
25948
            case BVSHL_TOK:
25949
            case BVSLE_TOK:
25950
            case BVSLT_TOK:
25951
            case BVSMOD_TOK:
25952
            case BVSREM_TOK:
25953
            case BVSUB_TOK:
25954
            case BVUDIV_TOK:
25955
            case BVUMINUS_TOK:
25956
            case BVUREM_TOK:
25957
            case BVXNOR_TOK:
25958
            case BVXOR_TOK:
25959
            case BVZEROEXTEND_TOK:
25960
            case DECIMAL_LITERAL:
25961
            case FALSE_TOK:
25962
            case HEX_LITERAL:
25963
            case IDENTIFIER:
25964
            case IF_TOK:
25965
            case INTEGER_LITERAL:
25966
            case LBRACE:
25967
            case LPAREN:
25968
            case PARENHASH:
25969
            case REGEXP_COMPLEMENT_TOK:
25970
            case REGEXP_CONCAT_TOK:
25971
            case REGEXP_EMPTY_TOK:
25972
            case REGEXP_INTER_TOK:
25973
            case REGEXP_LOOP_TOK:
25974
            case REGEXP_OPT_TOK:
25975
            case REGEXP_PLUS_TOK:
25976
            case REGEXP_RANGE_TOK:
25977
            case REGEXP_SIGMA_TOK:
25978
            case REGEXP_STAR_TOK:
25979
            case REGEXP_UNION_TOK:
25980
            case SEQ_UNIT_TOK:
25981
            case SETS_CARD_TOK:
25982
            case SETS_CHOOSE_TOK:
25983
            case STRING_CHARAT_TOK:
25984
            case STRING_CONCAT_TOK:
25985
            case STRING_CONTAINS_TOK:
25986
            case STRING_INDEXOF_TOK:
25987
            case STRING_ITOS_TOK:
25988
            case STRING_LENGTH_TOK:
25989
            case STRING_LITERAL:
25990
            case STRING_PREFIXOF_TOK:
25991
            case STRING_REPLACE_ALL_TOK:
25992
            case STRING_REPLACE_TOK:
25993
            case STRING_REV_TOK:
25994
            case STRING_STOI_TOK:
25995
            case STRING_SUBSTR_TOK:
25996
            case STRING_SUFFIXOF_TOK:
25997
            case STRING_TOLOWER_TOK:
25998
            case STRING_TOUPPER_TOK:
25999
            case STRING_TO_REGEXP_TOK:
26000
            case SX_TOK:
26001
            case TRUE_TOK:
26002
            case UNIVSET_TOK:
26003
            	{
26004
80525
            		alt99=5;
26005
            	}
26006
80525
                break;
26007
26008
            default:
26009
                if (BACKTRACKING>0)
26010
                {
26011
                    FAILEDFLAG = ANTLR3_TRUE;
26012
                    return ;
26013
                }
26014
26015
                CONSTRUCTEX();
26016
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
26017
                EXCEPTION->message      = (void *)"";
26018
                EXCEPTION->decisionNum  = 99;
26019
                EXCEPTION->state        = 0;
26020
26021
26022
                goto rulerelationTermEx;
26023
26024
            }
26025
26026
80801
            switch (alt99)
26027
            {
26028
101
        	case 1:
26029
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1858:5: TRANSPOSE_TOK LPAREN formula[f] RPAREN
26030
        	    {
26031
101
        	         MATCHT(TRANSPOSE_TOK, &FOLLOW_TRANSPOSE_TOK_in_relationTerm6194);
26032
101
        	        if  (HASEXCEPTION())
26033
        	        {
26034
        	            goto rulerelationTermEx;
26035
        	        }
26036
101
        	        if (HASFAILED())
26037
        	        {
26038
        	            return ;
26039
        	        }
26040
26041
26042
101
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_relationTerm6196);
26043
101
        	        if  (HASEXCEPTION())
26044
        	        {
26045
        	            goto rulerelationTermEx;
26046
        	        }
26047
101
        	        if (HASFAILED())
26048
        	        {
26049
        	            return ;
26050
        	        }
26051
26052
26053
101
        	        FOLLOWPUSH(FOLLOW_formula_in_relationTerm6198);
26054
101
        	        formula(ctx, f);
26055
26056
101
        	        FOLLOWPOP();
26057
101
        	        if  (HASEXCEPTION())
26058
        	        {
26059
        	            goto rulerelationTermEx;
26060
        	        }
26061
101
        	        if (HASFAILED())
26062
        	        {
26063
        	            return ;
26064
        	        }
26065
26066
26067
101
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_relationTerm6201);
26068
101
        	        if  (HASEXCEPTION())
26069
        	        {
26070
        	            goto rulerelationTermEx;
26071
        	        }
26072
101
        	        if (HASFAILED())
26073
        	        {
26074
        	            return ;
26075
        	        }
26076
26077
26078
101
        	        if ( BACKTRACKING==0 )
26079
        	        {
26080
101
        	             f = MK_TERM(cvc5::api::TRANSPOSE, f);
26081
        	        }
26082
26083
26084
        	    }
26085
101
        	    break;
26086
37
        	case 2:
26087
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1860:5: TRANSCLOSURE_TOK LPAREN formula[f] RPAREN
26088
        	    {
26089
37
        	         MATCHT(TRANSCLOSURE_TOK, &FOLLOW_TRANSCLOSURE_TOK_in_relationTerm6213);
26090
37
        	        if  (HASEXCEPTION())
26091
        	        {
26092
        	            goto rulerelationTermEx;
26093
        	        }
26094
37
        	        if (HASFAILED())
26095
        	        {
26096
        	            return ;
26097
        	        }
26098
26099
26100
37
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_relationTerm6215);
26101
37
        	        if  (HASEXCEPTION())
26102
        	        {
26103
        	            goto rulerelationTermEx;
26104
        	        }
26105
37
        	        if (HASFAILED())
26106
        	        {
26107
        	            return ;
26108
        	        }
26109
26110
26111
37
        	        FOLLOWPUSH(FOLLOW_formula_in_relationTerm6217);
26112
37
        	        formula(ctx, f);
26113
26114
37
        	        FOLLOWPOP();
26115
37
        	        if  (HASEXCEPTION())
26116
        	        {
26117
        	            goto rulerelationTermEx;
26118
        	        }
26119
37
        	        if (HASFAILED())
26120
        	        {
26121
        	            return ;
26122
        	        }
26123
26124
26125
37
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_relationTerm6220);
26126
37
        	        if  (HASEXCEPTION())
26127
        	        {
26128
        	            goto rulerelationTermEx;
26129
        	        }
26130
37
        	        if (HASFAILED())
26131
        	        {
26132
        	            return ;
26133
        	        }
26134
26135
26136
37
        	        if ( BACKTRACKING==0 )
26137
        	        {
26138
37
        	             f = MK_TERM(cvc5::api::TCLOSURE, f);
26139
        	        }
26140
26141
26142
        	    }
26143
37
        	    break;
26144
130
        	case 3:
26145
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1862:5: TUPLE_TOK LPAREN formula[f] RPAREN
26146
        	    {
26147
130
        	         MATCHT(TUPLE_TOK, &FOLLOW_TUPLE_TOK_in_relationTerm6232);
26148
130
        	        if  (HASEXCEPTION())
26149
        	        {
26150
        	            goto rulerelationTermEx;
26151
        	        }
26152
130
        	        if (HASFAILED())
26153
        	        {
26154
        	            return ;
26155
        	        }
26156
26157
26158
130
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_relationTerm6234);
26159
130
        	        if  (HASEXCEPTION())
26160
        	        {
26161
        	            goto rulerelationTermEx;
26162
        	        }
26163
130
        	        if (HASFAILED())
26164
        	        {
26165
        	            return ;
26166
        	        }
26167
26168
26169
130
        	        FOLLOWPUSH(FOLLOW_formula_in_relationTerm6236);
26170
130
        	        formula(ctx, f);
26171
26172
130
        	        FOLLOWPOP();
26173
130
        	        if  (HASEXCEPTION())
26174
        	        {
26175
        	            goto rulerelationTermEx;
26176
        	        }
26177
130
        	        if (HASFAILED())
26178
        	        {
26179
        	            return ;
26180
        	        }
26181
26182
26183
130
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_relationTerm6239);
26184
130
        	        if  (HASEXCEPTION())
26185
        	        {
26186
        	            goto rulerelationTermEx;
26187
        	        }
26188
130
        	        if (HASFAILED())
26189
        	        {
26190
        	            return ;
26191
        	        }
26192
26193
26194
130
        	        if ( BACKTRACKING==0 )
26195
        	        {
26196
260
        	             std::vector<api::Sort> types;
26197
260
        	                  std::vector<api::Term> args;
26198
130
        	                  args.push_back(f);
26199
130
        	                  types.push_back(f.getSort());
26200
260
        	                  api::Sort t = SOLVER->mkTupleSort(types);
26201
260
        	                  const api::Datatype& dt = t.getDatatype();
26202
130
        	                  args.insert(args.begin(), dt[0].getConstructorTerm());
26203
130
        	                  f = MK_TERM(api::APPLY_CONSTRUCTOR, args);
26204
26205
        	        }
26206
26207
26208
        	    }
26209
130
        	    break;
26210
8
        	case 4:
26211
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1872:5: IDEN_TOK LPAREN formula[f] RPAREN
26212
        	    {
26213
8
        	         MATCHT(IDEN_TOK, &FOLLOW_IDEN_TOK_in_relationTerm6251);
26214
8
        	        if  (HASEXCEPTION())
26215
        	        {
26216
        	            goto rulerelationTermEx;
26217
        	        }
26218
8
        	        if (HASFAILED())
26219
        	        {
26220
        	            return ;
26221
        	        }
26222
26223
26224
8
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_relationTerm6253);
26225
8
        	        if  (HASEXCEPTION())
26226
        	        {
26227
        	            goto rulerelationTermEx;
26228
        	        }
26229
8
        	        if (HASFAILED())
26230
        	        {
26231
        	            return ;
26232
        	        }
26233
26234
26235
8
        	        FOLLOWPUSH(FOLLOW_formula_in_relationTerm6255);
26236
8
        	        formula(ctx, f);
26237
26238
8
        	        FOLLOWPOP();
26239
8
        	        if  (HASEXCEPTION())
26240
        	        {
26241
        	            goto rulerelationTermEx;
26242
        	        }
26243
8
        	        if (HASFAILED())
26244
        	        {
26245
        	            return ;
26246
        	        }
26247
26248
26249
8
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_relationTerm6258);
26250
8
        	        if  (HASEXCEPTION())
26251
        	        {
26252
        	            goto rulerelationTermEx;
26253
        	        }
26254
8
        	        if (HASFAILED())
26255
        	        {
26256
        	            return ;
26257
        	        }
26258
26259
26260
8
        	        if ( BACKTRACKING==0 )
26261
        	        {
26262
8
        	             f = MK_TERM(cvc5::api::IDEN, f);
26263
        	        }
26264
26265
26266
        	    }
26267
8
        	    break;
26268
80525
        	case 5:
26269
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1874:5: bvTerm[f]
26270
        	    {
26271
80525
        	        FOLLOWPUSH(FOLLOW_bvTerm_in_relationTerm6270);
26272
80525
        	        bvTerm(ctx, f);
26273
26274
80525
        	        FOLLOWPOP();
26275
80525
        	        if  (HASEXCEPTION())
26276
        	        {
26277
        	            goto rulerelationTermEx;
26278
        	        }
26279
80525
        	        if (HASFAILED())
26280
        	        {
26281
        	            return ;
26282
        	        }
26283
26284
26285
        	    }
26286
80525
        	    break;
26287
26288
            }
26289
        }
26290
    }
26291
26292
    // This is where rules clean up and exit
26293
    //
26294
80801
    goto rulerelationTermEx; /* Prevent compiler warnings */
26295
80801
    rulerelationTermEx: ;
26296
26297
80801
            if (HASEXCEPTION())
26298
            {
26299
                PREPORTERROR();
26300
                PRECOVER();
26301
            }
26302
80801
    return ;
26303
}
26304
/* $ANTLR end relationTerm */
26305
26306
/**
26307
 * $ANTLR start bvTerm
26308
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1877:1: bvTerm[cvc5::api::Term& f] : ( BVXOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVNAND_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVCOMP_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVXNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVUMINUS_TOK LPAREN formula[f] RPAREN | BVPLUS_TOK LPAREN k= numeral COMMA formula[f] ( COMMA formula[f2] )+ RPAREN | BVSUB_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN | BVMULT_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN | BVUDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVUREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSMOD_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSHL_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVASHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVLSHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | SX_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVZEROEXTEND_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVREPEAT_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVROTR_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVROTL_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | stringTerm[f] );
26309
 */
26310
static void
26311
80525
bvTerm(pCvcParser ctx, cvc5::api::Term& f)
26312
{
26313
    unsigned k;
26314
    #undef	RETURN_TYPE_k
26315
    #define	RETURN_TYPE_k unsigned
26316
26317
    /* Initialize rule variables
26318
     */
26319
26320
26321
161050
      api::Term f2;
26322
161050
      std::vector<api::Term> args;
26323
26324
    {
26325
        {
26326
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1883:3: ( BVXOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVNAND_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVCOMP_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVXNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVUMINUS_TOK LPAREN formula[f] RPAREN | BVPLUS_TOK LPAREN k= numeral COMMA formula[f] ( COMMA formula[f2] )+ RPAREN | BVSUB_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN | BVMULT_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN | BVUDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVUREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSMOD_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSHL_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVASHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVLSHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | SX_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVZEROEXTEND_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVREPEAT_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVROTR_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVROTL_TOK LPAREN formula[f] COMMA k= numeral RPAREN | BVLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | BVSGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | stringTerm[f] )
26327
26328
            ANTLR3_UINT32 alt101;
26329
26330
80525
            alt101=31;
26331
26332
80525
            switch ( LA(1) )
26333
            {
26334
3
            case BVXOR_TOK:
26335
            	{
26336
3
            		alt101=1;
26337
            	}
26338
3
                break;
26339
            case BVNAND_TOK:
26340
            	{
26341
            		alt101=2;
26342
            	}
26343
                break;
26344
            case BVNOR_TOK:
26345
            	{
26346
            		alt101=3;
26347
            	}
26348
                break;
26349
            case BVCOMP_TOK:
26350
            	{
26351
            		alt101=4;
26352
            	}
26353
                break;
26354
            case BVXNOR_TOK:
26355
            	{
26356
            		alt101=5;
26357
            	}
26358
                break;
26359
12
            case BVUMINUS_TOK:
26360
            	{
26361
12
            		alt101=6;
26362
            	}
26363
12
                break;
26364
32
            case BVPLUS_TOK:
26365
            	{
26366
32
            		alt101=7;
26367
            	}
26368
32
                break;
26369
12
            case BVSUB_TOK:
26370
            	{
26371
12
            		alt101=8;
26372
            	}
26373
12
                break;
26374
15
            case BVMULT_TOK:
26375
            	{
26376
15
            		alt101=9;
26377
            	}
26378
15
                break;
26379
3
            case BVUDIV_TOK:
26380
            	{
26381
3
            		alt101=10;
26382
            	}
26383
3
                break;
26384
6
            case BVSDIV_TOK:
26385
            	{
26386
6
            		alt101=11;
26387
            	}
26388
6
                break;
26389
3
            case BVUREM_TOK:
26390
            	{
26391
3
            		alt101=12;
26392
            	}
26393
3
                break;
26394
3
            case BVSREM_TOK:
26395
            	{
26396
3
            		alt101=13;
26397
            	}
26398
3
                break;
26399
3
            case BVSMOD_TOK:
26400
            	{
26401
3
            		alt101=14;
26402
            	}
26403
3
                break;
26404
            case BVSHL_TOK:
26405
            	{
26406
            		alt101=15;
26407
            	}
26408
                break;
26409
            case BVASHR_TOK:
26410
            	{
26411
            		alt101=16;
26412
            	}
26413
                break;
26414
            case BVLSHR_TOK:
26415
            	{
26416
            		alt101=17;
26417
            	}
26418
                break;
26419
9
            case SX_TOK:
26420
            	{
26421
9
            		alt101=18;
26422
            	}
26423
9
                break;
26424
17
            case BVZEROEXTEND_TOK:
26425
            	{
26426
17
            		alt101=19;
26427
            	}
26428
17
                break;
26429
3
            case BVREPEAT_TOK:
26430
            	{
26431
3
            		alt101=20;
26432
            	}
26433
3
                break;
26434
3
            case BVROTR_TOK:
26435
            	{
26436
3
            		alt101=21;
26437
            	}
26438
3
                break;
26439
3
            case BVROTL_TOK:
26440
            	{
26441
3
            		alt101=22;
26442
            	}
26443
3
                break;
26444
6
            case BVLT_TOK:
26445
            	{
26446
6
            		alt101=23;
26447
            	}
26448
6
                break;
26449
6
            case BVLE_TOK:
26450
            	{
26451
6
            		alt101=24;
26452
            	}
26453
6
                break;
26454
            case BVGT_TOK:
26455
            	{
26456
            		alt101=25;
26457
            	}
26458
                break;
26459
            case BVGE_TOK:
26460
            	{
26461
            		alt101=26;
26462
            	}
26463
                break;
26464
            case BVSLT_TOK:
26465
            	{
26466
            		alt101=27;
26467
            	}
26468
                break;
26469
            case BVSLE_TOK:
26470
            	{
26471
            		alt101=28;
26472
            	}
26473
                break;
26474
            case BVSGT_TOK:
26475
            	{
26476
            		alt101=29;
26477
            	}
26478
                break;
26479
            case BVSGE_TOK:
26480
            	{
26481
            		alt101=30;
26482
            	}
26483
                break;
26484
80386
            case ARRAY_TOK:
26485
            case BAR:
26486
            case BINARY_LITERAL:
26487
            case DECIMAL_LITERAL:
26488
            case FALSE_TOK:
26489
            case HEX_LITERAL:
26490
            case IDENTIFIER:
26491
            case IF_TOK:
26492
            case INTEGER_LITERAL:
26493
            case LBRACE:
26494
            case LPAREN:
26495
            case PARENHASH:
26496
            case REGEXP_COMPLEMENT_TOK:
26497
            case REGEXP_CONCAT_TOK:
26498
            case REGEXP_EMPTY_TOK:
26499
            case REGEXP_INTER_TOK:
26500
            case REGEXP_LOOP_TOK:
26501
            case REGEXP_OPT_TOK:
26502
            case REGEXP_PLUS_TOK:
26503
            case REGEXP_RANGE_TOK:
26504
            case REGEXP_SIGMA_TOK:
26505
            case REGEXP_STAR_TOK:
26506
            case REGEXP_UNION_TOK:
26507
            case SEQ_UNIT_TOK:
26508
            case SETS_CARD_TOK:
26509
            case SETS_CHOOSE_TOK:
26510
            case STRING_CHARAT_TOK:
26511
            case STRING_CONCAT_TOK:
26512
            case STRING_CONTAINS_TOK:
26513
            case STRING_INDEXOF_TOK:
26514
            case STRING_ITOS_TOK:
26515
            case STRING_LENGTH_TOK:
26516
            case STRING_LITERAL:
26517
            case STRING_PREFIXOF_TOK:
26518
            case STRING_REPLACE_ALL_TOK:
26519
            case STRING_REPLACE_TOK:
26520
            case STRING_REV_TOK:
26521
            case STRING_STOI_TOK:
26522
            case STRING_SUBSTR_TOK:
26523
            case STRING_SUFFIXOF_TOK:
26524
            case STRING_TOLOWER_TOK:
26525
            case STRING_TOUPPER_TOK:
26526
            case STRING_TO_REGEXP_TOK:
26527
            case TRUE_TOK:
26528
            case UNIVSET_TOK:
26529
            	{
26530
80386
            		alt101=31;
26531
            	}
26532
80386
                break;
26533
26534
            default:
26535
                if (BACKTRACKING>0)
26536
                {
26537
                    FAILEDFLAG = ANTLR3_TRUE;
26538
                    return ;
26539
                }
26540
26541
                CONSTRUCTEX();
26542
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
26543
                EXCEPTION->message      = (void *)"";
26544
                EXCEPTION->decisionNum  = 101;
26545
                EXCEPTION->state        = 0;
26546
26547
26548
                goto rulebvTermEx;
26549
26550
            }
26551
26552
80525
            switch (alt101)
26553
            {
26554
3
        	case 1:
26555
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1883:5: BVXOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
26556
        	    {
26557
3
        	         MATCHT(BVXOR_TOK, &FOLLOW_BVXOR_TOK_in_bvTerm6296);
26558
3
        	        if  (HASEXCEPTION())
26559
        	        {
26560
        	            goto rulebvTermEx;
26561
        	        }
26562
3
        	        if (HASFAILED())
26563
        	        {
26564
        	            return ;
26565
        	        }
26566
26567
26568
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6298);
26569
3
        	        if  (HASEXCEPTION())
26570
        	        {
26571
        	            goto rulebvTermEx;
26572
        	        }
26573
3
        	        if (HASFAILED())
26574
        	        {
26575
        	            return ;
26576
        	        }
26577
26578
26579
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6300);
26580
3
        	        formula(ctx, f);
26581
26582
3
        	        FOLLOWPOP();
26583
3
        	        if  (HASEXCEPTION())
26584
        	        {
26585
        	            goto rulebvTermEx;
26586
        	        }
26587
3
        	        if (HASFAILED())
26588
        	        {
26589
        	            return ;
26590
        	        }
26591
26592
26593
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6303);
26594
3
        	        if  (HASEXCEPTION())
26595
        	        {
26596
        	            goto rulebvTermEx;
26597
        	        }
26598
3
        	        if (HASFAILED())
26599
        	        {
26600
        	            return ;
26601
        	        }
26602
26603
26604
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6305);
26605
3
        	        formula(ctx, f2);
26606
26607
3
        	        FOLLOWPOP();
26608
3
        	        if  (HASEXCEPTION())
26609
        	        {
26610
        	            goto rulebvTermEx;
26611
        	        }
26612
3
        	        if (HASFAILED())
26613
        	        {
26614
        	            return ;
26615
        	        }
26616
26617
26618
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6308);
26619
3
        	        if  (HASEXCEPTION())
26620
        	        {
26621
        	            goto rulebvTermEx;
26622
        	        }
26623
3
        	        if (HASFAILED())
26624
        	        {
26625
        	            return ;
26626
        	        }
26627
26628
26629
3
        	        if ( BACKTRACKING==0 )
26630
        	        {
26631
3
        	             f = MK_TERM(cvc5::api::BITVECTOR_XOR, f, f2);
26632
        	        }
26633
26634
26635
        	    }
26636
3
        	    break;
26637
        	case 2:
26638
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1885:5: BVNAND_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
26639
        	    {
26640
        	         MATCHT(BVNAND_TOK, &FOLLOW_BVNAND_TOK_in_bvTerm6320);
26641
        	        if  (HASEXCEPTION())
26642
        	        {
26643
        	            goto rulebvTermEx;
26644
        	        }
26645
        	        if (HASFAILED())
26646
        	        {
26647
        	            return ;
26648
        	        }
26649
26650
26651
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6322);
26652
        	        if  (HASEXCEPTION())
26653
        	        {
26654
        	            goto rulebvTermEx;
26655
        	        }
26656
        	        if (HASFAILED())
26657
        	        {
26658
        	            return ;
26659
        	        }
26660
26661
26662
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6324);
26663
        	        formula(ctx, f);
26664
26665
        	        FOLLOWPOP();
26666
        	        if  (HASEXCEPTION())
26667
        	        {
26668
        	            goto rulebvTermEx;
26669
        	        }
26670
        	        if (HASFAILED())
26671
        	        {
26672
        	            return ;
26673
        	        }
26674
26675
26676
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6327);
26677
        	        if  (HASEXCEPTION())
26678
        	        {
26679
        	            goto rulebvTermEx;
26680
        	        }
26681
        	        if (HASFAILED())
26682
        	        {
26683
        	            return ;
26684
        	        }
26685
26686
26687
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6329);
26688
        	        formula(ctx, f2);
26689
26690
        	        FOLLOWPOP();
26691
        	        if  (HASEXCEPTION())
26692
        	        {
26693
        	            goto rulebvTermEx;
26694
        	        }
26695
        	        if (HASFAILED())
26696
        	        {
26697
        	            return ;
26698
        	        }
26699
26700
26701
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6332);
26702
        	        if  (HASEXCEPTION())
26703
        	        {
26704
        	            goto rulebvTermEx;
26705
        	        }
26706
        	        if (HASFAILED())
26707
        	        {
26708
        	            return ;
26709
        	        }
26710
26711
26712
        	        if ( BACKTRACKING==0 )
26713
        	        {
26714
        	             f = MK_TERM(cvc5::api::BITVECTOR_NAND, f, f2);
26715
        	        }
26716
26717
26718
        	    }
26719
        	    break;
26720
        	case 3:
26721
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1887:5: BVNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
26722
        	    {
26723
        	         MATCHT(BVNOR_TOK, &FOLLOW_BVNOR_TOK_in_bvTerm6344);
26724
        	        if  (HASEXCEPTION())
26725
        	        {
26726
        	            goto rulebvTermEx;
26727
        	        }
26728
        	        if (HASFAILED())
26729
        	        {
26730
        	            return ;
26731
        	        }
26732
26733
26734
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6346);
26735
        	        if  (HASEXCEPTION())
26736
        	        {
26737
        	            goto rulebvTermEx;
26738
        	        }
26739
        	        if (HASFAILED())
26740
        	        {
26741
        	            return ;
26742
        	        }
26743
26744
26745
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6348);
26746
        	        formula(ctx, f);
26747
26748
        	        FOLLOWPOP();
26749
        	        if  (HASEXCEPTION())
26750
        	        {
26751
        	            goto rulebvTermEx;
26752
        	        }
26753
        	        if (HASFAILED())
26754
        	        {
26755
        	            return ;
26756
        	        }
26757
26758
26759
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6351);
26760
        	        if  (HASEXCEPTION())
26761
        	        {
26762
        	            goto rulebvTermEx;
26763
        	        }
26764
        	        if (HASFAILED())
26765
        	        {
26766
        	            return ;
26767
        	        }
26768
26769
26770
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6353);
26771
        	        formula(ctx, f2);
26772
26773
        	        FOLLOWPOP();
26774
        	        if  (HASEXCEPTION())
26775
        	        {
26776
        	            goto rulebvTermEx;
26777
        	        }
26778
        	        if (HASFAILED())
26779
        	        {
26780
        	            return ;
26781
        	        }
26782
26783
26784
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6356);
26785
        	        if  (HASEXCEPTION())
26786
        	        {
26787
        	            goto rulebvTermEx;
26788
        	        }
26789
        	        if (HASFAILED())
26790
        	        {
26791
        	            return ;
26792
        	        }
26793
26794
26795
        	        if ( BACKTRACKING==0 )
26796
        	        {
26797
        	             f = MK_TERM(cvc5::api::BITVECTOR_NOR, f, f2);
26798
        	        }
26799
26800
26801
        	    }
26802
        	    break;
26803
        	case 4:
26804
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1889:5: BVCOMP_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
26805
        	    {
26806
        	         MATCHT(BVCOMP_TOK, &FOLLOW_BVCOMP_TOK_in_bvTerm6368);
26807
        	        if  (HASEXCEPTION())
26808
        	        {
26809
        	            goto rulebvTermEx;
26810
        	        }
26811
        	        if (HASFAILED())
26812
        	        {
26813
        	            return ;
26814
        	        }
26815
26816
26817
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6370);
26818
        	        if  (HASEXCEPTION())
26819
        	        {
26820
        	            goto rulebvTermEx;
26821
        	        }
26822
        	        if (HASFAILED())
26823
        	        {
26824
        	            return ;
26825
        	        }
26826
26827
26828
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6372);
26829
        	        formula(ctx, f);
26830
26831
        	        FOLLOWPOP();
26832
        	        if  (HASEXCEPTION())
26833
        	        {
26834
        	            goto rulebvTermEx;
26835
        	        }
26836
        	        if (HASFAILED())
26837
        	        {
26838
        	            return ;
26839
        	        }
26840
26841
26842
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6375);
26843
        	        if  (HASEXCEPTION())
26844
        	        {
26845
        	            goto rulebvTermEx;
26846
        	        }
26847
        	        if (HASFAILED())
26848
        	        {
26849
        	            return ;
26850
        	        }
26851
26852
26853
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6377);
26854
        	        formula(ctx, f2);
26855
26856
        	        FOLLOWPOP();
26857
        	        if  (HASEXCEPTION())
26858
        	        {
26859
        	            goto rulebvTermEx;
26860
        	        }
26861
        	        if (HASFAILED())
26862
        	        {
26863
        	            return ;
26864
        	        }
26865
26866
26867
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6380);
26868
        	        if  (HASEXCEPTION())
26869
        	        {
26870
        	            goto rulebvTermEx;
26871
        	        }
26872
        	        if (HASFAILED())
26873
        	        {
26874
        	            return ;
26875
        	        }
26876
26877
26878
        	        if ( BACKTRACKING==0 )
26879
        	        {
26880
        	             f = MK_TERM(cvc5::api::BITVECTOR_COMP, f, f2);
26881
        	        }
26882
26883
26884
        	    }
26885
        	    break;
26886
        	case 5:
26887
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1891:5: BVXNOR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
26888
        	    {
26889
        	         MATCHT(BVXNOR_TOK, &FOLLOW_BVXNOR_TOK_in_bvTerm6392);
26890
        	        if  (HASEXCEPTION())
26891
        	        {
26892
        	            goto rulebvTermEx;
26893
        	        }
26894
        	        if (HASFAILED())
26895
        	        {
26896
        	            return ;
26897
        	        }
26898
26899
26900
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6394);
26901
        	        if  (HASEXCEPTION())
26902
        	        {
26903
        	            goto rulebvTermEx;
26904
        	        }
26905
        	        if (HASFAILED())
26906
        	        {
26907
        	            return ;
26908
        	        }
26909
26910
26911
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6396);
26912
        	        formula(ctx, f);
26913
26914
        	        FOLLOWPOP();
26915
        	        if  (HASEXCEPTION())
26916
        	        {
26917
        	            goto rulebvTermEx;
26918
        	        }
26919
        	        if (HASFAILED())
26920
        	        {
26921
        	            return ;
26922
        	        }
26923
26924
26925
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6399);
26926
        	        if  (HASEXCEPTION())
26927
        	        {
26928
        	            goto rulebvTermEx;
26929
        	        }
26930
        	        if (HASFAILED())
26931
        	        {
26932
        	            return ;
26933
        	        }
26934
26935
26936
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6401);
26937
        	        formula(ctx, f2);
26938
26939
        	        FOLLOWPOP();
26940
        	        if  (HASEXCEPTION())
26941
        	        {
26942
        	            goto rulebvTermEx;
26943
        	        }
26944
        	        if (HASFAILED())
26945
        	        {
26946
        	            return ;
26947
        	        }
26948
26949
26950
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6404);
26951
        	        if  (HASEXCEPTION())
26952
        	        {
26953
        	            goto rulebvTermEx;
26954
        	        }
26955
        	        if (HASFAILED())
26956
        	        {
26957
        	            return ;
26958
        	        }
26959
26960
26961
        	        if ( BACKTRACKING==0 )
26962
        	        {
26963
        	             f = MK_TERM(cvc5::api::BITVECTOR_XNOR, f, f2);
26964
        	        }
26965
26966
26967
        	    }
26968
        	    break;
26969
12
        	case 6:
26970
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1895:5: BVUMINUS_TOK LPAREN formula[f] RPAREN
26971
        	    {
26972
12
        	         MATCHT(BVUMINUS_TOK, &FOLLOW_BVUMINUS_TOK_in_bvTerm6423);
26973
12
        	        if  (HASEXCEPTION())
26974
        	        {
26975
        	            goto rulebvTermEx;
26976
        	        }
26977
12
        	        if (HASFAILED())
26978
        	        {
26979
        	            return ;
26980
        	        }
26981
26982
26983
12
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6425);
26984
12
        	        if  (HASEXCEPTION())
26985
        	        {
26986
        	            goto rulebvTermEx;
26987
        	        }
26988
12
        	        if (HASFAILED())
26989
        	        {
26990
        	            return ;
26991
        	        }
26992
26993
26994
12
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6427);
26995
12
        	        formula(ctx, f);
26996
26997
12
        	        FOLLOWPOP();
26998
12
        	        if  (HASEXCEPTION())
26999
        	        {
27000
        	            goto rulebvTermEx;
27001
        	        }
27002
12
        	        if (HASFAILED())
27003
        	        {
27004
        	            return ;
27005
        	        }
27006
27007
27008
12
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6430);
27009
12
        	        if  (HASEXCEPTION())
27010
        	        {
27011
        	            goto rulebvTermEx;
27012
        	        }
27013
12
        	        if (HASFAILED())
27014
        	        {
27015
        	            return ;
27016
        	        }
27017
27018
27019
12
        	        if ( BACKTRACKING==0 )
27020
        	        {
27021
12
        	             f = MK_TERM(cvc5::api::BITVECTOR_NEG, f);
27022
        	        }
27023
27024
27025
        	    }
27026
12
        	    break;
27027
32
        	case 7:
27028
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1898:5: BVPLUS_TOK LPAREN k= numeral COMMA formula[f] ( COMMA formula[f2] )+ RPAREN
27029
        	    {
27030
32
        	         MATCHT(BVPLUS_TOK, &FOLLOW_BVPLUS_TOK_in_bvTerm6448);
27031
32
        	        if  (HASEXCEPTION())
27032
        	        {
27033
        	            goto rulebvTermEx;
27034
        	        }
27035
32
        	        if (HASFAILED())
27036
        	        {
27037
        	            return ;
27038
        	        }
27039
27040
27041
32
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6450);
27042
32
        	        if  (HASEXCEPTION())
27043
        	        {
27044
        	            goto rulebvTermEx;
27045
        	        }
27046
32
        	        if (HASFAILED())
27047
        	        {
27048
        	            return ;
27049
        	        }
27050
27051
27052
32
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6454);
27053
32
        	        k=numeral(ctx);
27054
27055
32
        	        FOLLOWPOP();
27056
32
        	        if  (HASEXCEPTION())
27057
        	        {
27058
        	            goto rulebvTermEx;
27059
        	        }
27060
32
        	        if (HASFAILED())
27061
        	        {
27062
        	            return ;
27063
        	        }
27064
27065
27066
32
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6456);
27067
32
        	        if  (HASEXCEPTION())
27068
        	        {
27069
        	            goto rulebvTermEx;
27070
        	        }
27071
32
        	        if (HASFAILED())
27072
        	        {
27073
        	            return ;
27074
        	        }
27075
27076
27077
32
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6458);
27078
32
        	        formula(ctx, f);
27079
27080
32
        	        FOLLOWPOP();
27081
32
        	        if  (HASEXCEPTION())
27082
        	        {
27083
        	            goto rulebvTermEx;
27084
        	        }
27085
32
        	        if (HASFAILED())
27086
        	        {
27087
        	            return ;
27088
        	        }
27089
27090
27091
32
        	        if ( BACKTRACKING==0 )
27092
        	        {
27093
32
        	             args.push_back(f);
27094
        	        }
27095
27096
27097
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1899:5: ( COMMA formula[f2] )+
27098
        	        {
27099
32
        	            int cnt100=0;
27100
27101
        	            for (;;)
27102
        	            {
27103
64
        	                int alt100=2;
27104
64
        	        	switch ( LA(1) )
27105
        	        	{
27106
32
        	        	case COMMA:
27107
        	        		{
27108
32
        	        			alt100=1;
27109
        	        		}
27110
32
        	        	    break;
27111
27112
        	        	}
27113
27114
64
        	        	switch (alt100)
27115
        	        	{
27116
32
        	        	    case 1:
27117
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1899:7: COMMA formula[f2]
27118
        	        	        {
27119
32
        	        	             MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6469);
27120
32
        	        	            if  (HASEXCEPTION())
27121
        	        	            {
27122
        	        	                goto rulebvTermEx;
27123
        	        	            }
27124
32
        	        	            if (HASFAILED())
27125
        	        	            {
27126
        	        	                return ;
27127
        	        	            }
27128
27129
27130
32
        	        	            FOLLOWPUSH(FOLLOW_formula_in_bvTerm6471);
27131
32
        	        	            formula(ctx, f2);
27132
27133
32
        	        	            FOLLOWPOP();
27134
32
        	        	            if  (HASEXCEPTION())
27135
        	        	            {
27136
        	        	                goto rulebvTermEx;
27137
        	        	            }
27138
32
        	        	            if (HASFAILED())
27139
        	        	            {
27140
        	        	                return ;
27141
        	        	            }
27142
27143
27144
32
        	        	            if ( BACKTRACKING==0 )
27145
        	        	            {
27146
32
        	        	                 args.push_back(f2);
27147
        	        	            }
27148
27149
27150
        	        	        }
27151
32
        	        	        break;
27152
27153
32
        	        	    default:
27154
27155
32
        	        		if ( cnt100 >= 1 )
27156
        	        		{
27157
32
        	        		    goto loop100;
27158
        	        		}
27159
        	        		if (BACKTRACKING>0)
27160
        	        		{
27161
        	        		    FAILEDFLAG = ANTLR3_TRUE;
27162
        	        		    return ;
27163
        	        		}
27164
27165
        	        		/* mismatchedSetEx()
27166
        	        		 */
27167
        	        		CONSTRUCTEX();
27168
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
27169
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
27170
27171
27172
        	        		goto rulebvTermEx;
27173
        	        	}
27174
32
        	        	cnt100++;
27175
32
        	            }
27176
32
        	            loop100: ;	/* Jump to here if this rule does not match */
27177
        	        }
27178
27179
32
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6479);
27180
32
        	        if  (HASEXCEPTION())
27181
        	        {
27182
        	            goto rulebvTermEx;
27183
        	        }
27184
32
        	        if (HASFAILED())
27185
        	        {
27186
        	            return ;
27187
        	        }
27188
27189
27190
32
        	        if ( BACKTRACKING==0 )
27191
        	        {
27192
27193
32
        	                  if (k <= 0) {
27194
        	                    PARSER_STATE->parseError("BVPLUS(k,_,_) must have k > 0");
27195
        	                  }
27196
96
        	                  for (unsigned i = 0; i < args.size(); ++ i) {
27197
64
        	                    ENSURE_BV_SIZE(k, args[i]);
27198
        	                  }
27199
32
        	                  f = MK_TERM(cvc5::api::BITVECTOR_ADD, args);
27200
27201
        	        }
27202
27203
27204
        	    }
27205
32
        	    break;
27206
12
        	case 8:
27207
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1910:5: BVSUB_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN
27208
        	    {
27209
12
        	         MATCHT(BVSUB_TOK, &FOLLOW_BVSUB_TOK_in_bvTerm6497);
27210
12
        	        if  (HASEXCEPTION())
27211
        	        {
27212
        	            goto rulebvTermEx;
27213
        	        }
27214
12
        	        if (HASFAILED())
27215
        	        {
27216
        	            return ;
27217
        	        }
27218
27219
27220
12
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6499);
27221
12
        	        if  (HASEXCEPTION())
27222
        	        {
27223
        	            goto rulebvTermEx;
27224
        	        }
27225
12
        	        if (HASFAILED())
27226
        	        {
27227
        	            return ;
27228
        	        }
27229
27230
27231
12
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6503);
27232
12
        	        k=numeral(ctx);
27233
27234
12
        	        FOLLOWPOP();
27235
12
        	        if  (HASEXCEPTION())
27236
        	        {
27237
        	            goto rulebvTermEx;
27238
        	        }
27239
12
        	        if (HASFAILED())
27240
        	        {
27241
        	            return ;
27242
        	        }
27243
27244
27245
12
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6505);
27246
12
        	        if  (HASEXCEPTION())
27247
        	        {
27248
        	            goto rulebvTermEx;
27249
        	        }
27250
12
        	        if (HASFAILED())
27251
        	        {
27252
        	            return ;
27253
        	        }
27254
27255
27256
12
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6507);
27257
12
        	        formula(ctx, f);
27258
27259
12
        	        FOLLOWPOP();
27260
12
        	        if  (HASEXCEPTION())
27261
        	        {
27262
        	            goto rulebvTermEx;
27263
        	        }
27264
12
        	        if (HASFAILED())
27265
        	        {
27266
        	            return ;
27267
        	        }
27268
27269
27270
12
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6510);
27271
12
        	        if  (HASEXCEPTION())
27272
        	        {
27273
        	            goto rulebvTermEx;
27274
        	        }
27275
12
        	        if (HASFAILED())
27276
        	        {
27277
        	            return ;
27278
        	        }
27279
27280
27281
12
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6512);
27282
12
        	        formula(ctx, f2);
27283
27284
12
        	        FOLLOWPOP();
27285
12
        	        if  (HASEXCEPTION())
27286
        	        {
27287
        	            goto rulebvTermEx;
27288
        	        }
27289
12
        	        if (HASFAILED())
27290
        	        {
27291
        	            return ;
27292
        	        }
27293
27294
27295
12
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6515);
27296
12
        	        if  (HASEXCEPTION())
27297
        	        {
27298
        	            goto rulebvTermEx;
27299
        	        }
27300
12
        	        if (HASFAILED())
27301
        	        {
27302
        	            return ;
27303
        	        }
27304
27305
27306
12
        	        if ( BACKTRACKING==0 )
27307
        	        {
27308
27309
12
        	                  if (k <= 0) {
27310
        	                    PARSER_STATE->parseError("BVSUB(k,_,_) must have k > 0");
27311
        	                  }
27312
12
        	                  ENSURE_BV_SIZE(k, f);
27313
12
        	                  ENSURE_BV_SIZE(k, f2);
27314
12
        	                  f = MK_TERM(cvc5::api::BITVECTOR_SUB, f, f2);
27315
27316
        	        }
27317
27318
27319
        	    }
27320
12
        	    break;
27321
15
        	case 9:
27322
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1920:5: BVMULT_TOK LPAREN k= numeral COMMA formula[f] COMMA formula[f2] RPAREN
27323
        	    {
27324
15
        	         MATCHT(BVMULT_TOK, &FOLLOW_BVMULT_TOK_in_bvTerm6533);
27325
15
        	        if  (HASEXCEPTION())
27326
        	        {
27327
        	            goto rulebvTermEx;
27328
        	        }
27329
15
        	        if (HASFAILED())
27330
        	        {
27331
        	            return ;
27332
        	        }
27333
27334
27335
15
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6535);
27336
15
        	        if  (HASEXCEPTION())
27337
        	        {
27338
        	            goto rulebvTermEx;
27339
        	        }
27340
15
        	        if (HASFAILED())
27341
        	        {
27342
        	            return ;
27343
        	        }
27344
27345
27346
15
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6539);
27347
15
        	        k=numeral(ctx);
27348
27349
15
        	        FOLLOWPOP();
27350
15
        	        if  (HASEXCEPTION())
27351
        	        {
27352
        	            goto rulebvTermEx;
27353
        	        }
27354
15
        	        if (HASFAILED())
27355
        	        {
27356
        	            return ;
27357
        	        }
27358
27359
27360
15
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6541);
27361
15
        	        if  (HASEXCEPTION())
27362
        	        {
27363
        	            goto rulebvTermEx;
27364
        	        }
27365
15
        	        if (HASFAILED())
27366
        	        {
27367
        	            return ;
27368
        	        }
27369
27370
27371
15
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6543);
27372
15
        	        formula(ctx, f);
27373
27374
15
        	        FOLLOWPOP();
27375
15
        	        if  (HASEXCEPTION())
27376
        	        {
27377
        	            goto rulebvTermEx;
27378
        	        }
27379
15
        	        if (HASFAILED())
27380
        	        {
27381
        	            return ;
27382
        	        }
27383
27384
27385
15
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6546);
27386
15
        	        if  (HASEXCEPTION())
27387
        	        {
27388
        	            goto rulebvTermEx;
27389
        	        }
27390
15
        	        if (HASFAILED())
27391
        	        {
27392
        	            return ;
27393
        	        }
27394
27395
27396
15
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6548);
27397
15
        	        formula(ctx, f2);
27398
27399
15
        	        FOLLOWPOP();
27400
15
        	        if  (HASEXCEPTION())
27401
        	        {
27402
        	            goto rulebvTermEx;
27403
        	        }
27404
15
        	        if (HASFAILED())
27405
        	        {
27406
        	            return ;
27407
        	        }
27408
27409
27410
15
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6551);
27411
15
        	        if  (HASEXCEPTION())
27412
        	        {
27413
        	            goto rulebvTermEx;
27414
        	        }
27415
15
        	        if (HASFAILED())
27416
        	        {
27417
        	            return ;
27418
        	        }
27419
27420
27421
15
        	        if ( BACKTRACKING==0 )
27422
        	        {
27423
27424
15
        	                  if (k <= 0) {
27425
        	                    PARSER_STATE->parseError("BVMULT(k,_,_) must have k > 0");
27426
        	                  }
27427
15
        	                  ENSURE_BV_SIZE(k, f);
27428
15
        	                  ENSURE_BV_SIZE(k, f2);
27429
15
        	                  f = MK_TERM(cvc5::api::BITVECTOR_MULT, f, f2);
27430
27431
        	        }
27432
27433
27434
        	    }
27435
15
        	    break;
27436
3
        	case 10:
27437
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1930:5: BVUDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27438
        	    {
27439
3
        	         MATCHT(BVUDIV_TOK, &FOLLOW_BVUDIV_TOK_in_bvTerm6569);
27440
3
        	        if  (HASEXCEPTION())
27441
        	        {
27442
        	            goto rulebvTermEx;
27443
        	        }
27444
3
        	        if (HASFAILED())
27445
        	        {
27446
        	            return ;
27447
        	        }
27448
27449
27450
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6571);
27451
3
        	        if  (HASEXCEPTION())
27452
        	        {
27453
        	            goto rulebvTermEx;
27454
        	        }
27455
3
        	        if (HASFAILED())
27456
        	        {
27457
        	            return ;
27458
        	        }
27459
27460
27461
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6573);
27462
3
        	        formula(ctx, f);
27463
27464
3
        	        FOLLOWPOP();
27465
3
        	        if  (HASEXCEPTION())
27466
        	        {
27467
        	            goto rulebvTermEx;
27468
        	        }
27469
3
        	        if (HASFAILED())
27470
        	        {
27471
        	            return ;
27472
        	        }
27473
27474
27475
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6576);
27476
3
        	        if  (HASEXCEPTION())
27477
        	        {
27478
        	            goto rulebvTermEx;
27479
        	        }
27480
3
        	        if (HASFAILED())
27481
        	        {
27482
        	            return ;
27483
        	        }
27484
27485
27486
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6578);
27487
3
        	        formula(ctx, f2);
27488
27489
3
        	        FOLLOWPOP();
27490
3
        	        if  (HASEXCEPTION())
27491
        	        {
27492
        	            goto rulebvTermEx;
27493
        	        }
27494
3
        	        if (HASFAILED())
27495
        	        {
27496
        	            return ;
27497
        	        }
27498
27499
27500
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6581);
27501
3
        	        if  (HASEXCEPTION())
27502
        	        {
27503
        	            goto rulebvTermEx;
27504
        	        }
27505
3
        	        if (HASFAILED())
27506
        	        {
27507
        	            return ;
27508
        	        }
27509
27510
27511
3
        	        if ( BACKTRACKING==0 )
27512
        	        {
27513
3
        	             f = MK_TERM(cvc5::api::BITVECTOR_UDIV, f, f2);
27514
        	        }
27515
27516
27517
        	    }
27518
3
        	    break;
27519
6
        	case 11:
27520
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1933:5: BVSDIV_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27521
        	    {
27522
6
        	         MATCHT(BVSDIV_TOK, &FOLLOW_BVSDIV_TOK_in_bvTerm6599);
27523
6
        	        if  (HASEXCEPTION())
27524
        	        {
27525
        	            goto rulebvTermEx;
27526
        	        }
27527
6
        	        if (HASFAILED())
27528
        	        {
27529
        	            return ;
27530
        	        }
27531
27532
27533
6
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6601);
27534
6
        	        if  (HASEXCEPTION())
27535
        	        {
27536
        	            goto rulebvTermEx;
27537
        	        }
27538
6
        	        if (HASFAILED())
27539
        	        {
27540
        	            return ;
27541
        	        }
27542
27543
27544
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6603);
27545
6
        	        formula(ctx, f);
27546
27547
6
        	        FOLLOWPOP();
27548
6
        	        if  (HASEXCEPTION())
27549
        	        {
27550
        	            goto rulebvTermEx;
27551
        	        }
27552
6
        	        if (HASFAILED())
27553
        	        {
27554
        	            return ;
27555
        	        }
27556
27557
27558
6
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6606);
27559
6
        	        if  (HASEXCEPTION())
27560
        	        {
27561
        	            goto rulebvTermEx;
27562
        	        }
27563
6
        	        if (HASFAILED())
27564
        	        {
27565
        	            return ;
27566
        	        }
27567
27568
27569
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6608);
27570
6
        	        formula(ctx, f2);
27571
27572
6
        	        FOLLOWPOP();
27573
6
        	        if  (HASEXCEPTION())
27574
        	        {
27575
        	            goto rulebvTermEx;
27576
        	        }
27577
6
        	        if (HASFAILED())
27578
        	        {
27579
        	            return ;
27580
        	        }
27581
27582
27583
6
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6611);
27584
6
        	        if  (HASEXCEPTION())
27585
        	        {
27586
        	            goto rulebvTermEx;
27587
        	        }
27588
6
        	        if (HASFAILED())
27589
        	        {
27590
        	            return ;
27591
        	        }
27592
27593
27594
6
        	        if ( BACKTRACKING==0 )
27595
        	        {
27596
6
        	             f = MK_TERM(cvc5::api::BITVECTOR_SDIV, f, f2);
27597
        	        }
27598
27599
27600
        	    }
27601
6
        	    break;
27602
3
        	case 12:
27603
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1936:5: BVUREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27604
        	    {
27605
3
        	         MATCHT(BVUREM_TOK, &FOLLOW_BVUREM_TOK_in_bvTerm6629);
27606
3
        	        if  (HASEXCEPTION())
27607
        	        {
27608
        	            goto rulebvTermEx;
27609
        	        }
27610
3
        	        if (HASFAILED())
27611
        	        {
27612
        	            return ;
27613
        	        }
27614
27615
27616
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6631);
27617
3
        	        if  (HASEXCEPTION())
27618
        	        {
27619
        	            goto rulebvTermEx;
27620
        	        }
27621
3
        	        if (HASFAILED())
27622
        	        {
27623
        	            return ;
27624
        	        }
27625
27626
27627
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6633);
27628
3
        	        formula(ctx, f);
27629
27630
3
        	        FOLLOWPOP();
27631
3
        	        if  (HASEXCEPTION())
27632
        	        {
27633
        	            goto rulebvTermEx;
27634
        	        }
27635
3
        	        if (HASFAILED())
27636
        	        {
27637
        	            return ;
27638
        	        }
27639
27640
27641
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6636);
27642
3
        	        if  (HASEXCEPTION())
27643
        	        {
27644
        	            goto rulebvTermEx;
27645
        	        }
27646
3
        	        if (HASFAILED())
27647
        	        {
27648
        	            return ;
27649
        	        }
27650
27651
27652
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6638);
27653
3
        	        formula(ctx, f2);
27654
27655
3
        	        FOLLOWPOP();
27656
3
        	        if  (HASEXCEPTION())
27657
        	        {
27658
        	            goto rulebvTermEx;
27659
        	        }
27660
3
        	        if (HASFAILED())
27661
        	        {
27662
        	            return ;
27663
        	        }
27664
27665
27666
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6641);
27667
3
        	        if  (HASEXCEPTION())
27668
        	        {
27669
        	            goto rulebvTermEx;
27670
        	        }
27671
3
        	        if (HASFAILED())
27672
        	        {
27673
        	            return ;
27674
        	        }
27675
27676
27677
3
        	        if ( BACKTRACKING==0 )
27678
        	        {
27679
3
        	             f = MK_TERM(cvc5::api::BITVECTOR_UREM, f, f2);
27680
        	        }
27681
27682
27683
        	    }
27684
3
        	    break;
27685
3
        	case 13:
27686
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1939:5: BVSREM_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27687
        	    {
27688
3
        	         MATCHT(BVSREM_TOK, &FOLLOW_BVSREM_TOK_in_bvTerm6659);
27689
3
        	        if  (HASEXCEPTION())
27690
        	        {
27691
        	            goto rulebvTermEx;
27692
        	        }
27693
3
        	        if (HASFAILED())
27694
        	        {
27695
        	            return ;
27696
        	        }
27697
27698
27699
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6661);
27700
3
        	        if  (HASEXCEPTION())
27701
        	        {
27702
        	            goto rulebvTermEx;
27703
        	        }
27704
3
        	        if (HASFAILED())
27705
        	        {
27706
        	            return ;
27707
        	        }
27708
27709
27710
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6663);
27711
3
        	        formula(ctx, f);
27712
27713
3
        	        FOLLOWPOP();
27714
3
        	        if  (HASEXCEPTION())
27715
        	        {
27716
        	            goto rulebvTermEx;
27717
        	        }
27718
3
        	        if (HASFAILED())
27719
        	        {
27720
        	            return ;
27721
        	        }
27722
27723
27724
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6666);
27725
3
        	        if  (HASEXCEPTION())
27726
        	        {
27727
        	            goto rulebvTermEx;
27728
        	        }
27729
3
        	        if (HASFAILED())
27730
        	        {
27731
        	            return ;
27732
        	        }
27733
27734
27735
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6668);
27736
3
        	        formula(ctx, f2);
27737
27738
3
        	        FOLLOWPOP();
27739
3
        	        if  (HASEXCEPTION())
27740
        	        {
27741
        	            goto rulebvTermEx;
27742
        	        }
27743
3
        	        if (HASFAILED())
27744
        	        {
27745
        	            return ;
27746
        	        }
27747
27748
27749
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6671);
27750
3
        	        if  (HASEXCEPTION())
27751
        	        {
27752
        	            goto rulebvTermEx;
27753
        	        }
27754
3
        	        if (HASFAILED())
27755
        	        {
27756
        	            return ;
27757
        	        }
27758
27759
27760
3
        	        if ( BACKTRACKING==0 )
27761
        	        {
27762
3
        	             f = MK_TERM(cvc5::api::BITVECTOR_SREM, f, f2);
27763
        	        }
27764
27765
27766
        	    }
27767
3
        	    break;
27768
3
        	case 14:
27769
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1942:5: BVSMOD_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27770
        	    {
27771
3
        	         MATCHT(BVSMOD_TOK, &FOLLOW_BVSMOD_TOK_in_bvTerm6689);
27772
3
        	        if  (HASEXCEPTION())
27773
        	        {
27774
        	            goto rulebvTermEx;
27775
        	        }
27776
3
        	        if (HASFAILED())
27777
        	        {
27778
        	            return ;
27779
        	        }
27780
27781
27782
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6691);
27783
3
        	        if  (HASEXCEPTION())
27784
        	        {
27785
        	            goto rulebvTermEx;
27786
        	        }
27787
3
        	        if (HASFAILED())
27788
        	        {
27789
        	            return ;
27790
        	        }
27791
27792
27793
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6693);
27794
3
        	        formula(ctx, f);
27795
27796
3
        	        FOLLOWPOP();
27797
3
        	        if  (HASEXCEPTION())
27798
        	        {
27799
        	            goto rulebvTermEx;
27800
        	        }
27801
3
        	        if (HASFAILED())
27802
        	        {
27803
        	            return ;
27804
        	        }
27805
27806
27807
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6696);
27808
3
        	        if  (HASEXCEPTION())
27809
        	        {
27810
        	            goto rulebvTermEx;
27811
        	        }
27812
3
        	        if (HASFAILED())
27813
        	        {
27814
        	            return ;
27815
        	        }
27816
27817
27818
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6698);
27819
3
        	        formula(ctx, f2);
27820
27821
3
        	        FOLLOWPOP();
27822
3
        	        if  (HASEXCEPTION())
27823
        	        {
27824
        	            goto rulebvTermEx;
27825
        	        }
27826
3
        	        if (HASFAILED())
27827
        	        {
27828
        	            return ;
27829
        	        }
27830
27831
27832
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6701);
27833
3
        	        if  (HASEXCEPTION())
27834
        	        {
27835
        	            goto rulebvTermEx;
27836
        	        }
27837
3
        	        if (HASFAILED())
27838
        	        {
27839
        	            return ;
27840
        	        }
27841
27842
27843
3
        	        if ( BACKTRACKING==0 )
27844
        	        {
27845
3
        	             f = MK_TERM(cvc5::api::BITVECTOR_SMOD, f, f2);
27846
        	        }
27847
27848
27849
        	    }
27850
3
        	    break;
27851
        	case 15:
27852
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1945:5: BVSHL_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27853
        	    {
27854
        	         MATCHT(BVSHL_TOK, &FOLLOW_BVSHL_TOK_in_bvTerm6719);
27855
        	        if  (HASEXCEPTION())
27856
        	        {
27857
        	            goto rulebvTermEx;
27858
        	        }
27859
        	        if (HASFAILED())
27860
        	        {
27861
        	            return ;
27862
        	        }
27863
27864
27865
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6721);
27866
        	        if  (HASEXCEPTION())
27867
        	        {
27868
        	            goto rulebvTermEx;
27869
        	        }
27870
        	        if (HASFAILED())
27871
        	        {
27872
        	            return ;
27873
        	        }
27874
27875
27876
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6723);
27877
        	        formula(ctx, f);
27878
27879
        	        FOLLOWPOP();
27880
        	        if  (HASEXCEPTION())
27881
        	        {
27882
        	            goto rulebvTermEx;
27883
        	        }
27884
        	        if (HASFAILED())
27885
        	        {
27886
        	            return ;
27887
        	        }
27888
27889
27890
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6726);
27891
        	        if  (HASEXCEPTION())
27892
        	        {
27893
        	            goto rulebvTermEx;
27894
        	        }
27895
        	        if (HASFAILED())
27896
        	        {
27897
        	            return ;
27898
        	        }
27899
27900
27901
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6728);
27902
        	        formula(ctx, f2);
27903
27904
        	        FOLLOWPOP();
27905
        	        if  (HASEXCEPTION())
27906
        	        {
27907
        	            goto rulebvTermEx;
27908
        	        }
27909
        	        if (HASFAILED())
27910
        	        {
27911
        	            return ;
27912
        	        }
27913
27914
27915
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6731);
27916
        	        if  (HASEXCEPTION())
27917
        	        {
27918
        	            goto rulebvTermEx;
27919
        	        }
27920
        	        if (HASFAILED())
27921
        	        {
27922
        	            return ;
27923
        	        }
27924
27925
27926
        	        if ( BACKTRACKING==0 )
27927
        	        {
27928
        	             f = MK_TERM(cvc5::api::BITVECTOR_SHL, f, f2);
27929
        	        }
27930
27931
27932
        	    }
27933
        	    break;
27934
        	case 16:
27935
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1948:5: BVASHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
27936
        	    {
27937
        	         MATCHT(BVASHR_TOK, &FOLLOW_BVASHR_TOK_in_bvTerm6749);
27938
        	        if  (HASEXCEPTION())
27939
        	        {
27940
        	            goto rulebvTermEx;
27941
        	        }
27942
        	        if (HASFAILED())
27943
        	        {
27944
        	            return ;
27945
        	        }
27946
27947
27948
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6751);
27949
        	        if  (HASEXCEPTION())
27950
        	        {
27951
        	            goto rulebvTermEx;
27952
        	        }
27953
        	        if (HASFAILED())
27954
        	        {
27955
        	            return ;
27956
        	        }
27957
27958
27959
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6753);
27960
        	        formula(ctx, f);
27961
27962
        	        FOLLOWPOP();
27963
        	        if  (HASEXCEPTION())
27964
        	        {
27965
        	            goto rulebvTermEx;
27966
        	        }
27967
        	        if (HASFAILED())
27968
        	        {
27969
        	            return ;
27970
        	        }
27971
27972
27973
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6756);
27974
        	        if  (HASEXCEPTION())
27975
        	        {
27976
        	            goto rulebvTermEx;
27977
        	        }
27978
        	        if (HASFAILED())
27979
        	        {
27980
        	            return ;
27981
        	        }
27982
27983
27984
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6758);
27985
        	        formula(ctx, f2);
27986
27987
        	        FOLLOWPOP();
27988
        	        if  (HASEXCEPTION())
27989
        	        {
27990
        	            goto rulebvTermEx;
27991
        	        }
27992
        	        if (HASFAILED())
27993
        	        {
27994
        	            return ;
27995
        	        }
27996
27997
27998
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6761);
27999
        	        if  (HASEXCEPTION())
28000
        	        {
28001
        	            goto rulebvTermEx;
28002
        	        }
28003
        	        if (HASFAILED())
28004
        	        {
28005
        	            return ;
28006
        	        }
28007
28008
28009
        	        if ( BACKTRACKING==0 )
28010
        	        {
28011
        	             f = MK_TERM(cvc5::api::BITVECTOR_ASHR, f, f2);
28012
        	        }
28013
28014
28015
        	    }
28016
        	    break;
28017
        	case 17:
28018
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1951:5: BVLSHR_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28019
        	    {
28020
        	         MATCHT(BVLSHR_TOK, &FOLLOW_BVLSHR_TOK_in_bvTerm6779);
28021
        	        if  (HASEXCEPTION())
28022
        	        {
28023
        	            goto rulebvTermEx;
28024
        	        }
28025
        	        if (HASFAILED())
28026
        	        {
28027
        	            return ;
28028
        	        }
28029
28030
28031
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6781);
28032
        	        if  (HASEXCEPTION())
28033
        	        {
28034
        	            goto rulebvTermEx;
28035
        	        }
28036
        	        if (HASFAILED())
28037
        	        {
28038
        	            return ;
28039
        	        }
28040
28041
28042
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6783);
28043
        	        formula(ctx, f);
28044
28045
        	        FOLLOWPOP();
28046
        	        if  (HASEXCEPTION())
28047
        	        {
28048
        	            goto rulebvTermEx;
28049
        	        }
28050
        	        if (HASFAILED())
28051
        	        {
28052
        	            return ;
28053
        	        }
28054
28055
28056
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6786);
28057
        	        if  (HASEXCEPTION())
28058
        	        {
28059
        	            goto rulebvTermEx;
28060
        	        }
28061
        	        if (HASFAILED())
28062
        	        {
28063
        	            return ;
28064
        	        }
28065
28066
28067
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6788);
28068
        	        formula(ctx, f2);
28069
28070
        	        FOLLOWPOP();
28071
        	        if  (HASEXCEPTION())
28072
        	        {
28073
        	            goto rulebvTermEx;
28074
        	        }
28075
        	        if (HASFAILED())
28076
        	        {
28077
        	            return ;
28078
        	        }
28079
28080
28081
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6791);
28082
        	        if  (HASEXCEPTION())
28083
        	        {
28084
        	            goto rulebvTermEx;
28085
        	        }
28086
        	        if (HASFAILED())
28087
        	        {
28088
        	            return ;
28089
        	        }
28090
28091
28092
        	        if ( BACKTRACKING==0 )
28093
        	        {
28094
        	             f = MK_TERM(cvc5::api::BITVECTOR_LSHR, f, f2);
28095
        	        }
28096
28097
28098
        	    }
28099
        	    break;
28100
9
        	case 18:
28101
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1954:5: SX_TOK LPAREN formula[f] COMMA k= numeral RPAREN
28102
        	    {
28103
9
        	         MATCHT(SX_TOK, &FOLLOW_SX_TOK_in_bvTerm6809);
28104
9
        	        if  (HASEXCEPTION())
28105
        	        {
28106
        	            goto rulebvTermEx;
28107
        	        }
28108
9
        	        if (HASFAILED())
28109
        	        {
28110
        	            return ;
28111
        	        }
28112
28113
28114
9
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6811);
28115
9
        	        if  (HASEXCEPTION())
28116
        	        {
28117
        	            goto rulebvTermEx;
28118
        	        }
28119
9
        	        if (HASFAILED())
28120
        	        {
28121
        	            return ;
28122
        	        }
28123
28124
28125
9
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6813);
28126
9
        	        formula(ctx, f);
28127
28128
9
        	        FOLLOWPOP();
28129
9
        	        if  (HASEXCEPTION())
28130
        	        {
28131
        	            goto rulebvTermEx;
28132
        	        }
28133
9
        	        if (HASFAILED())
28134
        	        {
28135
        	            return ;
28136
        	        }
28137
28138
28139
9
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6816);
28140
9
        	        if  (HASEXCEPTION())
28141
        	        {
28142
        	            goto rulebvTermEx;
28143
        	        }
28144
9
        	        if (HASFAILED())
28145
        	        {
28146
        	            return ;
28147
        	        }
28148
28149
28150
9
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6820);
28151
9
        	        k=numeral(ctx);
28152
28153
9
        	        FOLLOWPOP();
28154
9
        	        if  (HASEXCEPTION())
28155
        	        {
28156
        	            goto rulebvTermEx;
28157
        	        }
28158
9
        	        if (HASFAILED())
28159
        	        {
28160
        	            return ;
28161
        	        }
28162
28163
28164
9
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6822);
28165
9
        	        if  (HASEXCEPTION())
28166
        	        {
28167
        	            goto rulebvTermEx;
28168
        	        }
28169
9
        	        if (HASFAILED())
28170
        	        {
28171
        	            return ;
28172
        	        }
28173
28174
28175
9
        	        if ( BACKTRACKING==0 )
28176
        	        {
28177
9
        	             unsigned n = f.getSort().getBVSize();
28178
        	                  // Sign extension in TheoryBitVector is defined as in SMT-LIB
28179
        	                  // which is different than in the CVC language
28180
        	                  // SX(BITVECTOR(k), n) in CVC language extends to n bits
28181
        	                  // In SMT-LIB, such a thing expands to k + n bits
28182
9
        	                  f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_SIGN_EXTEND,k-n), f);
28183
28184
        	        }
28185
28186
28187
        	    }
28188
9
        	    break;
28189
17
        	case 19:
28190
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1963:5: BVZEROEXTEND_TOK LPAREN formula[f] COMMA k= numeral RPAREN
28191
        	    {
28192
17
        	         MATCHT(BVZEROEXTEND_TOK, &FOLLOW_BVZEROEXTEND_TOK_in_bvTerm6840);
28193
17
        	        if  (HASEXCEPTION())
28194
        	        {
28195
        	            goto rulebvTermEx;
28196
        	        }
28197
17
        	        if (HASFAILED())
28198
        	        {
28199
        	            return ;
28200
        	        }
28201
28202
28203
17
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6842);
28204
17
        	        if  (HASEXCEPTION())
28205
        	        {
28206
        	            goto rulebvTermEx;
28207
        	        }
28208
17
        	        if (HASFAILED())
28209
        	        {
28210
        	            return ;
28211
        	        }
28212
28213
28214
17
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6844);
28215
17
        	        formula(ctx, f);
28216
28217
17
        	        FOLLOWPOP();
28218
17
        	        if  (HASEXCEPTION())
28219
        	        {
28220
        	            goto rulebvTermEx;
28221
        	        }
28222
17
        	        if (HASFAILED())
28223
        	        {
28224
        	            return ;
28225
        	        }
28226
28227
28228
17
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6847);
28229
17
        	        if  (HASEXCEPTION())
28230
        	        {
28231
        	            goto rulebvTermEx;
28232
        	        }
28233
17
        	        if (HASFAILED())
28234
        	        {
28235
        	            return ;
28236
        	        }
28237
28238
28239
17
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6851);
28240
17
        	        k=numeral(ctx);
28241
28242
17
        	        FOLLOWPOP();
28243
17
        	        if  (HASEXCEPTION())
28244
        	        {
28245
        	            goto rulebvTermEx;
28246
        	        }
28247
17
        	        if (HASFAILED())
28248
        	        {
28249
        	            return ;
28250
        	        }
28251
28252
28253
17
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6853);
28254
17
        	        if  (HASEXCEPTION())
28255
        	        {
28256
        	            goto rulebvTermEx;
28257
        	        }
28258
17
        	        if (HASFAILED())
28259
        	        {
28260
        	            return ;
28261
        	        }
28262
28263
28264
17
        	        if ( BACKTRACKING==0 )
28265
        	        {
28266
17
        	             unsigned n = f.getSort().getBVSize();
28267
        	                  // Zero extension in TheoryBitVector is defined as in SMT-LIB
28268
        	                  // which is the same as in CVC3, but different than SX!
28269
        	                  // SX(BITVECTOR(k), n) in CVC language extends to n bits
28270
        	                  // BVZEROEXTEND(BITVECTOR(k), n) in CVC language extends to k + n bits
28271
17
        	                  f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_ZERO_EXTEND,k), f);
28272
28273
        	        }
28274
28275
28276
        	    }
28277
17
        	    break;
28278
3
        	case 20:
28279
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1972:5: BVREPEAT_TOK LPAREN formula[f] COMMA k= numeral RPAREN
28280
        	    {
28281
3
        	         MATCHT(BVREPEAT_TOK, &FOLLOW_BVREPEAT_TOK_in_bvTerm6871);
28282
3
        	        if  (HASEXCEPTION())
28283
        	        {
28284
        	            goto rulebvTermEx;
28285
        	        }
28286
3
        	        if (HASFAILED())
28287
        	        {
28288
        	            return ;
28289
        	        }
28290
28291
28292
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6873);
28293
3
        	        if  (HASEXCEPTION())
28294
        	        {
28295
        	            goto rulebvTermEx;
28296
        	        }
28297
3
        	        if (HASFAILED())
28298
        	        {
28299
        	            return ;
28300
        	        }
28301
28302
28303
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6875);
28304
3
        	        formula(ctx, f);
28305
28306
3
        	        FOLLOWPOP();
28307
3
        	        if  (HASEXCEPTION())
28308
        	        {
28309
        	            goto rulebvTermEx;
28310
        	        }
28311
3
        	        if (HASFAILED())
28312
        	        {
28313
        	            return ;
28314
        	        }
28315
28316
28317
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6878);
28318
3
        	        if  (HASEXCEPTION())
28319
        	        {
28320
        	            goto rulebvTermEx;
28321
        	        }
28322
3
        	        if (HASFAILED())
28323
        	        {
28324
        	            return ;
28325
        	        }
28326
28327
28328
3
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6882);
28329
3
        	        k=numeral(ctx);
28330
28331
3
        	        FOLLOWPOP();
28332
3
        	        if  (HASEXCEPTION())
28333
        	        {
28334
        	            goto rulebvTermEx;
28335
        	        }
28336
3
        	        if (HASFAILED())
28337
        	        {
28338
        	            return ;
28339
        	        }
28340
28341
28342
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6884);
28343
3
        	        if  (HASEXCEPTION())
28344
        	        {
28345
        	            goto rulebvTermEx;
28346
        	        }
28347
3
        	        if (HASFAILED())
28348
        	        {
28349
        	            return ;
28350
        	        }
28351
28352
28353
3
        	        if ( BACKTRACKING==0 )
28354
        	        {
28355
3
        	             f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_REPEAT,k), f);
28356
        	        }
28357
28358
28359
        	    }
28360
3
        	    break;
28361
3
        	case 21:
28362
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1975:5: BVROTR_TOK LPAREN formula[f] COMMA k= numeral RPAREN
28363
        	    {
28364
3
        	         MATCHT(BVROTR_TOK, &FOLLOW_BVROTR_TOK_in_bvTerm6902);
28365
3
        	        if  (HASEXCEPTION())
28366
        	        {
28367
        	            goto rulebvTermEx;
28368
        	        }
28369
3
        	        if (HASFAILED())
28370
        	        {
28371
        	            return ;
28372
        	        }
28373
28374
28375
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6904);
28376
3
        	        if  (HASEXCEPTION())
28377
        	        {
28378
        	            goto rulebvTermEx;
28379
        	        }
28380
3
        	        if (HASFAILED())
28381
        	        {
28382
        	            return ;
28383
        	        }
28384
28385
28386
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6906);
28387
3
        	        formula(ctx, f);
28388
28389
3
        	        FOLLOWPOP();
28390
3
        	        if  (HASEXCEPTION())
28391
        	        {
28392
        	            goto rulebvTermEx;
28393
        	        }
28394
3
        	        if (HASFAILED())
28395
        	        {
28396
        	            return ;
28397
        	        }
28398
28399
28400
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6909);
28401
3
        	        if  (HASEXCEPTION())
28402
        	        {
28403
        	            goto rulebvTermEx;
28404
        	        }
28405
3
        	        if (HASFAILED())
28406
        	        {
28407
        	            return ;
28408
        	        }
28409
28410
28411
3
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6913);
28412
3
        	        k=numeral(ctx);
28413
28414
3
        	        FOLLOWPOP();
28415
3
        	        if  (HASEXCEPTION())
28416
        	        {
28417
        	            goto rulebvTermEx;
28418
        	        }
28419
3
        	        if (HASFAILED())
28420
        	        {
28421
        	            return ;
28422
        	        }
28423
28424
28425
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6915);
28426
3
        	        if  (HASEXCEPTION())
28427
        	        {
28428
        	            goto rulebvTermEx;
28429
        	        }
28430
3
        	        if (HASFAILED())
28431
        	        {
28432
        	            return ;
28433
        	        }
28434
28435
28436
3
        	        if ( BACKTRACKING==0 )
28437
        	        {
28438
3
        	             f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_ROTATE_RIGHT,k), f);
28439
        	        }
28440
28441
28442
        	    }
28443
3
        	    break;
28444
3
        	case 22:
28445
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1978:5: BVROTL_TOK LPAREN formula[f] COMMA k= numeral RPAREN
28446
        	    {
28447
3
        	         MATCHT(BVROTL_TOK, &FOLLOW_BVROTL_TOK_in_bvTerm6933);
28448
3
        	        if  (HASEXCEPTION())
28449
        	        {
28450
        	            goto rulebvTermEx;
28451
        	        }
28452
3
        	        if (HASFAILED())
28453
        	        {
28454
        	            return ;
28455
        	        }
28456
28457
28458
3
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6935);
28459
3
        	        if  (HASEXCEPTION())
28460
        	        {
28461
        	            goto rulebvTermEx;
28462
        	        }
28463
3
        	        if (HASFAILED())
28464
        	        {
28465
        	            return ;
28466
        	        }
28467
28468
28469
3
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6937);
28470
3
        	        formula(ctx, f);
28471
28472
3
        	        FOLLOWPOP();
28473
3
        	        if  (HASEXCEPTION())
28474
        	        {
28475
        	            goto rulebvTermEx;
28476
        	        }
28477
3
        	        if (HASFAILED())
28478
        	        {
28479
        	            return ;
28480
        	        }
28481
28482
28483
3
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6940);
28484
3
        	        if  (HASEXCEPTION())
28485
        	        {
28486
        	            goto rulebvTermEx;
28487
        	        }
28488
3
        	        if (HASFAILED())
28489
        	        {
28490
        	            return ;
28491
        	        }
28492
28493
28494
3
        	        FOLLOWPUSH(FOLLOW_numeral_in_bvTerm6944);
28495
3
        	        k=numeral(ctx);
28496
28497
3
        	        FOLLOWPOP();
28498
3
        	        if  (HASEXCEPTION())
28499
        	        {
28500
        	            goto rulebvTermEx;
28501
        	        }
28502
3
        	        if (HASFAILED())
28503
        	        {
28504
        	            return ;
28505
        	        }
28506
28507
28508
3
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6946);
28509
3
        	        if  (HASEXCEPTION())
28510
        	        {
28511
        	            goto rulebvTermEx;
28512
        	        }
28513
3
        	        if (HASFAILED())
28514
        	        {
28515
        	            return ;
28516
        	        }
28517
28518
28519
3
        	        if ( BACKTRACKING==0 )
28520
        	        {
28521
3
        	             f = SOLVER->mkTerm(SOLVER->mkOp(api::BITVECTOR_ROTATE_LEFT,k), f);
28522
        	        }
28523
28524
28525
        	    }
28526
3
        	    break;
28527
6
        	case 23:
28528
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1982:5: BVLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28529
        	    {
28530
6
        	         MATCHT(BVLT_TOK, &FOLLOW_BVLT_TOK_in_bvTerm6965);
28531
6
        	        if  (HASEXCEPTION())
28532
        	        {
28533
        	            goto rulebvTermEx;
28534
        	        }
28535
6
        	        if (HASFAILED())
28536
        	        {
28537
        	            return ;
28538
        	        }
28539
28540
28541
6
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6967);
28542
6
        	        if  (HASEXCEPTION())
28543
        	        {
28544
        	            goto rulebvTermEx;
28545
        	        }
28546
6
        	        if (HASFAILED())
28547
        	        {
28548
        	            return ;
28549
        	        }
28550
28551
28552
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6969);
28553
6
        	        formula(ctx, f);
28554
28555
6
        	        FOLLOWPOP();
28556
6
        	        if  (HASEXCEPTION())
28557
        	        {
28558
        	            goto rulebvTermEx;
28559
        	        }
28560
6
        	        if (HASFAILED())
28561
        	        {
28562
        	            return ;
28563
        	        }
28564
28565
28566
6
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6972);
28567
6
        	        if  (HASEXCEPTION())
28568
        	        {
28569
        	            goto rulebvTermEx;
28570
        	        }
28571
6
        	        if (HASFAILED())
28572
        	        {
28573
        	            return ;
28574
        	        }
28575
28576
28577
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6974);
28578
6
        	        formula(ctx, f2);
28579
28580
6
        	        FOLLOWPOP();
28581
6
        	        if  (HASEXCEPTION())
28582
        	        {
28583
        	            goto rulebvTermEx;
28584
        	        }
28585
6
        	        if (HASFAILED())
28586
        	        {
28587
        	            return ;
28588
        	        }
28589
28590
28591
6
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm6977);
28592
6
        	        if  (HASEXCEPTION())
28593
        	        {
28594
        	            goto rulebvTermEx;
28595
        	        }
28596
6
        	        if (HASFAILED())
28597
        	        {
28598
        	            return ;
28599
        	        }
28600
28601
28602
6
        	        if ( BACKTRACKING==0 )
28603
        	        {
28604
6
        	             f = MK_TERM(cvc5::api::BITVECTOR_ULT, f, f2);
28605
        	        }
28606
28607
28608
        	    }
28609
6
        	    break;
28610
6
        	case 24:
28611
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1984:5: BVLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28612
        	    {
28613
6
        	         MATCHT(BVLE_TOK, &FOLLOW_BVLE_TOK_in_bvTerm6989);
28614
6
        	        if  (HASEXCEPTION())
28615
        	        {
28616
        	            goto rulebvTermEx;
28617
        	        }
28618
6
        	        if (HASFAILED())
28619
        	        {
28620
        	            return ;
28621
        	        }
28622
28623
28624
6
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm6991);
28625
6
        	        if  (HASEXCEPTION())
28626
        	        {
28627
        	            goto rulebvTermEx;
28628
        	        }
28629
6
        	        if (HASFAILED())
28630
        	        {
28631
        	            return ;
28632
        	        }
28633
28634
28635
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6993);
28636
6
        	        formula(ctx, f);
28637
28638
6
        	        FOLLOWPOP();
28639
6
        	        if  (HASEXCEPTION())
28640
        	        {
28641
        	            goto rulebvTermEx;
28642
        	        }
28643
6
        	        if (HASFAILED())
28644
        	        {
28645
        	            return ;
28646
        	        }
28647
28648
28649
6
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm6996);
28650
6
        	        if  (HASEXCEPTION())
28651
        	        {
28652
        	            goto rulebvTermEx;
28653
        	        }
28654
6
        	        if (HASFAILED())
28655
        	        {
28656
        	            return ;
28657
        	        }
28658
28659
28660
6
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm6998);
28661
6
        	        formula(ctx, f2);
28662
28663
6
        	        FOLLOWPOP();
28664
6
        	        if  (HASEXCEPTION())
28665
        	        {
28666
        	            goto rulebvTermEx;
28667
        	        }
28668
6
        	        if (HASFAILED())
28669
        	        {
28670
        	            return ;
28671
        	        }
28672
28673
28674
6
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7001);
28675
6
        	        if  (HASEXCEPTION())
28676
        	        {
28677
        	            goto rulebvTermEx;
28678
        	        }
28679
6
        	        if (HASFAILED())
28680
        	        {
28681
        	            return ;
28682
        	        }
28683
28684
28685
6
        	        if ( BACKTRACKING==0 )
28686
        	        {
28687
6
        	             f = MK_TERM(cvc5::api::BITVECTOR_ULE, f, f2);
28688
        	        }
28689
28690
28691
        	    }
28692
6
        	    break;
28693
        	case 25:
28694
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1986:5: BVGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28695
        	    {
28696
        	         MATCHT(BVGT_TOK, &FOLLOW_BVGT_TOK_in_bvTerm7013);
28697
        	        if  (HASEXCEPTION())
28698
        	        {
28699
        	            goto rulebvTermEx;
28700
        	        }
28701
        	        if (HASFAILED())
28702
        	        {
28703
        	            return ;
28704
        	        }
28705
28706
28707
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7015);
28708
        	        if  (HASEXCEPTION())
28709
        	        {
28710
        	            goto rulebvTermEx;
28711
        	        }
28712
        	        if (HASFAILED())
28713
        	        {
28714
        	            return ;
28715
        	        }
28716
28717
28718
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7017);
28719
        	        formula(ctx, f);
28720
28721
        	        FOLLOWPOP();
28722
        	        if  (HASEXCEPTION())
28723
        	        {
28724
        	            goto rulebvTermEx;
28725
        	        }
28726
        	        if (HASFAILED())
28727
        	        {
28728
        	            return ;
28729
        	        }
28730
28731
28732
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7020);
28733
        	        if  (HASEXCEPTION())
28734
        	        {
28735
        	            goto rulebvTermEx;
28736
        	        }
28737
        	        if (HASFAILED())
28738
        	        {
28739
        	            return ;
28740
        	        }
28741
28742
28743
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7022);
28744
        	        formula(ctx, f2);
28745
28746
        	        FOLLOWPOP();
28747
        	        if  (HASEXCEPTION())
28748
        	        {
28749
        	            goto rulebvTermEx;
28750
        	        }
28751
        	        if (HASFAILED())
28752
        	        {
28753
        	            return ;
28754
        	        }
28755
28756
28757
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7025);
28758
        	        if  (HASEXCEPTION())
28759
        	        {
28760
        	            goto rulebvTermEx;
28761
        	        }
28762
        	        if (HASFAILED())
28763
        	        {
28764
        	            return ;
28765
        	        }
28766
28767
28768
        	        if ( BACKTRACKING==0 )
28769
        	        {
28770
        	             f = MK_TERM(cvc5::api::BITVECTOR_UGT, f, f2);
28771
        	        }
28772
28773
28774
        	    }
28775
        	    break;
28776
        	case 26:
28777
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1988:5: BVGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28778
        	    {
28779
        	         MATCHT(BVGE_TOK, &FOLLOW_BVGE_TOK_in_bvTerm7037);
28780
        	        if  (HASEXCEPTION())
28781
        	        {
28782
        	            goto rulebvTermEx;
28783
        	        }
28784
        	        if (HASFAILED())
28785
        	        {
28786
        	            return ;
28787
        	        }
28788
28789
28790
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7039);
28791
        	        if  (HASEXCEPTION())
28792
        	        {
28793
        	            goto rulebvTermEx;
28794
        	        }
28795
        	        if (HASFAILED())
28796
        	        {
28797
        	            return ;
28798
        	        }
28799
28800
28801
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7041);
28802
        	        formula(ctx, f);
28803
28804
        	        FOLLOWPOP();
28805
        	        if  (HASEXCEPTION())
28806
        	        {
28807
        	            goto rulebvTermEx;
28808
        	        }
28809
        	        if (HASFAILED())
28810
        	        {
28811
        	            return ;
28812
        	        }
28813
28814
28815
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7044);
28816
        	        if  (HASEXCEPTION())
28817
        	        {
28818
        	            goto rulebvTermEx;
28819
        	        }
28820
        	        if (HASFAILED())
28821
        	        {
28822
        	            return ;
28823
        	        }
28824
28825
28826
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7046);
28827
        	        formula(ctx, f2);
28828
28829
        	        FOLLOWPOP();
28830
        	        if  (HASEXCEPTION())
28831
        	        {
28832
        	            goto rulebvTermEx;
28833
        	        }
28834
        	        if (HASFAILED())
28835
        	        {
28836
        	            return ;
28837
        	        }
28838
28839
28840
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7049);
28841
        	        if  (HASEXCEPTION())
28842
        	        {
28843
        	            goto rulebvTermEx;
28844
        	        }
28845
        	        if (HASFAILED())
28846
        	        {
28847
        	            return ;
28848
        	        }
28849
28850
28851
        	        if ( BACKTRACKING==0 )
28852
        	        {
28853
        	             f = MK_TERM(cvc5::api::BITVECTOR_UGE, f, f2);
28854
        	        }
28855
28856
28857
        	    }
28858
        	    break;
28859
        	case 27:
28860
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1990:5: BVSLT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28861
        	    {
28862
        	         MATCHT(BVSLT_TOK, &FOLLOW_BVSLT_TOK_in_bvTerm7061);
28863
        	        if  (HASEXCEPTION())
28864
        	        {
28865
        	            goto rulebvTermEx;
28866
        	        }
28867
        	        if (HASFAILED())
28868
        	        {
28869
        	            return ;
28870
        	        }
28871
28872
28873
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7063);
28874
        	        if  (HASEXCEPTION())
28875
        	        {
28876
        	            goto rulebvTermEx;
28877
        	        }
28878
        	        if (HASFAILED())
28879
        	        {
28880
        	            return ;
28881
        	        }
28882
28883
28884
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7065);
28885
        	        formula(ctx, f);
28886
28887
        	        FOLLOWPOP();
28888
        	        if  (HASEXCEPTION())
28889
        	        {
28890
        	            goto rulebvTermEx;
28891
        	        }
28892
        	        if (HASFAILED())
28893
        	        {
28894
        	            return ;
28895
        	        }
28896
28897
28898
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7068);
28899
        	        if  (HASEXCEPTION())
28900
        	        {
28901
        	            goto rulebvTermEx;
28902
        	        }
28903
        	        if (HASFAILED())
28904
        	        {
28905
        	            return ;
28906
        	        }
28907
28908
28909
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7070);
28910
        	        formula(ctx, f2);
28911
28912
        	        FOLLOWPOP();
28913
        	        if  (HASEXCEPTION())
28914
        	        {
28915
        	            goto rulebvTermEx;
28916
        	        }
28917
        	        if (HASFAILED())
28918
        	        {
28919
        	            return ;
28920
        	        }
28921
28922
28923
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7073);
28924
        	        if  (HASEXCEPTION())
28925
        	        {
28926
        	            goto rulebvTermEx;
28927
        	        }
28928
        	        if (HASFAILED())
28929
        	        {
28930
        	            return ;
28931
        	        }
28932
28933
28934
        	        if ( BACKTRACKING==0 )
28935
        	        {
28936
        	             f = MK_TERM(cvc5::api::BITVECTOR_SLT, f, f2);
28937
        	        }
28938
28939
28940
        	    }
28941
        	    break;
28942
        	case 28:
28943
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1992:5: BVSLE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
28944
        	    {
28945
        	         MATCHT(BVSLE_TOK, &FOLLOW_BVSLE_TOK_in_bvTerm7085);
28946
        	        if  (HASEXCEPTION())
28947
        	        {
28948
        	            goto rulebvTermEx;
28949
        	        }
28950
        	        if (HASFAILED())
28951
        	        {
28952
        	            return ;
28953
        	        }
28954
28955
28956
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7087);
28957
        	        if  (HASEXCEPTION())
28958
        	        {
28959
        	            goto rulebvTermEx;
28960
        	        }
28961
        	        if (HASFAILED())
28962
        	        {
28963
        	            return ;
28964
        	        }
28965
28966
28967
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7089);
28968
        	        formula(ctx, f);
28969
28970
        	        FOLLOWPOP();
28971
        	        if  (HASEXCEPTION())
28972
        	        {
28973
        	            goto rulebvTermEx;
28974
        	        }
28975
        	        if (HASFAILED())
28976
        	        {
28977
        	            return ;
28978
        	        }
28979
28980
28981
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7092);
28982
        	        if  (HASEXCEPTION())
28983
        	        {
28984
        	            goto rulebvTermEx;
28985
        	        }
28986
        	        if (HASFAILED())
28987
        	        {
28988
        	            return ;
28989
        	        }
28990
28991
28992
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7094);
28993
        	        formula(ctx, f2);
28994
28995
        	        FOLLOWPOP();
28996
        	        if  (HASEXCEPTION())
28997
        	        {
28998
        	            goto rulebvTermEx;
28999
        	        }
29000
        	        if (HASFAILED())
29001
        	        {
29002
        	            return ;
29003
        	        }
29004
29005
29006
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7097);
29007
        	        if  (HASEXCEPTION())
29008
        	        {
29009
        	            goto rulebvTermEx;
29010
        	        }
29011
        	        if (HASFAILED())
29012
        	        {
29013
        	            return ;
29014
        	        }
29015
29016
29017
        	        if ( BACKTRACKING==0 )
29018
        	        {
29019
        	             f = MK_TERM(cvc5::api::BITVECTOR_SLE, f, f2);
29020
        	        }
29021
29022
29023
        	    }
29024
        	    break;
29025
        	case 29:
29026
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1994:5: BVSGT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
29027
        	    {
29028
        	         MATCHT(BVSGT_TOK, &FOLLOW_BVSGT_TOK_in_bvTerm7109);
29029
        	        if  (HASEXCEPTION())
29030
        	        {
29031
        	            goto rulebvTermEx;
29032
        	        }
29033
        	        if (HASFAILED())
29034
        	        {
29035
        	            return ;
29036
        	        }
29037
29038
29039
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7111);
29040
        	        if  (HASEXCEPTION())
29041
        	        {
29042
        	            goto rulebvTermEx;
29043
        	        }
29044
        	        if (HASFAILED())
29045
        	        {
29046
        	            return ;
29047
        	        }
29048
29049
29050
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7113);
29051
        	        formula(ctx, f);
29052
29053
        	        FOLLOWPOP();
29054
        	        if  (HASEXCEPTION())
29055
        	        {
29056
        	            goto rulebvTermEx;
29057
        	        }
29058
        	        if (HASFAILED())
29059
        	        {
29060
        	            return ;
29061
        	        }
29062
29063
29064
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7116);
29065
        	        if  (HASEXCEPTION())
29066
        	        {
29067
        	            goto rulebvTermEx;
29068
        	        }
29069
        	        if (HASFAILED())
29070
        	        {
29071
        	            return ;
29072
        	        }
29073
29074
29075
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7118);
29076
        	        formula(ctx, f2);
29077
29078
        	        FOLLOWPOP();
29079
        	        if  (HASEXCEPTION())
29080
        	        {
29081
        	            goto rulebvTermEx;
29082
        	        }
29083
        	        if (HASFAILED())
29084
        	        {
29085
        	            return ;
29086
        	        }
29087
29088
29089
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7121);
29090
        	        if  (HASEXCEPTION())
29091
        	        {
29092
        	            goto rulebvTermEx;
29093
        	        }
29094
        	        if (HASFAILED())
29095
        	        {
29096
        	            return ;
29097
        	        }
29098
29099
29100
        	        if ( BACKTRACKING==0 )
29101
        	        {
29102
        	             f = MK_TERM(cvc5::api::BITVECTOR_SGT, f, f2);
29103
        	        }
29104
29105
29106
        	    }
29107
        	    break;
29108
        	case 30:
29109
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1996:5: BVSGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
29110
        	    {
29111
        	         MATCHT(BVSGE_TOK, &FOLLOW_BVSGE_TOK_in_bvTerm7133);
29112
        	        if  (HASEXCEPTION())
29113
        	        {
29114
        	            goto rulebvTermEx;
29115
        	        }
29116
        	        if (HASFAILED())
29117
        	        {
29118
        	            return ;
29119
        	        }
29120
29121
29122
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_bvTerm7135);
29123
        	        if  (HASEXCEPTION())
29124
        	        {
29125
        	            goto rulebvTermEx;
29126
        	        }
29127
        	        if (HASFAILED())
29128
        	        {
29129
        	            return ;
29130
        	        }
29131
29132
29133
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7137);
29134
        	        formula(ctx, f);
29135
29136
        	        FOLLOWPOP();
29137
        	        if  (HASEXCEPTION())
29138
        	        {
29139
        	            goto rulebvTermEx;
29140
        	        }
29141
        	        if (HASFAILED())
29142
        	        {
29143
        	            return ;
29144
        	        }
29145
29146
29147
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_bvTerm7140);
29148
        	        if  (HASEXCEPTION())
29149
        	        {
29150
        	            goto rulebvTermEx;
29151
        	        }
29152
        	        if (HASFAILED())
29153
        	        {
29154
        	            return ;
29155
        	        }
29156
29157
29158
        	        FOLLOWPUSH(FOLLOW_formula_in_bvTerm7142);
29159
        	        formula(ctx, f2);
29160
29161
        	        FOLLOWPOP();
29162
        	        if  (HASEXCEPTION())
29163
        	        {
29164
        	            goto rulebvTermEx;
29165
        	        }
29166
        	        if (HASFAILED())
29167
        	        {
29168
        	            return ;
29169
        	        }
29170
29171
29172
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_bvTerm7145);
29173
        	        if  (HASEXCEPTION())
29174
        	        {
29175
        	            goto rulebvTermEx;
29176
        	        }
29177
        	        if (HASFAILED())
29178
        	        {
29179
        	            return ;
29180
        	        }
29181
29182
29183
        	        if ( BACKTRACKING==0 )
29184
        	        {
29185
        	             f = MK_TERM(cvc5::api::BITVECTOR_SGE, f, f2);
29186
        	        }
29187
29188
29189
        	    }
29190
        	    break;
29191
80386
        	case 31:
29192
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:1998:5: stringTerm[f]
29193
        	    {
29194
80386
        	        FOLLOWPUSH(FOLLOW_stringTerm_in_bvTerm7157);
29195
80386
        	        stringTerm(ctx, f);
29196
29197
80386
        	        FOLLOWPOP();
29198
80386
        	        if  (HASEXCEPTION())
29199
        	        {
29200
        	            goto rulebvTermEx;
29201
        	        }
29202
80386
        	        if (HASFAILED())
29203
        	        {
29204
        	            return ;
29205
        	        }
29206
29207
29208
        	    }
29209
80386
        	    break;
29210
29211
            }
29212
        }
29213
    }
29214
29215
    // This is where rules clean up and exit
29216
    //
29217
80525
    goto rulebvTermEx; /* Prevent compiler warnings */
29218
80525
    rulebvTermEx: ;
29219
29220
80525
            if (HASEXCEPTION())
29221
            {
29222
                PREPORTERROR();
29223
                PRECOVER();
29224
            }
29225
80525
    return ;
29226
}
29227
/* $ANTLR end bvTerm */
29228
29229
/**
29230
 * $ANTLR start stringTerm
29231
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2001:1: stringTerm[cvc5::api::Term& f] : ( STRING_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | STRING_LENGTH_TOK LPAREN formula[f] RPAREN | STRING_CONTAINS_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_SUBSTR_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_CHARAT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_INDEXOF_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_REPLACE_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_REPLACE_ALL_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_PREFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_SUFFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_STOI_TOK LPAREN formula[f] RPAREN | STRING_ITOS_TOK LPAREN formula[f] RPAREN | STRING_TO_REGEXP_TOK LPAREN formula[f] RPAREN | STRING_TOLOWER_TOK LPAREN formula[f] RPAREN | STRING_TOUPPER_TOK LPAREN formula[f] RPAREN | STRING_REV_TOK LPAREN formula[f] RPAREN | REGEXP_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_UNION_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_INTER_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_STAR_TOK LPAREN formula[f] RPAREN | REGEXP_PLUS_TOK LPAREN formula[f] RPAREN | REGEXP_OPT_TOK LPAREN formula[f] RPAREN | REGEXP_RANGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | REGEXP_LOOP_TOK LPAREN formula[f] COMMA lo= numeral COMMA hi= numeral RPAREN | REGEXP_COMPLEMENT_TOK LPAREN formula[f] RPAREN | SEQ_UNIT_TOK LPAREN formula[f] RPAREN | REGEXP_EMPTY_TOK | REGEXP_SIGMA_TOK | str[s] | setsTerm[f] );
29232
 */
29233
static void
29234
80386
stringTerm(pCvcParser ctx, cvc5::api::Term& f)
29235
{
29236
    unsigned lo;
29237
    #undef	RETURN_TYPE_lo
29238
    #define	RETURN_TYPE_lo unsigned
29239
29240
    unsigned hi;
29241
    #undef	RETURN_TYPE_hi
29242
    #define	RETURN_TYPE_hi unsigned
29243
29244
    /* Initialize rule variables
29245
     */
29246
29247
29248
160772
      api::Term f2;
29249
160772
      api::Term f3;
29250
160772
      std::string s;
29251
160772
      std::vector<api::Term> args;
29252
29253
    {
29254
        {
29255
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2009:3: ( STRING_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | STRING_LENGTH_TOK LPAREN formula[f] RPAREN | STRING_CONTAINS_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_SUBSTR_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_CHARAT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_INDEXOF_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_REPLACE_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_REPLACE_ALL_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN | STRING_PREFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_SUFFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | STRING_STOI_TOK LPAREN formula[f] RPAREN | STRING_ITOS_TOK LPAREN formula[f] RPAREN | STRING_TO_REGEXP_TOK LPAREN formula[f] RPAREN | STRING_TOLOWER_TOK LPAREN formula[f] RPAREN | STRING_TOUPPER_TOK LPAREN formula[f] RPAREN | STRING_REV_TOK LPAREN formula[f] RPAREN | REGEXP_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_UNION_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_INTER_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN | REGEXP_STAR_TOK LPAREN formula[f] RPAREN | REGEXP_PLUS_TOK LPAREN formula[f] RPAREN | REGEXP_OPT_TOK LPAREN formula[f] RPAREN | REGEXP_RANGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN | REGEXP_LOOP_TOK LPAREN formula[f] COMMA lo= numeral COMMA hi= numeral RPAREN | REGEXP_COMPLEMENT_TOK LPAREN formula[f] RPAREN | SEQ_UNIT_TOK LPAREN formula[f] RPAREN | REGEXP_EMPTY_TOK | REGEXP_SIGMA_TOK | str[s] | setsTerm[f] )
29256
29257
            ANTLR3_UINT32 alt106;
29258
29259
80386
            alt106=30;
29260
29261
80386
            switch ( LA(1) )
29262
            {
29263
9
            case STRING_CONCAT_TOK:
29264
            	{
29265
9
            		alt106=1;
29266
            	}
29267
9
                break;
29268
4
            case STRING_LENGTH_TOK:
29269
            	{
29270
4
            		alt106=2;
29271
            	}
29272
4
                break;
29273
            case STRING_CONTAINS_TOK:
29274
            	{
29275
            		alt106=3;
29276
            	}
29277
                break;
29278
            case STRING_SUBSTR_TOK:
29279
            	{
29280
            		alt106=4;
29281
            	}
29282
                break;
29283
6
            case STRING_CHARAT_TOK:
29284
            	{
29285
6
            		alt106=5;
29286
            	}
29287
6
                break;
29288
            case STRING_INDEXOF_TOK:
29289
            	{
29290
            		alt106=6;
29291
            	}
29292
                break;
29293
            case STRING_REPLACE_TOK:
29294
            	{
29295
            		alt106=7;
29296
            	}
29297
                break;
29298
            case STRING_REPLACE_ALL_TOK:
29299
            	{
29300
            		alt106=8;
29301
            	}
29302
                break;
29303
            case STRING_PREFIXOF_TOK:
29304
            	{
29305
            		alt106=9;
29306
            	}
29307
                break;
29308
            case STRING_SUFFIXOF_TOK:
29309
            	{
29310
            		alt106=10;
29311
            	}
29312
                break;
29313
            case STRING_STOI_TOK:
29314
            	{
29315
            		alt106=11;
29316
            	}
29317
                break;
29318
            case STRING_ITOS_TOK:
29319
            	{
29320
            		alt106=12;
29321
            	}
29322
                break;
29323
4
            case STRING_TO_REGEXP_TOK:
29324
            	{
29325
4
            		alt106=13;
29326
            	}
29327
4
                break;
29328
2
            case STRING_TOLOWER_TOK:
29329
            	{
29330
2
            		alt106=14;
29331
            	}
29332
2
                break;
29333
2
            case STRING_TOUPPER_TOK:
29334
            	{
29335
2
            		alt106=15;
29336
            	}
29337
2
                break;
29338
2
            case STRING_REV_TOK:
29339
            	{
29340
2
            		alt106=16;
29341
            	}
29342
2
                break;
29343
2
            case REGEXP_CONCAT_TOK:
29344
            	{
29345
2
            		alt106=17;
29346
            	}
29347
2
                break;
29348
2
            case REGEXP_UNION_TOK:
29349
            	{
29350
2
            		alt106=18;
29351
            	}
29352
2
                break;
29353
2
            case REGEXP_INTER_TOK:
29354
            	{
29355
2
            		alt106=19;
29356
            	}
29357
2
                break;
29358
4
            case REGEXP_STAR_TOK:
29359
            	{
29360
4
            		alt106=20;
29361
            	}
29362
4
                break;
29363
2
            case REGEXP_PLUS_TOK:
29364
            	{
29365
2
            		alt106=21;
29366
            	}
29367
2
                break;
29368
2
            case REGEXP_OPT_TOK:
29369
            	{
29370
2
            		alt106=22;
29371
            	}
29372
2
                break;
29373
4
            case REGEXP_RANGE_TOK:
29374
            	{
29375
4
            		alt106=23;
29376
            	}
29377
4
                break;
29378
2
            case REGEXP_LOOP_TOK:
29379
            	{
29380
2
            		alt106=24;
29381
            	}
29382
2
                break;
29383
            case REGEXP_COMPLEMENT_TOK:
29384
            	{
29385
            		alt106=25;
29386
            	}
29387
                break;
29388
            case SEQ_UNIT_TOK:
29389
            	{
29390
            		alt106=26;
29391
            	}
29392
                break;
29393
2
            case REGEXP_EMPTY_TOK:
29394
            	{
29395
2
            		alt106=27;
29396
            	}
29397
2
                break;
29398
4
            case REGEXP_SIGMA_TOK:
29399
            	{
29400
4
            		alt106=28;
29401
            	}
29402
4
                break;
29403
39
            case STRING_LITERAL:
29404
            	{
29405
39
            		alt106=29;
29406
            	}
29407
39
                break;
29408
80292
            case ARRAY_TOK:
29409
            case BAR:
29410
            case BINARY_LITERAL:
29411
            case DECIMAL_LITERAL:
29412
            case FALSE_TOK:
29413
            case HEX_LITERAL:
29414
            case IDENTIFIER:
29415
            case IF_TOK:
29416
            case INTEGER_LITERAL:
29417
            case LBRACE:
29418
            case LPAREN:
29419
            case PARENHASH:
29420
            case SETS_CARD_TOK:
29421
            case SETS_CHOOSE_TOK:
29422
            case TRUE_TOK:
29423
            case UNIVSET_TOK:
29424
            	{
29425
80292
            		alt106=30;
29426
            	}
29427
80292
                break;
29428
29429
            default:
29430
                if (BACKTRACKING>0)
29431
                {
29432
                    FAILEDFLAG = ANTLR3_TRUE;
29433
                    return ;
29434
                }
29435
29436
                CONSTRUCTEX();
29437
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
29438
                EXCEPTION->message      = (void *)"";
29439
                EXCEPTION->decisionNum  = 106;
29440
                EXCEPTION->state        = 0;
29441
29442
29443
                goto rulestringTermEx;
29444
29445
            }
29446
29447
80386
            switch (alt106)
29448
            {
29449
9
        	case 1:
29450
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2009:5: STRING_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN
29451
        	    {
29452
9
        	         MATCHT(STRING_CONCAT_TOK, &FOLLOW_STRING_CONCAT_TOK_in_stringTerm7183);
29453
9
        	        if  (HASEXCEPTION())
29454
        	        {
29455
        	            goto rulestringTermEx;
29456
        	        }
29457
9
        	        if (HASFAILED())
29458
        	        {
29459
        	            return ;
29460
        	        }
29461
29462
29463
9
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7185);
29464
9
        	        if  (HASEXCEPTION())
29465
        	        {
29466
        	            goto rulestringTermEx;
29467
        	        }
29468
9
        	        if (HASFAILED())
29469
        	        {
29470
        	            return ;
29471
        	        }
29472
29473
29474
9
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7187);
29475
9
        	        formula(ctx, f);
29476
29477
9
        	        FOLLOWPOP();
29478
9
        	        if  (HASEXCEPTION())
29479
        	        {
29480
        	            goto rulestringTermEx;
29481
        	        }
29482
9
        	        if (HASFAILED())
29483
        	        {
29484
        	            return ;
29485
        	        }
29486
29487
29488
9
        	        if ( BACKTRACKING==0 )
29489
        	        {
29490
9
        	             args.push_back(f);
29491
        	        }
29492
29493
29494
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2010:5: ( COMMA formula[f2] )+
29495
        	        {
29496
9
        	            int cnt102=0;
29497
29498
        	            for (;;)
29499
        	            {
29500
18
        	                int alt102=2;
29501
18
        	        	switch ( LA(1) )
29502
        	        	{
29503
9
        	        	case COMMA:
29504
        	        		{
29505
9
        	        			alt102=1;
29506
        	        		}
29507
9
        	        	    break;
29508
29509
        	        	}
29510
29511
18
        	        	switch (alt102)
29512
        	        	{
29513
9
        	        	    case 1:
29514
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2010:7: COMMA formula[f2]
29515
        	        	        {
29516
9
        	        	             MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7198);
29517
9
        	        	            if  (HASEXCEPTION())
29518
        	        	            {
29519
        	        	                goto rulestringTermEx;
29520
        	        	            }
29521
9
        	        	            if (HASFAILED())
29522
        	        	            {
29523
        	        	                return ;
29524
        	        	            }
29525
29526
29527
9
        	        	            FOLLOWPUSH(FOLLOW_formula_in_stringTerm7200);
29528
9
        	        	            formula(ctx, f2);
29529
29530
9
        	        	            FOLLOWPOP();
29531
9
        	        	            if  (HASEXCEPTION())
29532
        	        	            {
29533
        	        	                goto rulestringTermEx;
29534
        	        	            }
29535
9
        	        	            if (HASFAILED())
29536
        	        	            {
29537
        	        	                return ;
29538
        	        	            }
29539
29540
29541
9
        	        	            if ( BACKTRACKING==0 )
29542
        	        	            {
29543
9
        	        	                 args.push_back(f2);
29544
        	        	            }
29545
29546
29547
        	        	        }
29548
9
        	        	        break;
29549
29550
9
        	        	    default:
29551
29552
9
        	        		if ( cnt102 >= 1 )
29553
        	        		{
29554
9
        	        		    goto loop102;
29555
        	        		}
29556
        	        		if (BACKTRACKING>0)
29557
        	        		{
29558
        	        		    FAILEDFLAG = ANTLR3_TRUE;
29559
        	        		    return ;
29560
        	        		}
29561
29562
        	        		/* mismatchedSetEx()
29563
        	        		 */
29564
        	        		CONSTRUCTEX();
29565
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
29566
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
29567
29568
29569
        	        		goto rulestringTermEx;
29570
        	        	}
29571
9
        	        	cnt102++;
29572
9
        	            }
29573
9
        	            loop102: ;	/* Jump to here if this rule does not match */
29574
        	        }
29575
29576
9
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7208);
29577
9
        	        if  (HASEXCEPTION())
29578
        	        {
29579
        	            goto rulestringTermEx;
29580
        	        }
29581
9
        	        if (HASFAILED())
29582
        	        {
29583
        	            return ;
29584
        	        }
29585
29586
29587
9
        	        if ( BACKTRACKING==0 )
29588
        	        {
29589
9
        	             f = MK_TERM(cvc5::api::STRING_CONCAT, args);
29590
        	        }
29591
29592
29593
        	    }
29594
9
        	    break;
29595
4
        	case 2:
29596
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2012:5: STRING_LENGTH_TOK LPAREN formula[f] RPAREN
29597
        	    {
29598
4
        	         MATCHT(STRING_LENGTH_TOK, &FOLLOW_STRING_LENGTH_TOK_in_stringTerm7220);
29599
4
        	        if  (HASEXCEPTION())
29600
        	        {
29601
        	            goto rulestringTermEx;
29602
        	        }
29603
4
        	        if (HASFAILED())
29604
        	        {
29605
        	            return ;
29606
        	        }
29607
29608
29609
4
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7222);
29610
4
        	        if  (HASEXCEPTION())
29611
        	        {
29612
        	            goto rulestringTermEx;
29613
        	        }
29614
4
        	        if (HASFAILED())
29615
        	        {
29616
        	            return ;
29617
        	        }
29618
29619
29620
4
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7224);
29621
4
        	        formula(ctx, f);
29622
29623
4
        	        FOLLOWPOP();
29624
4
        	        if  (HASEXCEPTION())
29625
        	        {
29626
        	            goto rulestringTermEx;
29627
        	        }
29628
4
        	        if (HASFAILED())
29629
        	        {
29630
        	            return ;
29631
        	        }
29632
29633
29634
4
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7227);
29635
4
        	        if  (HASEXCEPTION())
29636
        	        {
29637
        	            goto rulestringTermEx;
29638
        	        }
29639
4
        	        if (HASFAILED())
29640
        	        {
29641
        	            return ;
29642
        	        }
29643
29644
29645
4
        	        if ( BACKTRACKING==0 )
29646
        	        {
29647
4
        	             f = MK_TERM(cvc5::api::STRING_LENGTH, f);
29648
        	        }
29649
29650
29651
        	    }
29652
4
        	    break;
29653
        	case 3:
29654
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2014:5: STRING_CONTAINS_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
29655
        	    {
29656
        	         MATCHT(STRING_CONTAINS_TOK, &FOLLOW_STRING_CONTAINS_TOK_in_stringTerm7239);
29657
        	        if  (HASEXCEPTION())
29658
        	        {
29659
        	            goto rulestringTermEx;
29660
        	        }
29661
        	        if (HASFAILED())
29662
        	        {
29663
        	            return ;
29664
        	        }
29665
29666
29667
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7241);
29668
        	        if  (HASEXCEPTION())
29669
        	        {
29670
        	            goto rulestringTermEx;
29671
        	        }
29672
        	        if (HASFAILED())
29673
        	        {
29674
        	            return ;
29675
        	        }
29676
29677
29678
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7243);
29679
        	        formula(ctx, f);
29680
29681
        	        FOLLOWPOP();
29682
        	        if  (HASEXCEPTION())
29683
        	        {
29684
        	            goto rulestringTermEx;
29685
        	        }
29686
        	        if (HASFAILED())
29687
        	        {
29688
        	            return ;
29689
        	        }
29690
29691
29692
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7246);
29693
        	        if  (HASEXCEPTION())
29694
        	        {
29695
        	            goto rulestringTermEx;
29696
        	        }
29697
        	        if (HASFAILED())
29698
        	        {
29699
        	            return ;
29700
        	        }
29701
29702
29703
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7248);
29704
        	        formula(ctx, f2);
29705
29706
        	        FOLLOWPOP();
29707
        	        if  (HASEXCEPTION())
29708
        	        {
29709
        	            goto rulestringTermEx;
29710
        	        }
29711
        	        if (HASFAILED())
29712
        	        {
29713
        	            return ;
29714
        	        }
29715
29716
29717
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7251);
29718
        	        if  (HASEXCEPTION())
29719
        	        {
29720
        	            goto rulestringTermEx;
29721
        	        }
29722
        	        if (HASFAILED())
29723
        	        {
29724
        	            return ;
29725
        	        }
29726
29727
29728
        	        if ( BACKTRACKING==0 )
29729
        	        {
29730
        	             f = MK_TERM(cvc5::api::STRING_CONTAINS, f, f2);
29731
        	        }
29732
29733
29734
        	    }
29735
        	    break;
29736
        	case 4:
29737
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2016:5: STRING_SUBSTR_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN
29738
        	    {
29739
        	         MATCHT(STRING_SUBSTR_TOK, &FOLLOW_STRING_SUBSTR_TOK_in_stringTerm7263);
29740
        	        if  (HASEXCEPTION())
29741
        	        {
29742
        	            goto rulestringTermEx;
29743
        	        }
29744
        	        if (HASFAILED())
29745
        	        {
29746
        	            return ;
29747
        	        }
29748
29749
29750
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7265);
29751
        	        if  (HASEXCEPTION())
29752
        	        {
29753
        	            goto rulestringTermEx;
29754
        	        }
29755
        	        if (HASFAILED())
29756
        	        {
29757
        	            return ;
29758
        	        }
29759
29760
29761
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7267);
29762
        	        formula(ctx, f);
29763
29764
        	        FOLLOWPOP();
29765
        	        if  (HASEXCEPTION())
29766
        	        {
29767
        	            goto rulestringTermEx;
29768
        	        }
29769
        	        if (HASFAILED())
29770
        	        {
29771
        	            return ;
29772
        	        }
29773
29774
29775
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7270);
29776
        	        if  (HASEXCEPTION())
29777
        	        {
29778
        	            goto rulestringTermEx;
29779
        	        }
29780
        	        if (HASFAILED())
29781
        	        {
29782
        	            return ;
29783
        	        }
29784
29785
29786
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7272);
29787
        	        formula(ctx, f2);
29788
29789
        	        FOLLOWPOP();
29790
        	        if  (HASEXCEPTION())
29791
        	        {
29792
        	            goto rulestringTermEx;
29793
        	        }
29794
        	        if (HASFAILED())
29795
        	        {
29796
        	            return ;
29797
        	        }
29798
29799
29800
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7275);
29801
        	        if  (HASEXCEPTION())
29802
        	        {
29803
        	            goto rulestringTermEx;
29804
        	        }
29805
        	        if (HASFAILED())
29806
        	        {
29807
        	            return ;
29808
        	        }
29809
29810
29811
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7277);
29812
        	        formula(ctx, f3);
29813
29814
        	        FOLLOWPOP();
29815
        	        if  (HASEXCEPTION())
29816
        	        {
29817
        	            goto rulestringTermEx;
29818
        	        }
29819
        	        if (HASFAILED())
29820
        	        {
29821
        	            return ;
29822
        	        }
29823
29824
29825
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7280);
29826
        	        if  (HASEXCEPTION())
29827
        	        {
29828
        	            goto rulestringTermEx;
29829
        	        }
29830
        	        if (HASFAILED())
29831
        	        {
29832
        	            return ;
29833
        	        }
29834
29835
29836
        	        if ( BACKTRACKING==0 )
29837
        	        {
29838
        	             f = MK_TERM(cvc5::api::STRING_SUBSTR, f, f2, f3);
29839
        	        }
29840
29841
29842
        	    }
29843
        	    break;
29844
6
        	case 5:
29845
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2018:5: STRING_CHARAT_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
29846
        	    {
29847
6
        	         MATCHT(STRING_CHARAT_TOK, &FOLLOW_STRING_CHARAT_TOK_in_stringTerm7292);
29848
6
        	        if  (HASEXCEPTION())
29849
        	        {
29850
        	            goto rulestringTermEx;
29851
        	        }
29852
6
        	        if (HASFAILED())
29853
        	        {
29854
        	            return ;
29855
        	        }
29856
29857
29858
6
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7294);
29859
6
        	        if  (HASEXCEPTION())
29860
        	        {
29861
        	            goto rulestringTermEx;
29862
        	        }
29863
6
        	        if (HASFAILED())
29864
        	        {
29865
        	            return ;
29866
        	        }
29867
29868
29869
6
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7296);
29870
6
        	        formula(ctx, f);
29871
29872
6
        	        FOLLOWPOP();
29873
6
        	        if  (HASEXCEPTION())
29874
        	        {
29875
        	            goto rulestringTermEx;
29876
        	        }
29877
6
        	        if (HASFAILED())
29878
        	        {
29879
        	            return ;
29880
        	        }
29881
29882
29883
6
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7299);
29884
6
        	        if  (HASEXCEPTION())
29885
        	        {
29886
        	            goto rulestringTermEx;
29887
        	        }
29888
6
        	        if (HASFAILED())
29889
        	        {
29890
        	            return ;
29891
        	        }
29892
29893
29894
6
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7301);
29895
6
        	        formula(ctx, f2);
29896
29897
6
        	        FOLLOWPOP();
29898
6
        	        if  (HASEXCEPTION())
29899
        	        {
29900
        	            goto rulestringTermEx;
29901
        	        }
29902
6
        	        if (HASFAILED())
29903
        	        {
29904
        	            return ;
29905
        	        }
29906
29907
29908
6
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7304);
29909
6
        	        if  (HASEXCEPTION())
29910
        	        {
29911
        	            goto rulestringTermEx;
29912
        	        }
29913
6
        	        if (HASFAILED())
29914
        	        {
29915
        	            return ;
29916
        	        }
29917
29918
29919
6
        	        if ( BACKTRACKING==0 )
29920
        	        {
29921
6
        	             f = MK_TERM(cvc5::api::STRING_CHARAT, f, f2);
29922
        	        }
29923
29924
29925
        	    }
29926
6
        	    break;
29927
        	case 6:
29928
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2020:5: STRING_INDEXOF_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN
29929
        	    {
29930
        	         MATCHT(STRING_INDEXOF_TOK, &FOLLOW_STRING_INDEXOF_TOK_in_stringTerm7316);
29931
        	        if  (HASEXCEPTION())
29932
        	        {
29933
        	            goto rulestringTermEx;
29934
        	        }
29935
        	        if (HASFAILED())
29936
        	        {
29937
        	            return ;
29938
        	        }
29939
29940
29941
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7318);
29942
        	        if  (HASEXCEPTION())
29943
        	        {
29944
        	            goto rulestringTermEx;
29945
        	        }
29946
        	        if (HASFAILED())
29947
        	        {
29948
        	            return ;
29949
        	        }
29950
29951
29952
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7320);
29953
        	        formula(ctx, f);
29954
29955
        	        FOLLOWPOP();
29956
        	        if  (HASEXCEPTION())
29957
        	        {
29958
        	            goto rulestringTermEx;
29959
        	        }
29960
        	        if (HASFAILED())
29961
        	        {
29962
        	            return ;
29963
        	        }
29964
29965
29966
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7323);
29967
        	        if  (HASEXCEPTION())
29968
        	        {
29969
        	            goto rulestringTermEx;
29970
        	        }
29971
        	        if (HASFAILED())
29972
        	        {
29973
        	            return ;
29974
        	        }
29975
29976
29977
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7325);
29978
        	        formula(ctx, f2);
29979
29980
        	        FOLLOWPOP();
29981
        	        if  (HASEXCEPTION())
29982
        	        {
29983
        	            goto rulestringTermEx;
29984
        	        }
29985
        	        if (HASFAILED())
29986
        	        {
29987
        	            return ;
29988
        	        }
29989
29990
29991
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7328);
29992
        	        if  (HASEXCEPTION())
29993
        	        {
29994
        	            goto rulestringTermEx;
29995
        	        }
29996
        	        if (HASFAILED())
29997
        	        {
29998
        	            return ;
29999
        	        }
30000
30001
30002
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7330);
30003
        	        formula(ctx, f3);
30004
30005
        	        FOLLOWPOP();
30006
        	        if  (HASEXCEPTION())
30007
        	        {
30008
        	            goto rulestringTermEx;
30009
        	        }
30010
        	        if (HASFAILED())
30011
        	        {
30012
        	            return ;
30013
        	        }
30014
30015
30016
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7333);
30017
        	        if  (HASEXCEPTION())
30018
        	        {
30019
        	            goto rulestringTermEx;
30020
        	        }
30021
        	        if (HASFAILED())
30022
        	        {
30023
        	            return ;
30024
        	        }
30025
30026
30027
        	        if ( BACKTRACKING==0 )
30028
        	        {
30029
        	             f = MK_TERM(cvc5::api::STRING_INDEXOF, f, f2, f3);
30030
        	        }
30031
30032
30033
        	    }
30034
        	    break;
30035
        	case 7:
30036
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2022:5: STRING_REPLACE_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN
30037
        	    {
30038
        	         MATCHT(STRING_REPLACE_TOK, &FOLLOW_STRING_REPLACE_TOK_in_stringTerm7345);
30039
        	        if  (HASEXCEPTION())
30040
        	        {
30041
        	            goto rulestringTermEx;
30042
        	        }
30043
        	        if (HASFAILED())
30044
        	        {
30045
        	            return ;
30046
        	        }
30047
30048
30049
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7347);
30050
        	        if  (HASEXCEPTION())
30051
        	        {
30052
        	            goto rulestringTermEx;
30053
        	        }
30054
        	        if (HASFAILED())
30055
        	        {
30056
        	            return ;
30057
        	        }
30058
30059
30060
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7349);
30061
        	        formula(ctx, f);
30062
30063
        	        FOLLOWPOP();
30064
        	        if  (HASEXCEPTION())
30065
        	        {
30066
        	            goto rulestringTermEx;
30067
        	        }
30068
        	        if (HASFAILED())
30069
        	        {
30070
        	            return ;
30071
        	        }
30072
30073
30074
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7352);
30075
        	        if  (HASEXCEPTION())
30076
        	        {
30077
        	            goto rulestringTermEx;
30078
        	        }
30079
        	        if (HASFAILED())
30080
        	        {
30081
        	            return ;
30082
        	        }
30083
30084
30085
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7354);
30086
        	        formula(ctx, f2);
30087
30088
        	        FOLLOWPOP();
30089
        	        if  (HASEXCEPTION())
30090
        	        {
30091
        	            goto rulestringTermEx;
30092
        	        }
30093
        	        if (HASFAILED())
30094
        	        {
30095
        	            return ;
30096
        	        }
30097
30098
30099
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7357);
30100
        	        if  (HASEXCEPTION())
30101
        	        {
30102
        	            goto rulestringTermEx;
30103
        	        }
30104
        	        if (HASFAILED())
30105
        	        {
30106
        	            return ;
30107
        	        }
30108
30109
30110
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7359);
30111
        	        formula(ctx, f3);
30112
30113
        	        FOLLOWPOP();
30114
        	        if  (HASEXCEPTION())
30115
        	        {
30116
        	            goto rulestringTermEx;
30117
        	        }
30118
        	        if (HASFAILED())
30119
        	        {
30120
        	            return ;
30121
        	        }
30122
30123
30124
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7362);
30125
        	        if  (HASEXCEPTION())
30126
        	        {
30127
        	            goto rulestringTermEx;
30128
        	        }
30129
        	        if (HASFAILED())
30130
        	        {
30131
        	            return ;
30132
        	        }
30133
30134
30135
        	        if ( BACKTRACKING==0 )
30136
        	        {
30137
        	             f = MK_TERM(cvc5::api::STRING_REPLACE, f, f2, f3);
30138
        	        }
30139
30140
30141
        	    }
30142
        	    break;
30143
        	case 8:
30144
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2024:5: STRING_REPLACE_ALL_TOK LPAREN formula[f] COMMA formula[f2] COMMA formula[f3] RPAREN
30145
        	    {
30146
        	         MATCHT(STRING_REPLACE_ALL_TOK, &FOLLOW_STRING_REPLACE_ALL_TOK_in_stringTerm7374);
30147
        	        if  (HASEXCEPTION())
30148
        	        {
30149
        	            goto rulestringTermEx;
30150
        	        }
30151
        	        if (HASFAILED())
30152
        	        {
30153
        	            return ;
30154
        	        }
30155
30156
30157
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7376);
30158
        	        if  (HASEXCEPTION())
30159
        	        {
30160
        	            goto rulestringTermEx;
30161
        	        }
30162
        	        if (HASFAILED())
30163
        	        {
30164
        	            return ;
30165
        	        }
30166
30167
30168
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7378);
30169
        	        formula(ctx, f);
30170
30171
        	        FOLLOWPOP();
30172
        	        if  (HASEXCEPTION())
30173
        	        {
30174
        	            goto rulestringTermEx;
30175
        	        }
30176
        	        if (HASFAILED())
30177
        	        {
30178
        	            return ;
30179
        	        }
30180
30181
30182
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7381);
30183
        	        if  (HASEXCEPTION())
30184
        	        {
30185
        	            goto rulestringTermEx;
30186
        	        }
30187
        	        if (HASFAILED())
30188
        	        {
30189
        	            return ;
30190
        	        }
30191
30192
30193
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7383);
30194
        	        formula(ctx, f2);
30195
30196
        	        FOLLOWPOP();
30197
        	        if  (HASEXCEPTION())
30198
        	        {
30199
        	            goto rulestringTermEx;
30200
        	        }
30201
        	        if (HASFAILED())
30202
        	        {
30203
        	            return ;
30204
        	        }
30205
30206
30207
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7386);
30208
        	        if  (HASEXCEPTION())
30209
        	        {
30210
        	            goto rulestringTermEx;
30211
        	        }
30212
        	        if (HASFAILED())
30213
        	        {
30214
        	            return ;
30215
        	        }
30216
30217
30218
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7388);
30219
        	        formula(ctx, f3);
30220
30221
        	        FOLLOWPOP();
30222
        	        if  (HASEXCEPTION())
30223
        	        {
30224
        	            goto rulestringTermEx;
30225
        	        }
30226
        	        if (HASFAILED())
30227
        	        {
30228
        	            return ;
30229
        	        }
30230
30231
30232
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7391);
30233
        	        if  (HASEXCEPTION())
30234
        	        {
30235
        	            goto rulestringTermEx;
30236
        	        }
30237
        	        if (HASFAILED())
30238
        	        {
30239
        	            return ;
30240
        	        }
30241
30242
30243
        	        if ( BACKTRACKING==0 )
30244
        	        {
30245
        	             f = MK_TERM(cvc5::api::STRING_REPLACE_ALL, f, f2, f3);
30246
        	        }
30247
30248
30249
        	    }
30250
        	    break;
30251
        	case 9:
30252
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2026:5: STRING_PREFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
30253
        	    {
30254
        	         MATCHT(STRING_PREFIXOF_TOK, &FOLLOW_STRING_PREFIXOF_TOK_in_stringTerm7403);
30255
        	        if  (HASEXCEPTION())
30256
        	        {
30257
        	            goto rulestringTermEx;
30258
        	        }
30259
        	        if (HASFAILED())
30260
        	        {
30261
        	            return ;
30262
        	        }
30263
30264
30265
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7405);
30266
        	        if  (HASEXCEPTION())
30267
        	        {
30268
        	            goto rulestringTermEx;
30269
        	        }
30270
        	        if (HASFAILED())
30271
        	        {
30272
        	            return ;
30273
        	        }
30274
30275
30276
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7407);
30277
        	        formula(ctx, f);
30278
30279
        	        FOLLOWPOP();
30280
        	        if  (HASEXCEPTION())
30281
        	        {
30282
        	            goto rulestringTermEx;
30283
        	        }
30284
        	        if (HASFAILED())
30285
        	        {
30286
        	            return ;
30287
        	        }
30288
30289
30290
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7410);
30291
        	        if  (HASEXCEPTION())
30292
        	        {
30293
        	            goto rulestringTermEx;
30294
        	        }
30295
        	        if (HASFAILED())
30296
        	        {
30297
        	            return ;
30298
        	        }
30299
30300
30301
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7412);
30302
        	        formula(ctx, f2);
30303
30304
        	        FOLLOWPOP();
30305
        	        if  (HASEXCEPTION())
30306
        	        {
30307
        	            goto rulestringTermEx;
30308
        	        }
30309
        	        if (HASFAILED())
30310
        	        {
30311
        	            return ;
30312
        	        }
30313
30314
30315
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7415);
30316
        	        if  (HASEXCEPTION())
30317
        	        {
30318
        	            goto rulestringTermEx;
30319
        	        }
30320
        	        if (HASFAILED())
30321
        	        {
30322
        	            return ;
30323
        	        }
30324
30325
30326
        	        if ( BACKTRACKING==0 )
30327
        	        {
30328
        	             f = MK_TERM(cvc5::api::STRING_PREFIX, f, f2);
30329
        	        }
30330
30331
30332
        	    }
30333
        	    break;
30334
        	case 10:
30335
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2028:5: STRING_SUFFIXOF_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
30336
        	    {
30337
        	         MATCHT(STRING_SUFFIXOF_TOK, &FOLLOW_STRING_SUFFIXOF_TOK_in_stringTerm7427);
30338
        	        if  (HASEXCEPTION())
30339
        	        {
30340
        	            goto rulestringTermEx;
30341
        	        }
30342
        	        if (HASFAILED())
30343
        	        {
30344
        	            return ;
30345
        	        }
30346
30347
30348
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7429);
30349
        	        if  (HASEXCEPTION())
30350
        	        {
30351
        	            goto rulestringTermEx;
30352
        	        }
30353
        	        if (HASFAILED())
30354
        	        {
30355
        	            return ;
30356
        	        }
30357
30358
30359
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7431);
30360
        	        formula(ctx, f);
30361
30362
        	        FOLLOWPOP();
30363
        	        if  (HASEXCEPTION())
30364
        	        {
30365
        	            goto rulestringTermEx;
30366
        	        }
30367
        	        if (HASFAILED())
30368
        	        {
30369
        	            return ;
30370
        	        }
30371
30372
30373
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7434);
30374
        	        if  (HASEXCEPTION())
30375
        	        {
30376
        	            goto rulestringTermEx;
30377
        	        }
30378
        	        if (HASFAILED())
30379
        	        {
30380
        	            return ;
30381
        	        }
30382
30383
30384
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7436);
30385
        	        formula(ctx, f2);
30386
30387
        	        FOLLOWPOP();
30388
        	        if  (HASEXCEPTION())
30389
        	        {
30390
        	            goto rulestringTermEx;
30391
        	        }
30392
        	        if (HASFAILED())
30393
        	        {
30394
        	            return ;
30395
        	        }
30396
30397
30398
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7439);
30399
        	        if  (HASEXCEPTION())
30400
        	        {
30401
        	            goto rulestringTermEx;
30402
        	        }
30403
        	        if (HASFAILED())
30404
        	        {
30405
        	            return ;
30406
        	        }
30407
30408
30409
        	        if ( BACKTRACKING==0 )
30410
        	        {
30411
        	             f = MK_TERM(cvc5::api::STRING_SUFFIX, f, f2);
30412
        	        }
30413
30414
30415
        	    }
30416
        	    break;
30417
        	case 11:
30418
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2030:5: STRING_STOI_TOK LPAREN formula[f] RPAREN
30419
        	    {
30420
        	         MATCHT(STRING_STOI_TOK, &FOLLOW_STRING_STOI_TOK_in_stringTerm7451);
30421
        	        if  (HASEXCEPTION())
30422
        	        {
30423
        	            goto rulestringTermEx;
30424
        	        }
30425
        	        if (HASFAILED())
30426
        	        {
30427
        	            return ;
30428
        	        }
30429
30430
30431
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7453);
30432
        	        if  (HASEXCEPTION())
30433
        	        {
30434
        	            goto rulestringTermEx;
30435
        	        }
30436
        	        if (HASFAILED())
30437
        	        {
30438
        	            return ;
30439
        	        }
30440
30441
30442
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7455);
30443
        	        formula(ctx, f);
30444
30445
        	        FOLLOWPOP();
30446
        	        if  (HASEXCEPTION())
30447
        	        {
30448
        	            goto rulestringTermEx;
30449
        	        }
30450
        	        if (HASFAILED())
30451
        	        {
30452
        	            return ;
30453
        	        }
30454
30455
30456
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7458);
30457
        	        if  (HASEXCEPTION())
30458
        	        {
30459
        	            goto rulestringTermEx;
30460
        	        }
30461
        	        if (HASFAILED())
30462
        	        {
30463
        	            return ;
30464
        	        }
30465
30466
30467
        	        if ( BACKTRACKING==0 )
30468
        	        {
30469
        	             f = MK_TERM(cvc5::api::STRING_TO_INT, f);
30470
        	        }
30471
30472
30473
        	    }
30474
        	    break;
30475
        	case 12:
30476
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2032:5: STRING_ITOS_TOK LPAREN formula[f] RPAREN
30477
        	    {
30478
        	         MATCHT(STRING_ITOS_TOK, &FOLLOW_STRING_ITOS_TOK_in_stringTerm7470);
30479
        	        if  (HASEXCEPTION())
30480
        	        {
30481
        	            goto rulestringTermEx;
30482
        	        }
30483
        	        if (HASFAILED())
30484
        	        {
30485
        	            return ;
30486
        	        }
30487
30488
30489
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7472);
30490
        	        if  (HASEXCEPTION())
30491
        	        {
30492
        	            goto rulestringTermEx;
30493
        	        }
30494
        	        if (HASFAILED())
30495
        	        {
30496
        	            return ;
30497
        	        }
30498
30499
30500
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7474);
30501
        	        formula(ctx, f);
30502
30503
        	        FOLLOWPOP();
30504
        	        if  (HASEXCEPTION())
30505
        	        {
30506
        	            goto rulestringTermEx;
30507
        	        }
30508
        	        if (HASFAILED())
30509
        	        {
30510
        	            return ;
30511
        	        }
30512
30513
30514
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7477);
30515
        	        if  (HASEXCEPTION())
30516
        	        {
30517
        	            goto rulestringTermEx;
30518
        	        }
30519
        	        if (HASFAILED())
30520
        	        {
30521
        	            return ;
30522
        	        }
30523
30524
30525
        	        if ( BACKTRACKING==0 )
30526
        	        {
30527
        	             f = MK_TERM(cvc5::api::STRING_FROM_INT, f);
30528
        	        }
30529
30530
30531
        	    }
30532
        	    break;
30533
4
        	case 13:
30534
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2034:5: STRING_TO_REGEXP_TOK LPAREN formula[f] RPAREN
30535
        	    {
30536
4
        	         MATCHT(STRING_TO_REGEXP_TOK, &FOLLOW_STRING_TO_REGEXP_TOK_in_stringTerm7489);
30537
4
        	        if  (HASEXCEPTION())
30538
        	        {
30539
        	            goto rulestringTermEx;
30540
        	        }
30541
4
        	        if (HASFAILED())
30542
        	        {
30543
        	            return ;
30544
        	        }
30545
30546
30547
4
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7491);
30548
4
        	        if  (HASEXCEPTION())
30549
        	        {
30550
        	            goto rulestringTermEx;
30551
        	        }
30552
4
        	        if (HASFAILED())
30553
        	        {
30554
        	            return ;
30555
        	        }
30556
30557
30558
4
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7493);
30559
4
        	        formula(ctx, f);
30560
30561
4
        	        FOLLOWPOP();
30562
4
        	        if  (HASEXCEPTION())
30563
        	        {
30564
        	            goto rulestringTermEx;
30565
        	        }
30566
4
        	        if (HASFAILED())
30567
        	        {
30568
        	            return ;
30569
        	        }
30570
30571
30572
4
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7496);
30573
4
        	        if  (HASEXCEPTION())
30574
        	        {
30575
        	            goto rulestringTermEx;
30576
        	        }
30577
4
        	        if (HASFAILED())
30578
        	        {
30579
        	            return ;
30580
        	        }
30581
30582
30583
4
        	        if ( BACKTRACKING==0 )
30584
        	        {
30585
4
        	             f = MK_TERM(cvc5::api::STRING_TO_REGEXP, f);
30586
        	        }
30587
30588
30589
        	    }
30590
4
        	    break;
30591
2
        	case 14:
30592
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2036:5: STRING_TOLOWER_TOK LPAREN formula[f] RPAREN
30593
        	    {
30594
2
        	         MATCHT(STRING_TOLOWER_TOK, &FOLLOW_STRING_TOLOWER_TOK_in_stringTerm7508);
30595
2
        	        if  (HASEXCEPTION())
30596
        	        {
30597
        	            goto rulestringTermEx;
30598
        	        }
30599
2
        	        if (HASFAILED())
30600
        	        {
30601
        	            return ;
30602
        	        }
30603
30604
30605
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7510);
30606
2
        	        if  (HASEXCEPTION())
30607
        	        {
30608
        	            goto rulestringTermEx;
30609
        	        }
30610
2
        	        if (HASFAILED())
30611
        	        {
30612
        	            return ;
30613
        	        }
30614
30615
30616
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7512);
30617
2
        	        formula(ctx, f);
30618
30619
2
        	        FOLLOWPOP();
30620
2
        	        if  (HASEXCEPTION())
30621
        	        {
30622
        	            goto rulestringTermEx;
30623
        	        }
30624
2
        	        if (HASFAILED())
30625
        	        {
30626
        	            return ;
30627
        	        }
30628
30629
30630
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7515);
30631
2
        	        if  (HASEXCEPTION())
30632
        	        {
30633
        	            goto rulestringTermEx;
30634
        	        }
30635
2
        	        if (HASFAILED())
30636
        	        {
30637
        	            return ;
30638
        	        }
30639
30640
30641
2
        	        if ( BACKTRACKING==0 )
30642
        	        {
30643
2
        	             f = MK_TERM(cvc5::api::STRING_TOLOWER, f);
30644
        	        }
30645
30646
30647
        	    }
30648
2
        	    break;
30649
2
        	case 15:
30650
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2038:5: STRING_TOUPPER_TOK LPAREN formula[f] RPAREN
30651
        	    {
30652
2
        	         MATCHT(STRING_TOUPPER_TOK, &FOLLOW_STRING_TOUPPER_TOK_in_stringTerm7527);
30653
2
        	        if  (HASEXCEPTION())
30654
        	        {
30655
        	            goto rulestringTermEx;
30656
        	        }
30657
2
        	        if (HASFAILED())
30658
        	        {
30659
        	            return ;
30660
        	        }
30661
30662
30663
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7529);
30664
2
        	        if  (HASEXCEPTION())
30665
        	        {
30666
        	            goto rulestringTermEx;
30667
        	        }
30668
2
        	        if (HASFAILED())
30669
        	        {
30670
        	            return ;
30671
        	        }
30672
30673
30674
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7531);
30675
2
        	        formula(ctx, f);
30676
30677
2
        	        FOLLOWPOP();
30678
2
        	        if  (HASEXCEPTION())
30679
        	        {
30680
        	            goto rulestringTermEx;
30681
        	        }
30682
2
        	        if (HASFAILED())
30683
        	        {
30684
        	            return ;
30685
        	        }
30686
30687
30688
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7534);
30689
2
        	        if  (HASEXCEPTION())
30690
        	        {
30691
        	            goto rulestringTermEx;
30692
        	        }
30693
2
        	        if (HASFAILED())
30694
        	        {
30695
        	            return ;
30696
        	        }
30697
30698
30699
2
        	        if ( BACKTRACKING==0 )
30700
        	        {
30701
2
        	             f = MK_TERM(cvc5::api::STRING_TOUPPER, f);
30702
        	        }
30703
30704
30705
        	    }
30706
2
        	    break;
30707
2
        	case 16:
30708
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2040:5: STRING_REV_TOK LPAREN formula[f] RPAREN
30709
        	    {
30710
2
        	         MATCHT(STRING_REV_TOK, &FOLLOW_STRING_REV_TOK_in_stringTerm7546);
30711
2
        	        if  (HASEXCEPTION())
30712
        	        {
30713
        	            goto rulestringTermEx;
30714
        	        }
30715
2
        	        if (HASFAILED())
30716
        	        {
30717
        	            return ;
30718
        	        }
30719
30720
30721
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7548);
30722
2
        	        if  (HASEXCEPTION())
30723
        	        {
30724
        	            goto rulestringTermEx;
30725
        	        }
30726
2
        	        if (HASFAILED())
30727
        	        {
30728
        	            return ;
30729
        	        }
30730
30731
30732
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7550);
30733
2
        	        formula(ctx, f);
30734
30735
2
        	        FOLLOWPOP();
30736
2
        	        if  (HASEXCEPTION())
30737
        	        {
30738
        	            goto rulestringTermEx;
30739
        	        }
30740
2
        	        if (HASFAILED())
30741
        	        {
30742
        	            return ;
30743
        	        }
30744
30745
30746
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7553);
30747
2
        	        if  (HASEXCEPTION())
30748
        	        {
30749
        	            goto rulestringTermEx;
30750
        	        }
30751
2
        	        if (HASFAILED())
30752
        	        {
30753
        	            return ;
30754
        	        }
30755
30756
30757
2
        	        if ( BACKTRACKING==0 )
30758
        	        {
30759
2
        	             f = MK_TERM(cvc5::api::STRING_REV, f);
30760
        	        }
30761
30762
30763
        	    }
30764
2
        	    break;
30765
2
        	case 17:
30766
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2042:5: REGEXP_CONCAT_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN
30767
        	    {
30768
2
        	         MATCHT(REGEXP_CONCAT_TOK, &FOLLOW_REGEXP_CONCAT_TOK_in_stringTerm7565);
30769
2
        	        if  (HASEXCEPTION())
30770
        	        {
30771
        	            goto rulestringTermEx;
30772
        	        }
30773
2
        	        if (HASFAILED())
30774
        	        {
30775
        	            return ;
30776
        	        }
30777
30778
30779
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7567);
30780
2
        	        if  (HASEXCEPTION())
30781
        	        {
30782
        	            goto rulestringTermEx;
30783
        	        }
30784
2
        	        if (HASFAILED())
30785
        	        {
30786
        	            return ;
30787
        	        }
30788
30789
30790
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7569);
30791
2
        	        formula(ctx, f);
30792
30793
2
        	        FOLLOWPOP();
30794
2
        	        if  (HASEXCEPTION())
30795
        	        {
30796
        	            goto rulestringTermEx;
30797
        	        }
30798
2
        	        if (HASFAILED())
30799
        	        {
30800
        	            return ;
30801
        	        }
30802
30803
30804
2
        	        if ( BACKTRACKING==0 )
30805
        	        {
30806
2
        	             args.push_back(f);
30807
        	        }
30808
30809
30810
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2043:5: ( COMMA formula[f2] )+
30811
        	        {
30812
2
        	            int cnt103=0;
30813
30814
        	            for (;;)
30815
        	            {
30816
8
        	                int alt103=2;
30817
8
        	        	switch ( LA(1) )
30818
        	        	{
30819
6
        	        	case COMMA:
30820
        	        		{
30821
6
        	        			alt103=1;
30822
        	        		}
30823
6
        	        	    break;
30824
30825
        	        	}
30826
30827
8
        	        	switch (alt103)
30828
        	        	{
30829
6
        	        	    case 1:
30830
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2043:7: COMMA formula[f2]
30831
        	        	        {
30832
6
        	        	             MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7580);
30833
6
        	        	            if  (HASEXCEPTION())
30834
        	        	            {
30835
        	        	                goto rulestringTermEx;
30836
        	        	            }
30837
6
        	        	            if (HASFAILED())
30838
        	        	            {
30839
        	        	                return ;
30840
        	        	            }
30841
30842
30843
6
        	        	            FOLLOWPUSH(FOLLOW_formula_in_stringTerm7582);
30844
6
        	        	            formula(ctx, f2);
30845
30846
6
        	        	            FOLLOWPOP();
30847
6
        	        	            if  (HASEXCEPTION())
30848
        	        	            {
30849
        	        	                goto rulestringTermEx;
30850
        	        	            }
30851
6
        	        	            if (HASFAILED())
30852
        	        	            {
30853
        	        	                return ;
30854
        	        	            }
30855
30856
30857
6
        	        	            if ( BACKTRACKING==0 )
30858
        	        	            {
30859
6
        	        	                 args.push_back(f2);
30860
        	        	            }
30861
30862
30863
        	        	        }
30864
6
        	        	        break;
30865
30866
2
        	        	    default:
30867
30868
2
        	        		if ( cnt103 >= 1 )
30869
        	        		{
30870
2
        	        		    goto loop103;
30871
        	        		}
30872
        	        		if (BACKTRACKING>0)
30873
        	        		{
30874
        	        		    FAILEDFLAG = ANTLR3_TRUE;
30875
        	        		    return ;
30876
        	        		}
30877
30878
        	        		/* mismatchedSetEx()
30879
        	        		 */
30880
        	        		CONSTRUCTEX();
30881
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
30882
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
30883
30884
30885
        	        		goto rulestringTermEx;
30886
        	        	}
30887
6
        	        	cnt103++;
30888
6
        	            }
30889
2
        	            loop103: ;	/* Jump to here if this rule does not match */
30890
        	        }
30891
30892
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7590);
30893
2
        	        if  (HASEXCEPTION())
30894
        	        {
30895
        	            goto rulestringTermEx;
30896
        	        }
30897
2
        	        if (HASFAILED())
30898
        	        {
30899
        	            return ;
30900
        	        }
30901
30902
30903
2
        	        if ( BACKTRACKING==0 )
30904
        	        {
30905
2
        	             f = MK_TERM(cvc5::api::REGEXP_CONCAT, args);
30906
        	        }
30907
30908
30909
        	    }
30910
2
        	    break;
30911
2
        	case 18:
30912
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2045:5: REGEXP_UNION_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN
30913
        	    {
30914
2
        	         MATCHT(REGEXP_UNION_TOK, &FOLLOW_REGEXP_UNION_TOK_in_stringTerm7602);
30915
2
        	        if  (HASEXCEPTION())
30916
        	        {
30917
        	            goto rulestringTermEx;
30918
        	        }
30919
2
        	        if (HASFAILED())
30920
        	        {
30921
        	            return ;
30922
        	        }
30923
30924
30925
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7604);
30926
2
        	        if  (HASEXCEPTION())
30927
        	        {
30928
        	            goto rulestringTermEx;
30929
        	        }
30930
2
        	        if (HASFAILED())
30931
        	        {
30932
        	            return ;
30933
        	        }
30934
30935
30936
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7606);
30937
2
        	        formula(ctx, f);
30938
30939
2
        	        FOLLOWPOP();
30940
2
        	        if  (HASEXCEPTION())
30941
        	        {
30942
        	            goto rulestringTermEx;
30943
        	        }
30944
2
        	        if (HASFAILED())
30945
        	        {
30946
        	            return ;
30947
        	        }
30948
30949
30950
2
        	        if ( BACKTRACKING==0 )
30951
        	        {
30952
2
        	             args.push_back(f);
30953
        	        }
30954
30955
30956
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2046:5: ( COMMA formula[f2] )+
30957
        	        {
30958
2
        	            int cnt104=0;
30959
30960
        	            for (;;)
30961
        	            {
30962
4
        	                int alt104=2;
30963
4
        	        	switch ( LA(1) )
30964
        	        	{
30965
2
        	        	case COMMA:
30966
        	        		{
30967
2
        	        			alt104=1;
30968
        	        		}
30969
2
        	        	    break;
30970
30971
        	        	}
30972
30973
4
        	        	switch (alt104)
30974
        	        	{
30975
2
        	        	    case 1:
30976
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2046:7: COMMA formula[f2]
30977
        	        	        {
30978
2
        	        	             MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7617);
30979
2
        	        	            if  (HASEXCEPTION())
30980
        	        	            {
30981
        	        	                goto rulestringTermEx;
30982
        	        	            }
30983
2
        	        	            if (HASFAILED())
30984
        	        	            {
30985
        	        	                return ;
30986
        	        	            }
30987
30988
30989
2
        	        	            FOLLOWPUSH(FOLLOW_formula_in_stringTerm7619);
30990
2
        	        	            formula(ctx, f2);
30991
30992
2
        	        	            FOLLOWPOP();
30993
2
        	        	            if  (HASEXCEPTION())
30994
        	        	            {
30995
        	        	                goto rulestringTermEx;
30996
        	        	            }
30997
2
        	        	            if (HASFAILED())
30998
        	        	            {
30999
        	        	                return ;
31000
        	        	            }
31001
31002
31003
2
        	        	            if ( BACKTRACKING==0 )
31004
        	        	            {
31005
2
        	        	                 args.push_back(f2);
31006
        	        	            }
31007
31008
31009
        	        	        }
31010
2
        	        	        break;
31011
31012
2
        	        	    default:
31013
31014
2
        	        		if ( cnt104 >= 1 )
31015
        	        		{
31016
2
        	        		    goto loop104;
31017
        	        		}
31018
        	        		if (BACKTRACKING>0)
31019
        	        		{
31020
        	        		    FAILEDFLAG = ANTLR3_TRUE;
31021
        	        		    return ;
31022
        	        		}
31023
31024
        	        		/* mismatchedSetEx()
31025
        	        		 */
31026
        	        		CONSTRUCTEX();
31027
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
31028
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
31029
31030
31031
        	        		goto rulestringTermEx;
31032
        	        	}
31033
2
        	        	cnt104++;
31034
2
        	            }
31035
2
        	            loop104: ;	/* Jump to here if this rule does not match */
31036
        	        }
31037
31038
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7627);
31039
2
        	        if  (HASEXCEPTION())
31040
        	        {
31041
        	            goto rulestringTermEx;
31042
        	        }
31043
2
        	        if (HASFAILED())
31044
        	        {
31045
        	            return ;
31046
        	        }
31047
31048
31049
2
        	        if ( BACKTRACKING==0 )
31050
        	        {
31051
2
        	             f = MK_TERM(cvc5::api::REGEXP_UNION, args);
31052
        	        }
31053
31054
31055
        	    }
31056
2
        	    break;
31057
2
        	case 19:
31058
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2048:5: REGEXP_INTER_TOK LPAREN formula[f] ( COMMA formula[f2] )+ RPAREN
31059
        	    {
31060
2
        	         MATCHT(REGEXP_INTER_TOK, &FOLLOW_REGEXP_INTER_TOK_in_stringTerm7639);
31061
2
        	        if  (HASEXCEPTION())
31062
        	        {
31063
        	            goto rulestringTermEx;
31064
        	        }
31065
2
        	        if (HASFAILED())
31066
        	        {
31067
        	            return ;
31068
        	        }
31069
31070
31071
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7641);
31072
2
        	        if  (HASEXCEPTION())
31073
        	        {
31074
        	            goto rulestringTermEx;
31075
        	        }
31076
2
        	        if (HASFAILED())
31077
        	        {
31078
        	            return ;
31079
        	        }
31080
31081
31082
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7643);
31083
2
        	        formula(ctx, f);
31084
31085
2
        	        FOLLOWPOP();
31086
2
        	        if  (HASEXCEPTION())
31087
        	        {
31088
        	            goto rulestringTermEx;
31089
        	        }
31090
2
        	        if (HASFAILED())
31091
        	        {
31092
        	            return ;
31093
        	        }
31094
31095
31096
2
        	        if ( BACKTRACKING==0 )
31097
        	        {
31098
2
        	             args.push_back(f);
31099
        	        }
31100
31101
31102
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2049:5: ( COMMA formula[f2] )+
31103
        	        {
31104
2
        	            int cnt105=0;
31105
31106
        	            for (;;)
31107
        	            {
31108
4
        	                int alt105=2;
31109
4
        	        	switch ( LA(1) )
31110
        	        	{
31111
2
        	        	case COMMA:
31112
        	        		{
31113
2
        	        			alt105=1;
31114
        	        		}
31115
2
        	        	    break;
31116
31117
        	        	}
31118
31119
4
        	        	switch (alt105)
31120
        	        	{
31121
2
        	        	    case 1:
31122
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2049:7: COMMA formula[f2]
31123
        	        	        {
31124
2
        	        	             MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7654);
31125
2
        	        	            if  (HASEXCEPTION())
31126
        	        	            {
31127
        	        	                goto rulestringTermEx;
31128
        	        	            }
31129
2
        	        	            if (HASFAILED())
31130
        	        	            {
31131
        	        	                return ;
31132
        	        	            }
31133
31134
31135
2
        	        	            FOLLOWPUSH(FOLLOW_formula_in_stringTerm7656);
31136
2
        	        	            formula(ctx, f2);
31137
31138
2
        	        	            FOLLOWPOP();
31139
2
        	        	            if  (HASEXCEPTION())
31140
        	        	            {
31141
        	        	                goto rulestringTermEx;
31142
        	        	            }
31143
2
        	        	            if (HASFAILED())
31144
        	        	            {
31145
        	        	                return ;
31146
        	        	            }
31147
31148
31149
2
        	        	            if ( BACKTRACKING==0 )
31150
        	        	            {
31151
2
        	        	                 args.push_back(f2);
31152
        	        	            }
31153
31154
31155
        	        	        }
31156
2
        	        	        break;
31157
31158
2
        	        	    default:
31159
31160
2
        	        		if ( cnt105 >= 1 )
31161
        	        		{
31162
2
        	        		    goto loop105;
31163
        	        		}
31164
        	        		if (BACKTRACKING>0)
31165
        	        		{
31166
        	        		    FAILEDFLAG = ANTLR3_TRUE;
31167
        	        		    return ;
31168
        	        		}
31169
31170
        	        		/* mismatchedSetEx()
31171
        	        		 */
31172
        	        		CONSTRUCTEX();
31173
        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
31174
        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
31175
31176
31177
        	        		goto rulestringTermEx;
31178
        	        	}
31179
2
        	        	cnt105++;
31180
2
        	            }
31181
2
        	            loop105: ;	/* Jump to here if this rule does not match */
31182
        	        }
31183
31184
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7664);
31185
2
        	        if  (HASEXCEPTION())
31186
        	        {
31187
        	            goto rulestringTermEx;
31188
        	        }
31189
2
        	        if (HASFAILED())
31190
        	        {
31191
        	            return ;
31192
        	        }
31193
31194
31195
2
        	        if ( BACKTRACKING==0 )
31196
        	        {
31197
2
        	             f = MK_TERM(cvc5::api::REGEXP_INTER, args);
31198
        	        }
31199
31200
31201
        	    }
31202
2
        	    break;
31203
4
        	case 20:
31204
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2051:5: REGEXP_STAR_TOK LPAREN formula[f] RPAREN
31205
        	    {
31206
4
        	         MATCHT(REGEXP_STAR_TOK, &FOLLOW_REGEXP_STAR_TOK_in_stringTerm7676);
31207
4
        	        if  (HASEXCEPTION())
31208
        	        {
31209
        	            goto rulestringTermEx;
31210
        	        }
31211
4
        	        if (HASFAILED())
31212
        	        {
31213
        	            return ;
31214
        	        }
31215
31216
31217
4
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7678);
31218
4
        	        if  (HASEXCEPTION())
31219
        	        {
31220
        	            goto rulestringTermEx;
31221
        	        }
31222
4
        	        if (HASFAILED())
31223
        	        {
31224
        	            return ;
31225
        	        }
31226
31227
31228
4
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7680);
31229
4
        	        formula(ctx, f);
31230
31231
4
        	        FOLLOWPOP();
31232
4
        	        if  (HASEXCEPTION())
31233
        	        {
31234
        	            goto rulestringTermEx;
31235
        	        }
31236
4
        	        if (HASFAILED())
31237
        	        {
31238
        	            return ;
31239
        	        }
31240
31241
31242
4
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7683);
31243
4
        	        if  (HASEXCEPTION())
31244
        	        {
31245
        	            goto rulestringTermEx;
31246
        	        }
31247
4
        	        if (HASFAILED())
31248
        	        {
31249
        	            return ;
31250
        	        }
31251
31252
31253
4
        	        if ( BACKTRACKING==0 )
31254
        	        {
31255
4
        	             f = MK_TERM(cvc5::api::REGEXP_STAR, f);
31256
        	        }
31257
31258
31259
        	    }
31260
4
        	    break;
31261
2
        	case 21:
31262
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2053:5: REGEXP_PLUS_TOK LPAREN formula[f] RPAREN
31263
        	    {
31264
2
        	         MATCHT(REGEXP_PLUS_TOK, &FOLLOW_REGEXP_PLUS_TOK_in_stringTerm7695);
31265
2
        	        if  (HASEXCEPTION())
31266
        	        {
31267
        	            goto rulestringTermEx;
31268
        	        }
31269
2
        	        if (HASFAILED())
31270
        	        {
31271
        	            return ;
31272
        	        }
31273
31274
31275
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7697);
31276
2
        	        if  (HASEXCEPTION())
31277
        	        {
31278
        	            goto rulestringTermEx;
31279
        	        }
31280
2
        	        if (HASFAILED())
31281
        	        {
31282
        	            return ;
31283
        	        }
31284
31285
31286
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7699);
31287
2
        	        formula(ctx, f);
31288
31289
2
        	        FOLLOWPOP();
31290
2
        	        if  (HASEXCEPTION())
31291
        	        {
31292
        	            goto rulestringTermEx;
31293
        	        }
31294
2
        	        if (HASFAILED())
31295
        	        {
31296
        	            return ;
31297
        	        }
31298
31299
31300
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7702);
31301
2
        	        if  (HASEXCEPTION())
31302
        	        {
31303
        	            goto rulestringTermEx;
31304
        	        }
31305
2
        	        if (HASFAILED())
31306
        	        {
31307
        	            return ;
31308
        	        }
31309
31310
31311
2
        	        if ( BACKTRACKING==0 )
31312
        	        {
31313
2
        	             f = MK_TERM(cvc5::api::REGEXP_PLUS, f);
31314
        	        }
31315
31316
31317
        	    }
31318
2
        	    break;
31319
2
        	case 22:
31320
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2055:5: REGEXP_OPT_TOK LPAREN formula[f] RPAREN
31321
        	    {
31322
2
        	         MATCHT(REGEXP_OPT_TOK, &FOLLOW_REGEXP_OPT_TOK_in_stringTerm7714);
31323
2
        	        if  (HASEXCEPTION())
31324
        	        {
31325
        	            goto rulestringTermEx;
31326
        	        }
31327
2
        	        if (HASFAILED())
31328
        	        {
31329
        	            return ;
31330
        	        }
31331
31332
31333
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7716);
31334
2
        	        if  (HASEXCEPTION())
31335
        	        {
31336
        	            goto rulestringTermEx;
31337
        	        }
31338
2
        	        if (HASFAILED())
31339
        	        {
31340
        	            return ;
31341
        	        }
31342
31343
31344
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7718);
31345
2
        	        formula(ctx, f);
31346
31347
2
        	        FOLLOWPOP();
31348
2
        	        if  (HASEXCEPTION())
31349
        	        {
31350
        	            goto rulestringTermEx;
31351
        	        }
31352
2
        	        if (HASFAILED())
31353
        	        {
31354
        	            return ;
31355
        	        }
31356
31357
31358
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7721);
31359
2
        	        if  (HASEXCEPTION())
31360
        	        {
31361
        	            goto rulestringTermEx;
31362
        	        }
31363
2
        	        if (HASFAILED())
31364
        	        {
31365
        	            return ;
31366
        	        }
31367
31368
31369
2
        	        if ( BACKTRACKING==0 )
31370
        	        {
31371
2
        	             f = MK_TERM(cvc5::api::REGEXP_OPT, f);
31372
        	        }
31373
31374
31375
        	    }
31376
2
        	    break;
31377
4
        	case 23:
31378
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2057:5: REGEXP_RANGE_TOK LPAREN formula[f] COMMA formula[f2] RPAREN
31379
        	    {
31380
4
        	         MATCHT(REGEXP_RANGE_TOK, &FOLLOW_REGEXP_RANGE_TOK_in_stringTerm7733);
31381
4
        	        if  (HASEXCEPTION())
31382
        	        {
31383
        	            goto rulestringTermEx;
31384
        	        }
31385
4
        	        if (HASFAILED())
31386
        	        {
31387
        	            return ;
31388
        	        }
31389
31390
31391
4
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7735);
31392
4
        	        if  (HASEXCEPTION())
31393
        	        {
31394
        	            goto rulestringTermEx;
31395
        	        }
31396
4
        	        if (HASFAILED())
31397
        	        {
31398
        	            return ;
31399
        	        }
31400
31401
31402
4
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7737);
31403
4
        	        formula(ctx, f);
31404
31405
4
        	        FOLLOWPOP();
31406
4
        	        if  (HASEXCEPTION())
31407
        	        {
31408
        	            goto rulestringTermEx;
31409
        	        }
31410
4
        	        if (HASFAILED())
31411
        	        {
31412
        	            return ;
31413
        	        }
31414
31415
31416
4
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7740);
31417
4
        	        if  (HASEXCEPTION())
31418
        	        {
31419
        	            goto rulestringTermEx;
31420
        	        }
31421
4
        	        if (HASFAILED())
31422
        	        {
31423
        	            return ;
31424
        	        }
31425
31426
31427
4
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7742);
31428
4
        	        formula(ctx, f2);
31429
31430
4
        	        FOLLOWPOP();
31431
4
        	        if  (HASEXCEPTION())
31432
        	        {
31433
        	            goto rulestringTermEx;
31434
        	        }
31435
4
        	        if (HASFAILED())
31436
        	        {
31437
        	            return ;
31438
        	        }
31439
31440
31441
4
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7745);
31442
4
        	        if  (HASEXCEPTION())
31443
        	        {
31444
        	            goto rulestringTermEx;
31445
        	        }
31446
4
        	        if (HASFAILED())
31447
        	        {
31448
        	            return ;
31449
        	        }
31450
31451
31452
4
        	        if ( BACKTRACKING==0 )
31453
        	        {
31454
4
        	             f = MK_TERM(cvc5::api::REGEXP_RANGE, f, f2);
31455
        	        }
31456
31457
31458
        	    }
31459
4
        	    break;
31460
2
        	case 24:
31461
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2059:5: REGEXP_LOOP_TOK LPAREN formula[f] COMMA lo= numeral COMMA hi= numeral RPAREN
31462
        	    {
31463
2
        	         MATCHT(REGEXP_LOOP_TOK, &FOLLOW_REGEXP_LOOP_TOK_in_stringTerm7757);
31464
2
        	        if  (HASEXCEPTION())
31465
        	        {
31466
        	            goto rulestringTermEx;
31467
        	        }
31468
2
        	        if (HASFAILED())
31469
        	        {
31470
        	            return ;
31471
        	        }
31472
31473
31474
2
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7759);
31475
2
        	        if  (HASEXCEPTION())
31476
        	        {
31477
        	            goto rulestringTermEx;
31478
        	        }
31479
2
        	        if (HASFAILED())
31480
        	        {
31481
        	            return ;
31482
        	        }
31483
31484
31485
2
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7761);
31486
2
        	        formula(ctx, f);
31487
31488
2
        	        FOLLOWPOP();
31489
2
        	        if  (HASEXCEPTION())
31490
        	        {
31491
        	            goto rulestringTermEx;
31492
        	        }
31493
2
        	        if (HASFAILED())
31494
        	        {
31495
        	            return ;
31496
        	        }
31497
31498
31499
2
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7764);
31500
2
        	        if  (HASEXCEPTION())
31501
        	        {
31502
        	            goto rulestringTermEx;
31503
        	        }
31504
2
        	        if (HASFAILED())
31505
        	        {
31506
        	            return ;
31507
        	        }
31508
31509
31510
2
        	        FOLLOWPUSH(FOLLOW_numeral_in_stringTerm7768);
31511
2
        	        lo=numeral(ctx);
31512
31513
2
        	        FOLLOWPOP();
31514
2
        	        if  (HASEXCEPTION())
31515
        	        {
31516
        	            goto rulestringTermEx;
31517
        	        }
31518
2
        	        if (HASFAILED())
31519
        	        {
31520
        	            return ;
31521
        	        }
31522
31523
31524
2
        	         MATCHT(COMMA, &FOLLOW_COMMA_in_stringTerm7770);
31525
2
        	        if  (HASEXCEPTION())
31526
        	        {
31527
        	            goto rulestringTermEx;
31528
        	        }
31529
2
        	        if (HASFAILED())
31530
        	        {
31531
        	            return ;
31532
        	        }
31533
31534
31535
2
        	        FOLLOWPUSH(FOLLOW_numeral_in_stringTerm7774);
31536
2
        	        hi=numeral(ctx);
31537
31538
2
        	        FOLLOWPOP();
31539
2
        	        if  (HASEXCEPTION())
31540
        	        {
31541
        	            goto rulestringTermEx;
31542
        	        }
31543
2
        	        if (HASFAILED())
31544
        	        {
31545
        	            return ;
31546
        	        }
31547
31548
31549
2
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7776);
31550
2
        	        if  (HASEXCEPTION())
31551
        	        {
31552
        	            goto rulestringTermEx;
31553
        	        }
31554
2
        	        if (HASFAILED())
31555
        	        {
31556
        	            return ;
31557
        	        }
31558
31559
31560
2
        	        if ( BACKTRACKING==0 )
31561
        	        {
31562
31563
4
        	                  api::Op lop = SOLVER->mkOp(cvc5::api::REGEXP_LOOP, lo, hi);
31564
2
        	                  f = MK_TERM(lop, f);
31565
31566
        	        }
31567
31568
31569
        	    }
31570
2
        	    break;
31571
        	case 25:
31572
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2064:5: REGEXP_COMPLEMENT_TOK LPAREN formula[f] RPAREN
31573
        	    {
31574
        	         MATCHT(REGEXP_COMPLEMENT_TOK, &FOLLOW_REGEXP_COMPLEMENT_TOK_in_stringTerm7788);
31575
        	        if  (HASEXCEPTION())
31576
        	        {
31577
        	            goto rulestringTermEx;
31578
        	        }
31579
        	        if (HASFAILED())
31580
        	        {
31581
        	            return ;
31582
        	        }
31583
31584
31585
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7790);
31586
        	        if  (HASEXCEPTION())
31587
        	        {
31588
        	            goto rulestringTermEx;
31589
        	        }
31590
        	        if (HASFAILED())
31591
        	        {
31592
        	            return ;
31593
        	        }
31594
31595
31596
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7792);
31597
        	        formula(ctx, f);
31598
31599
        	        FOLLOWPOP();
31600
        	        if  (HASEXCEPTION())
31601
        	        {
31602
        	            goto rulestringTermEx;
31603
        	        }
31604
        	        if (HASFAILED())
31605
        	        {
31606
        	            return ;
31607
        	        }
31608
31609
31610
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7795);
31611
        	        if  (HASEXCEPTION())
31612
        	        {
31613
        	            goto rulestringTermEx;
31614
        	        }
31615
        	        if (HASFAILED())
31616
        	        {
31617
        	            return ;
31618
        	        }
31619
31620
31621
        	        if ( BACKTRACKING==0 )
31622
        	        {
31623
        	             f = MK_TERM(cvc5::api::REGEXP_COMPLEMENT, f);
31624
        	        }
31625
31626
31627
        	    }
31628
        	    break;
31629
        	case 26:
31630
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2066:5: SEQ_UNIT_TOK LPAREN formula[f] RPAREN
31631
        	    {
31632
        	         MATCHT(SEQ_UNIT_TOK, &FOLLOW_SEQ_UNIT_TOK_in_stringTerm7807);
31633
        	        if  (HASEXCEPTION())
31634
        	        {
31635
        	            goto rulestringTermEx;
31636
        	        }
31637
        	        if (HASFAILED())
31638
        	        {
31639
        	            return ;
31640
        	        }
31641
31642
31643
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_stringTerm7809);
31644
        	        if  (HASEXCEPTION())
31645
        	        {
31646
        	            goto rulestringTermEx;
31647
        	        }
31648
        	        if (HASFAILED())
31649
        	        {
31650
        	            return ;
31651
        	        }
31652
31653
31654
        	        FOLLOWPUSH(FOLLOW_formula_in_stringTerm7811);
31655
        	        formula(ctx, f);
31656
31657
        	        FOLLOWPOP();
31658
        	        if  (HASEXCEPTION())
31659
        	        {
31660
        	            goto rulestringTermEx;
31661
        	        }
31662
        	        if (HASFAILED())
31663
        	        {
31664
        	            return ;
31665
        	        }
31666
31667
31668
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_stringTerm7814);
31669
        	        if  (HASEXCEPTION())
31670
        	        {
31671
        	            goto rulestringTermEx;
31672
        	        }
31673
        	        if (HASFAILED())
31674
        	        {
31675
        	            return ;
31676
        	        }
31677
31678
31679
        	        if ( BACKTRACKING==0 )
31680
        	        {
31681
        	             f = MK_TERM(cvc5::api::SEQ_UNIT, f);
31682
        	        }
31683
31684
31685
        	    }
31686
        	    break;
31687
2
        	case 27:
31688
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2068:5: REGEXP_EMPTY_TOK
31689
        	    {
31690
2
        	         MATCHT(REGEXP_EMPTY_TOK, &FOLLOW_REGEXP_EMPTY_TOK_in_stringTerm7826);
31691
2
        	        if  (HASEXCEPTION())
31692
        	        {
31693
        	            goto rulestringTermEx;
31694
        	        }
31695
2
        	        if (HASFAILED())
31696
        	        {
31697
        	            return ;
31698
        	        }
31699
31700
31701
2
        	        if ( BACKTRACKING==0 )
31702
        	        {
31703
2
        	             f = MK_TERM(cvc5::api::REGEXP_EMPTY, std::vector<api::Term>());
31704
        	        }
31705
31706
31707
        	    }
31708
2
        	    break;
31709
4
        	case 28:
31710
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2070:5: REGEXP_SIGMA_TOK
31711
        	    {
31712
4
        	         MATCHT(REGEXP_SIGMA_TOK, &FOLLOW_REGEXP_SIGMA_TOK_in_stringTerm7838);
31713
4
        	        if  (HASEXCEPTION())
31714
        	        {
31715
        	            goto rulestringTermEx;
31716
        	        }
31717
4
        	        if (HASFAILED())
31718
        	        {
31719
        	            return ;
31720
        	        }
31721
31722
31723
4
        	        if ( BACKTRACKING==0 )
31724
        	        {
31725
4
        	             f = MK_TERM(cvc5::api::REGEXP_SIGMA, std::vector<api::Term>());
31726
        	        }
31727
31728
31729
        	    }
31730
4
        	    break;
31731
39
        	case 29:
31732
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2074:5: str[s]
31733
        	    {
31734
39
        	        FOLLOWPUSH(FOLLOW_str_in_stringTerm7857);
31735
39
        	        str(ctx, s);
31736
31737
39
        	        FOLLOWPOP();
31738
39
        	        if  (HASEXCEPTION())
31739
        	        {
31740
        	            goto rulestringTermEx;
31741
        	        }
31742
39
        	        if (HASFAILED())
31743
        	        {
31744
        	            return ;
31745
        	        }
31746
31747
31748
39
        	        if ( BACKTRACKING==0 )
31749
        	        {
31750
39
        	             f = PARSER_STATE->mkStringConstant(s);
31751
        	        }
31752
31753
31754
        	    }
31755
39
        	    break;
31756
80292
        	case 30:
31757
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2077:5: setsTerm[f]
31758
        	    {
31759
80292
        	        FOLLOWPUSH(FOLLOW_setsTerm_in_stringTerm7871);
31760
80292
        	        setsTerm(ctx, f);
31761
31762
80292
        	        FOLLOWPOP();
31763
80292
        	        if  (HASEXCEPTION())
31764
        	        {
31765
        	            goto rulestringTermEx;
31766
        	        }
31767
80292
        	        if (HASFAILED())
31768
        	        {
31769
        	            return ;
31770
        	        }
31771
31772
31773
        	    }
31774
80292
        	    break;
31775
31776
            }
31777
        }
31778
    }
31779
31780
    // This is where rules clean up and exit
31781
    //
31782
80386
    goto rulestringTermEx; /* Prevent compiler warnings */
31783
80386
    rulestringTermEx: ;
31784
31785
80386
            if (HASEXCEPTION())
31786
            {
31787
                PREPORTERROR();
31788
                PRECOVER();
31789
            }
31790
80386
    return ;
31791
}
31792
/* $ANTLR end stringTerm */
31793
31794
/**
31795
 * $ANTLR start setsTerm
31796
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2080:1: setsTerm[cvc5::api::Term& f] : ( SETS_CARD_TOK LPAREN formula[f] RPAREN | SETS_CHOOSE_TOK LPAREN formula[f] RPAREN | simpleTerm[f] );
31797
 */
31798
static void
31799
80292
setsTerm(pCvcParser ctx, cvc5::api::Term& f)
31800
{
31801
    /* Initialize rule variables
31802
     */
31803
31804
31805
31806
    {
31807
        {
31808
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2084:3: ( SETS_CARD_TOK LPAREN formula[f] RPAREN | SETS_CHOOSE_TOK LPAREN formula[f] RPAREN | simpleTerm[f] )
31809
31810
            ANTLR3_UINT32 alt107;
31811
31812
80292
            alt107=3;
31813
31814
80292
            switch ( LA(1) )
31815
            {
31816
13
            case SETS_CARD_TOK:
31817
            	{
31818
13
            		alt107=1;
31819
            	}
31820
13
                break;
31821
4
            case SETS_CHOOSE_TOK:
31822
            	{
31823
4
            		alt107=2;
31824
            	}
31825
4
                break;
31826
80275
            case ARRAY_TOK:
31827
            case BAR:
31828
            case BINARY_LITERAL:
31829
            case DECIMAL_LITERAL:
31830
            case FALSE_TOK:
31831
            case HEX_LITERAL:
31832
            case IDENTIFIER:
31833
            case IF_TOK:
31834
            case INTEGER_LITERAL:
31835
            case LBRACE:
31836
            case LPAREN:
31837
            case PARENHASH:
31838
            case TRUE_TOK:
31839
            case UNIVSET_TOK:
31840
            	{
31841
80275
            		alt107=3;
31842
            	}
31843
80275
                break;
31844
31845
            default:
31846
                if (BACKTRACKING>0)
31847
                {
31848
                    FAILEDFLAG = ANTLR3_TRUE;
31849
                    return ;
31850
                }
31851
31852
                CONSTRUCTEX();
31853
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
31854
                EXCEPTION->message      = (void *)"";
31855
                EXCEPTION->decisionNum  = 107;
31856
                EXCEPTION->state        = 0;
31857
31858
31859
                goto rulesetsTermEx;
31860
31861
            }
31862
31863
80292
            switch (alt107)
31864
            {
31865
13
        	case 1:
31866
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2084:5: SETS_CARD_TOK LPAREN formula[f] RPAREN
31867
        	    {
31868
13
        	         MATCHT(SETS_CARD_TOK, &FOLLOW_SETS_CARD_TOK_in_setsTerm7897);
31869
13
        	        if  (HASEXCEPTION())
31870
        	        {
31871
        	            goto rulesetsTermEx;
31872
        	        }
31873
13
        	        if (HASFAILED())
31874
        	        {
31875
        	            return ;
31876
        	        }
31877
31878
31879
13
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_setsTerm7899);
31880
13
        	        if  (HASEXCEPTION())
31881
        	        {
31882
        	            goto rulesetsTermEx;
31883
        	        }
31884
13
        	        if (HASFAILED())
31885
        	        {
31886
        	            return ;
31887
        	        }
31888
31889
31890
13
        	        FOLLOWPUSH(FOLLOW_formula_in_setsTerm7901);
31891
13
        	        formula(ctx, f);
31892
31893
13
        	        FOLLOWPOP();
31894
13
        	        if  (HASEXCEPTION())
31895
        	        {
31896
        	            goto rulesetsTermEx;
31897
        	        }
31898
13
        	        if (HASFAILED())
31899
        	        {
31900
        	            return ;
31901
        	        }
31902
31903
31904
13
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_setsTerm7904);
31905
13
        	        if  (HASEXCEPTION())
31906
        	        {
31907
        	            goto rulesetsTermEx;
31908
        	        }
31909
13
        	        if (HASFAILED())
31910
        	        {
31911
        	            return ;
31912
        	        }
31913
31914
31915
13
        	        if ( BACKTRACKING==0 )
31916
        	        {
31917
13
        	             f = MK_TERM(cvc5::api::CARD, f);
31918
        	        }
31919
31920
31921
        	    }
31922
13
        	    break;
31923
4
        	case 2:
31924
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2086:5: SETS_CHOOSE_TOK LPAREN formula[f] RPAREN
31925
        	    {
31926
4
        	         MATCHT(SETS_CHOOSE_TOK, &FOLLOW_SETS_CHOOSE_TOK_in_setsTerm7916);
31927
4
        	        if  (HASEXCEPTION())
31928
        	        {
31929
        	            goto rulesetsTermEx;
31930
        	        }
31931
4
        	        if (HASFAILED())
31932
        	        {
31933
        	            return ;
31934
        	        }
31935
31936
31937
4
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_setsTerm7918);
31938
4
        	        if  (HASEXCEPTION())
31939
        	        {
31940
        	            goto rulesetsTermEx;
31941
        	        }
31942
4
        	        if (HASFAILED())
31943
        	        {
31944
        	            return ;
31945
        	        }
31946
31947
31948
4
        	        FOLLOWPUSH(FOLLOW_formula_in_setsTerm7920);
31949
4
        	        formula(ctx, f);
31950
31951
4
        	        FOLLOWPOP();
31952
4
        	        if  (HASEXCEPTION())
31953
        	        {
31954
        	            goto rulesetsTermEx;
31955
        	        }
31956
4
        	        if (HASFAILED())
31957
        	        {
31958
        	            return ;
31959
        	        }
31960
31961
31962
4
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_setsTerm7923);
31963
4
        	        if  (HASEXCEPTION())
31964
        	        {
31965
        	            goto rulesetsTermEx;
31966
        	        }
31967
4
        	        if (HASFAILED())
31968
        	        {
31969
        	            return ;
31970
        	        }
31971
31972
31973
4
        	        if ( BACKTRACKING==0 )
31974
        	        {
31975
4
        	             f = MK_TERM(cvc5::api::CHOOSE, f);
31976
        	        }
31977
31978
31979
        	    }
31980
4
        	    break;
31981
80275
        	case 3:
31982
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2088:5: simpleTerm[f]
31983
        	    {
31984
80275
        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_setsTerm7939);
31985
80275
        	        simpleTerm(ctx, f);
31986
31987
80275
        	        FOLLOWPOP();
31988
80275
        	        if  (HASEXCEPTION())
31989
        	        {
31990
        	            goto rulesetsTermEx;
31991
        	        }
31992
80275
        	        if (HASFAILED())
31993
        	        {
31994
        	            return ;
31995
        	        }
31996
31997
31998
        	    }
31999
80275
        	    break;
32000
32001
            }
32002
        }
32003
    }
32004
32005
    // This is where rules clean up and exit
32006
    //
32007
80292
    goto rulesetsTermEx; /* Prevent compiler warnings */
32008
80292
    rulesetsTermEx: ;
32009
32010
80292
            if (HASEXCEPTION())
32011
            {
32012
                PREPORTERROR();
32013
                PRECOVER();
32014
            }
32015
80292
    return ;
32016
}
32017
/* $ANTLR end setsTerm */
32018
32019
/**
32020
 * $ANTLR start simpleTerm
32021
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2093:1: simpleTerm[cvc5::api::Term& f] : ( iteTerm[f] | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | LPAREN RPAREN | PARENHASH HASHPAREN | LBRACE RBRACE | UNIVSET_TOK | LBRACE formula[f] ( COMMA formula[f] )* RBRACE | BAR BAR formula[f] BAR BAR | ARRAY_TOK LPAREN restrictedType[t, CHECK_DECLARED] OF_TOK restrictedType[t2, CHECK_DECLARED] RPAREN COLON simpleTerm[f] | TRUE_TOK | FALSE_TOK | DECIMAL_LITERAL | INTEGER_LITERAL | HEX_LITERAL | BINARY_LITERAL | PARENHASH recordEntry[name,e] ( COMMA recordEntry[name,e] )* HASHPAREN | identifier[name,CHECK_DECLARED,SYM_VARIABLE] );
32022
 */
32023
static void
32024
80298
simpleTerm(pCvcParser ctx, cvc5::api::Term& f)
32025
{
32026
    pANTLR3_COMMON_TOKEN    DECIMAL_LITERAL17;
32027
    pANTLR3_COMMON_TOKEN    INTEGER_LITERAL18;
32028
    pANTLR3_COMMON_TOKEN    HEX_LITERAL19;
32029
    pANTLR3_COMMON_TOKEN    BINARY_LITERAL20;
32030
32031
    /* Initialize rule variables
32032
     */
32033
32034
32035
160596
      std::string name;
32036
160596
      std::vector<api::Term> args;
32037
160596
      std::vector<std::string> names;
32038
160596
      api::Term e;
32039
80298
      Debug("parser-extra") << "term: " << AntlrInput::tokenText(LT(1)) << std::endl;
32040
160596
      api::Sort t, t2;
32041
32042
80298
    DECIMAL_LITERAL17       = NULL;
32043
80298
    INTEGER_LITERAL18       = NULL;
32044
80298
    HEX_LITERAL19       = NULL;
32045
80298
    BINARY_LITERAL20       = NULL;
32046
32047
    {
32048
        {
32049
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2103:3: ( iteTerm[f] | LPAREN formula[f] ( COMMA formula[f] )* RPAREN | LPAREN RPAREN | PARENHASH HASHPAREN | LBRACE RBRACE | UNIVSET_TOK | LBRACE formula[f] ( COMMA formula[f] )* RBRACE | BAR BAR formula[f] BAR BAR | ARRAY_TOK LPAREN restrictedType[t, CHECK_DECLARED] OF_TOK restrictedType[t2, CHECK_DECLARED] RPAREN COLON simpleTerm[f] | TRUE_TOK | FALSE_TOK | DECIMAL_LITERAL | INTEGER_LITERAL | HEX_LITERAL | BINARY_LITERAL | PARENHASH recordEntry[name,e] ( COMMA recordEntry[name,e] )* HASHPAREN | identifier[name,CHECK_DECLARED,SYM_VARIABLE] )
32050
32051
            ANTLR3_UINT32 alt111;
32052
32053
80298
            alt111=17;
32054
32055
80298
            switch ( LA(1) )
32056
            {
32057
994
            case IF_TOK:
32058
            	{
32059
994
            		alt111=1;
32060
            	}
32061
994
                break;
32062
29900
            case LPAREN:
32063
            	{
32064
29900
            		switch ( LA(2) )
32065
            		{
32066
            		case RPAREN:
32067
            			{
32068
            				alt111=3;
32069
            			}
32070
            		    break;
32071
29900
            		case ABS_TOK:
32072
            		case ARRAY_TOK:
32073
            		case BAR:
32074
            		case BINARY_LITERAL:
32075
            		case BVASHR_TOK:
32076
            		case BVCOMP_TOK:
32077
            		case BVGE_TOK:
32078
            		case BVGT_TOK:
32079
            		case BVLE_TOK:
32080
            		case BVLSHR_TOK:
32081
            		case BVLT_TOK:
32082
            		case BVMULT_TOK:
32083
            		case BVNAND_TOK:
32084
            		case BVNEG_TOK:
32085
            		case BVNOR_TOK:
32086
            		case BVPLUS_TOK:
32087
            		case BVREPEAT_TOK:
32088
            		case BVROTL_TOK:
32089
            		case BVROTR_TOK:
32090
            		case BVSDIV_TOK:
32091
            		case BVSGE_TOK:
32092
            		case BVSGT_TOK:
32093
            		case BVSHL_TOK:
32094
            		case BVSLE_TOK:
32095
            		case BVSLT_TOK:
32096
            		case BVSMOD_TOK:
32097
            		case BVSREM_TOK:
32098
            		case BVSUB_TOK:
32099
            		case BVUDIV_TOK:
32100
            		case BVUMINUS_TOK:
32101
            		case BVUREM_TOK:
32102
            		case BVXNOR_TOK:
32103
            		case BVXOR_TOK:
32104
            		case BVZEROEXTEND_TOK:
32105
            		case DECIMAL_LITERAL:
32106
            		case DISTINCT_TOK:
32107
            		case DIVISIBLE_TOK:
32108
            		case EXISTS_TOK:
32109
            		case FALSE_TOK:
32110
            		case FLOOR_TOK:
32111
            		case FORALL_TOK:
32112
            		case HEX_LITERAL:
32113
            		case IDENTIFIER:
32114
            		case IDEN_TOK:
32115
            		case IF_TOK:
32116
            		case INTEGER_LITERAL:
32117
            		case IS_INTEGER_TOK:
32118
            		case LAMBDA_TOK:
32119
            		case LBRACE:
32120
            		case LET_TOK:
32121
            		case LPAREN:
32122
            		case MINUS_TOK:
32123
            		case NOT_TOK:
32124
            		case PARENHASH:
32125
            		case REGEXP_COMPLEMENT_TOK:
32126
            		case REGEXP_CONCAT_TOK:
32127
            		case REGEXP_EMPTY_TOK:
32128
            		case REGEXP_INTER_TOK:
32129
            		case REGEXP_LOOP_TOK:
32130
            		case REGEXP_OPT_TOK:
32131
            		case REGEXP_PLUS_TOK:
32132
            		case REGEXP_RANGE_TOK:
32133
            		case REGEXP_SIGMA_TOK:
32134
            		case REGEXP_STAR_TOK:
32135
            		case REGEXP_UNION_TOK:
32136
            		case SEQ_UNIT_TOK:
32137
            		case SETS_CARD_TOK:
32138
            		case SETS_CHOOSE_TOK:
32139
            		case STRING_CHARAT_TOK:
32140
            		case STRING_CONCAT_TOK:
32141
            		case STRING_CONTAINS_TOK:
32142
            		case STRING_INDEXOF_TOK:
32143
            		case STRING_ITOS_TOK:
32144
            		case STRING_LENGTH_TOK:
32145
            		case STRING_LITERAL:
32146
            		case STRING_PREFIXOF_TOK:
32147
            		case STRING_REPLACE_ALL_TOK:
32148
            		case STRING_REPLACE_TOK:
32149
            		case STRING_REV_TOK:
32150
            		case STRING_STOI_TOK:
32151
            		case STRING_SUBSTR_TOK:
32152
            		case STRING_SUFFIXOF_TOK:
32153
            		case STRING_TOLOWER_TOK:
32154
            		case STRING_TOUPPER_TOK:
32155
            		case STRING_TO_REGEXP_TOK:
32156
            		case SX_TOK:
32157
            		case TRANSCLOSURE_TOK:
32158
            		case TRANSPOSE_TOK:
32159
            		case TRUE_TOK:
32160
            		case TUPLE_TOK:
32161
            		case UNIVSET_TOK:
32162
            			{
32163
29900
            				alt111=2;
32164
            			}
32165
29900
            		    break;
32166
32167
            		default:
32168
            		    if (BACKTRACKING>0)
32169
            		    {
32170
            		        FAILEDFLAG = ANTLR3_TRUE;
32171
            		        return ;
32172
            		    }
32173
32174
            		    CONSTRUCTEX();
32175
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
32176
            		    EXCEPTION->message      = (void *)"";
32177
            		    EXCEPTION->decisionNum  = 111;
32178
            		    EXCEPTION->state        = 2;
32179
32180
32181
            		    goto rulesimpleTermEx;
32182
32183
            		}
32184
32185
            	}
32186
29900
                break;
32187
60
            case PARENHASH:
32188
            	{
32189
60
            		switch ( LA(2) )
32190
            		{
32191
            		case HASHPAREN:
32192
            			{
32193
            				alt111=4;
32194
            			}
32195
            		    break;
32196
60
            		case IDENTIFIER:
32197
            			{
32198
60
            				alt111=16;
32199
            			}
32200
60
            		    break;
32201
32202
            		default:
32203
            		    if (BACKTRACKING>0)
32204
            		    {
32205
            		        FAILEDFLAG = ANTLR3_TRUE;
32206
            		        return ;
32207
            		    }
32208
32209
            		    CONSTRUCTEX();
32210
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
32211
            		    EXCEPTION->message      = (void *)"";
32212
            		    EXCEPTION->decisionNum  = 111;
32213
            		    EXCEPTION->state        = 3;
32214
32215
32216
            		    goto rulesimpleTermEx;
32217
32218
            		}
32219
32220
            	}
32221
60
                break;
32222
205
            case LBRACE:
32223
            	{
32224
205
            		switch ( LA(2) )
32225
            		{
32226
24
            		case RBRACE:
32227
            			{
32228
24
            				alt111=5;
32229
            			}
32230
24
            		    break;
32231
181
            		case ABS_TOK:
32232
            		case ARRAY_TOK:
32233
            		case BAR:
32234
            		case BINARY_LITERAL:
32235
            		case BVASHR_TOK:
32236
            		case BVCOMP_TOK:
32237
            		case BVGE_TOK:
32238
            		case BVGT_TOK:
32239
            		case BVLE_TOK:
32240
            		case BVLSHR_TOK:
32241
            		case BVLT_TOK:
32242
            		case BVMULT_TOK:
32243
            		case BVNAND_TOK:
32244
            		case BVNEG_TOK:
32245
            		case BVNOR_TOK:
32246
            		case BVPLUS_TOK:
32247
            		case BVREPEAT_TOK:
32248
            		case BVROTL_TOK:
32249
            		case BVROTR_TOK:
32250
            		case BVSDIV_TOK:
32251
            		case BVSGE_TOK:
32252
            		case BVSGT_TOK:
32253
            		case BVSHL_TOK:
32254
            		case BVSLE_TOK:
32255
            		case BVSLT_TOK:
32256
            		case BVSMOD_TOK:
32257
            		case BVSREM_TOK:
32258
            		case BVSUB_TOK:
32259
            		case BVUDIV_TOK:
32260
            		case BVUMINUS_TOK:
32261
            		case BVUREM_TOK:
32262
            		case BVXNOR_TOK:
32263
            		case BVXOR_TOK:
32264
            		case BVZEROEXTEND_TOK:
32265
            		case DECIMAL_LITERAL:
32266
            		case DISTINCT_TOK:
32267
            		case DIVISIBLE_TOK:
32268
            		case EXISTS_TOK:
32269
            		case FALSE_TOK:
32270
            		case FLOOR_TOK:
32271
            		case FORALL_TOK:
32272
            		case HEX_LITERAL:
32273
            		case IDENTIFIER:
32274
            		case IDEN_TOK:
32275
            		case IF_TOK:
32276
            		case INTEGER_LITERAL:
32277
            		case IS_INTEGER_TOK:
32278
            		case LAMBDA_TOK:
32279
            		case LBRACE:
32280
            		case LET_TOK:
32281
            		case LPAREN:
32282
            		case MINUS_TOK:
32283
            		case NOT_TOK:
32284
            		case PARENHASH:
32285
            		case REGEXP_COMPLEMENT_TOK:
32286
            		case REGEXP_CONCAT_TOK:
32287
            		case REGEXP_EMPTY_TOK:
32288
            		case REGEXP_INTER_TOK:
32289
            		case REGEXP_LOOP_TOK:
32290
            		case REGEXP_OPT_TOK:
32291
            		case REGEXP_PLUS_TOK:
32292
            		case REGEXP_RANGE_TOK:
32293
            		case REGEXP_SIGMA_TOK:
32294
            		case REGEXP_STAR_TOK:
32295
            		case REGEXP_UNION_TOK:
32296
            		case SEQ_UNIT_TOK:
32297
            		case SETS_CARD_TOK:
32298
            		case SETS_CHOOSE_TOK:
32299
            		case STRING_CHARAT_TOK:
32300
            		case STRING_CONCAT_TOK:
32301
            		case STRING_CONTAINS_TOK:
32302
            		case STRING_INDEXOF_TOK:
32303
            		case STRING_ITOS_TOK:
32304
            		case STRING_LENGTH_TOK:
32305
            		case STRING_LITERAL:
32306
            		case STRING_PREFIXOF_TOK:
32307
            		case STRING_REPLACE_ALL_TOK:
32308
            		case STRING_REPLACE_TOK:
32309
            		case STRING_REV_TOK:
32310
            		case STRING_STOI_TOK:
32311
            		case STRING_SUBSTR_TOK:
32312
            		case STRING_SUFFIXOF_TOK:
32313
            		case STRING_TOLOWER_TOK:
32314
            		case STRING_TOUPPER_TOK:
32315
            		case STRING_TO_REGEXP_TOK:
32316
            		case SX_TOK:
32317
            		case TRANSCLOSURE_TOK:
32318
            		case TRANSPOSE_TOK:
32319
            		case TRUE_TOK:
32320
            		case TUPLE_TOK:
32321
            		case UNIVSET_TOK:
32322
            			{
32323
181
            				alt111=7;
32324
            			}
32325
181
            		    break;
32326
32327
            		default:
32328
            		    if (BACKTRACKING>0)
32329
            		    {
32330
            		        FAILEDFLAG = ANTLR3_TRUE;
32331
            		        return ;
32332
            		    }
32333
32334
            		    CONSTRUCTEX();
32335
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
32336
            		    EXCEPTION->message      = (void *)"";
32337
            		    EXCEPTION->decisionNum  = 111;
32338
            		    EXCEPTION->state        = 4;
32339
32340
32341
            		    goto rulesimpleTermEx;
32342
32343
            		}
32344
32345
            	}
32346
205
                break;
32347
25
            case UNIVSET_TOK:
32348
            	{
32349
25
            		alt111=6;
32350
            	}
32351
25
                break;
32352
            case BAR:
32353
            	{
32354
            		alt111=8;
32355
            	}
32356
                break;
32357
23
            case ARRAY_TOK:
32358
            	{
32359
23
            		alt111=9;
32360
            	}
32361
23
                break;
32362
488
            case TRUE_TOK:
32363
            	{
32364
488
            		alt111=10;
32365
            	}
32366
488
                break;
32367
507
            case FALSE_TOK:
32368
            	{
32369
507
            		alt111=11;
32370
            	}
32371
507
                break;
32372
28
            case DECIMAL_LITERAL:
32373
            	{
32374
28
            		alt111=12;
32375
            	}
32376
28
                break;
32377
4489
            case INTEGER_LITERAL:
32378
            	{
32379
4489
            		alt111=13;
32380
            	}
32381
4489
                break;
32382
32
            case HEX_LITERAL:
32383
            	{
32384
32
            		alt111=14;
32385
            	}
32386
32
                break;
32387
269
            case BINARY_LITERAL:
32388
            	{
32389
269
            		alt111=15;
32390
            	}
32391
269
                break;
32392
43278
            case IDENTIFIER:
32393
            	{
32394
43278
            		alt111=17;
32395
            	}
32396
43278
                break;
32397
32398
            default:
32399
                if (BACKTRACKING>0)
32400
                {
32401
                    FAILEDFLAG = ANTLR3_TRUE;
32402
                    return ;
32403
                }
32404
32405
                CONSTRUCTEX();
32406
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
32407
                EXCEPTION->message      = (void *)"";
32408
                EXCEPTION->decisionNum  = 111;
32409
                EXCEPTION->state        = 0;
32410
32411
32412
                goto rulesimpleTermEx;
32413
32414
            }
32415
32416
80298
            switch (alt111)
32417
            {
32418
994
        	case 1:
32419
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2103:5: iteTerm[f]
32420
        	    {
32421
994
        	        FOLLOWPUSH(FOLLOW_iteTerm_in_simpleTerm7968);
32422
994
        	        iteTerm(ctx, f);
32423
32424
994
        	        FOLLOWPOP();
32425
994
        	        if  (HASEXCEPTION())
32426
        	        {
32427
        	            goto rulesimpleTermEx;
32428
        	        }
32429
994
        	        if (HASFAILED())
32430
        	        {
32431
        	            return ;
32432
        	        }
32433
32434
32435
        	    }
32436
994
        	    break;
32437
29900
        	case 2:
32438
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2106:5: LPAREN formula[f] ( COMMA formula[f] )* RPAREN
32439
        	    {
32440
29900
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_simpleTerm7982);
32441
29900
        	        if  (HASEXCEPTION())
32442
        	        {
32443
        	            goto rulesimpleTermEx;
32444
        	        }
32445
29900
        	        if (HASFAILED())
32446
        	        {
32447
        	            return ;
32448
        	        }
32449
32450
32451
29900
        	        FOLLOWPUSH(FOLLOW_formula_in_simpleTerm7984);
32452
29900
        	        formula(ctx, f);
32453
32454
29900
        	        FOLLOWPOP();
32455
29900
        	        if  (HASEXCEPTION())
32456
        	        {
32457
        	            goto rulesimpleTermEx;
32458
        	        }
32459
29900
        	        if (HASFAILED())
32460
        	        {
32461
        	            return ;
32462
        	        }
32463
32464
32465
29900
        	        if ( BACKTRACKING==0 )
32466
        	        {
32467
29900
        	             args.push_back(f);
32468
        	        }
32469
32470
32471
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2107:5: ( COMMA formula[f] )*
32472
32473
        	        for (;;)
32474
        	        {
32475
31610
        	            int alt108=2;
32476
31610
        	            switch ( LA(1) )
32477
        	            {
32478
1710
        	            case COMMA:
32479
        	            	{
32480
1710
        	            		alt108=1;
32481
        	            	}
32482
1710
        	                break;
32483
32484
        	            }
32485
32486
31610
        	            switch (alt108)
32487
        	            {
32488
1710
        	        	case 1:
32489
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2107:7: COMMA formula[f]
32490
        	        	    {
32491
1710
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_simpleTerm7995);
32492
1710
        	        	        if  (HASEXCEPTION())
32493
        	        	        {
32494
        	        	            goto rulesimpleTermEx;
32495
        	        	        }
32496
1710
        	        	        if (HASFAILED())
32497
        	        	        {
32498
        	        	            return ;
32499
        	        	        }
32500
32501
32502
1710
        	        	        FOLLOWPUSH(FOLLOW_formula_in_simpleTerm7997);
32503
1710
        	        	        formula(ctx, f);
32504
32505
1710
        	        	        FOLLOWPOP();
32506
1710
        	        	        if  (HASEXCEPTION())
32507
        	        	        {
32508
        	        	            goto rulesimpleTermEx;
32509
        	        	        }
32510
1710
        	        	        if (HASFAILED())
32511
        	        	        {
32512
        	        	            return ;
32513
        	        	        }
32514
32515
32516
1710
        	        	        if ( BACKTRACKING==0 )
32517
        	        	        {
32518
1710
        	        	             args.push_back(f);
32519
        	        	        }
32520
32521
32522
        	        	    }
32523
1710
        	        	    break;
32524
32525
29900
        	        	default:
32526
29900
        	        	    goto loop108;	/* break out of the loop */
32527
        	        	    break;
32528
        	            }
32529
1710
        	        }
32530
29900
        	        loop108: ; /* Jump out to here if this rule does not match */
32531
32532
32533
29900
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_simpleTerm8005);
32534
29900
        	        if  (HASEXCEPTION())
32535
        	        {
32536
        	            goto rulesimpleTermEx;
32537
        	        }
32538
29900
        	        if (HASFAILED())
32539
        	        {
32540
        	            return ;
32541
        	        }
32542
32543
32544
29900
        	        if ( BACKTRACKING==0 )
32545
        	        {
32546
29900
        	             if(args.size() > 1) {
32547
        	                    /* If args has elements, we must be a tuple literal.
32548
        	                     * Otherwise, f is already the sub-formula, and
32549
        	                     * there's nothing to do */
32550
3180
        	                    std::vector<api::Sort> types;
32551
4890
        	                    for (std::vector<api::Term>::const_iterator i = args.begin();
32552
4890
        	                         i != args.end();
32553
        	                         ++i)
32554
        	                    {
32555
3300
        	                      types.push_back((*i).getSort());
32556
        	                    }
32557
3180
        	                    api::Sort dtype = SOLVER->mkTupleSort(types);
32558
3180
        	                    const api::Datatype& dt = dtype.getDatatype();
32559
1590
        	                    args.insert(args.begin(), dt[0].getConstructorTerm());
32560
1590
        	                    f = MK_TERM(api::APPLY_CONSTRUCTOR, args);
32561
        	                  }
32562
32563
        	        }
32564
32565
32566
        	    }
32567
29900
        	    break;
32568
        	case 3:
32569
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2127:5: LPAREN RPAREN
32570
        	    {
32571
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_simpleTerm8024);
32572
        	        if  (HASEXCEPTION())
32573
        	        {
32574
        	            goto rulesimpleTermEx;
32575
        	        }
32576
        	        if (HASFAILED())
32577
        	        {
32578
        	            return ;
32579
        	        }
32580
32581
32582
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_simpleTerm8026);
32583
        	        if  (HASEXCEPTION())
32584
        	        {
32585
        	            goto rulesimpleTermEx;
32586
        	        }
32587
        	        if (HASFAILED())
32588
        	        {
32589
        	            return ;
32590
        	        }
32591
32592
32593
        	        if ( BACKTRACKING==0 )
32594
        	        {
32595
        	             std::vector<api::Sort> types;
32596
        	                  api::Sort dtype = SOLVER->mkTupleSort(types);
32597
        	                  const api::Datatype& dt = dtype.getDatatype();
32598
        	                  f = MK_TERM(api::APPLY_CONSTRUCTOR, dt[0].getConstructorTerm());
32599
32600
        	        }
32601
32602
32603
        	    }
32604
        	    break;
32605
        	case 4:
32606
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2135:5: PARENHASH HASHPAREN
32607
        	    {
32608
        	         MATCHT(PARENHASH, &FOLLOW_PARENHASH_in_simpleTerm8045);
32609
        	        if  (HASEXCEPTION())
32610
        	        {
32611
        	            goto rulesimpleTermEx;
32612
        	        }
32613
        	        if (HASFAILED())
32614
        	        {
32615
        	            return ;
32616
        	        }
32617
32618
32619
        	         MATCHT(HASHPAREN, &FOLLOW_HASHPAREN_in_simpleTerm8047);
32620
        	        if  (HASEXCEPTION())
32621
        	        {
32622
        	            goto rulesimpleTermEx;
32623
        	        }
32624
        	        if (HASFAILED())
32625
        	        {
32626
        	            return ;
32627
        	        }
32628
32629
32630
        	        if ( BACKTRACKING==0 )
32631
        	        {
32632
32633
        	                  api::Sort dtype = SOLVER->mkRecordSort(
32634
        	                      std::vector<std::pair<std::string, api::Sort>>());
32635
        	                  const api::Datatype& dt = dtype.getDatatype();
32636
        	                  f = MK_TERM(api::APPLY_CONSTRUCTOR, dt[0].getConstructorTerm());
32637
32638
        	        }
32639
32640
32641
        	    }
32642
        	    break;
32643
24
        	case 5:
32644
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2143:5: LBRACE RBRACE
32645
        	    {
32646
24
        	         MATCHT(LBRACE, &FOLLOW_LBRACE_in_simpleTerm8065);
32647
24
        	        if  (HASEXCEPTION())
32648
        	        {
32649
        	            goto rulesimpleTermEx;
32650
        	        }
32651
24
        	        if (HASFAILED())
32652
        	        {
32653
        	            return ;
32654
        	        }
32655
32656
32657
24
        	         MATCHT(RBRACE, &FOLLOW_RBRACE_in_simpleTerm8067);
32658
24
        	        if  (HASEXCEPTION())
32659
        	        {
32660
        	            goto rulesimpleTermEx;
32661
        	        }
32662
24
        	        if (HASFAILED())
32663
        	        {
32664
        	            return ;
32665
        	        }
32666
32667
32668
24
        	        if ( BACKTRACKING==0 )
32669
        	        {
32670
        	             //boolean is placeholder
32671
24
        	                  f = SOLVER->mkEmptySet(SOLVER->mkSetSort(SOLVER->getBooleanSort()));
32672
32673
        	        }
32674
32675
32676
        	    }
32677
24
        	    break;
32678
25
        	case 6:
32679
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2147:5: UNIVSET_TOK
32680
        	    {
32681
25
        	         MATCHT(UNIVSET_TOK, &FOLLOW_UNIVSET_TOK_in_simpleTerm8079);
32682
25
        	        if  (HASEXCEPTION())
32683
        	        {
32684
        	            goto rulesimpleTermEx;
32685
        	        }
32686
25
        	        if (HASFAILED())
32687
        	        {
32688
        	            return ;
32689
        	        }
32690
32691
32692
25
        	        if ( BACKTRACKING==0 )
32693
        	        {
32694
        	             //boolean is placeholder
32695
25
        	                  f = SOLVER->mkUniverseSet(SOLVER->mkSetSort(SOLVER->getBooleanSort()));
32696
32697
        	        }
32698
32699
32700
        	    }
32701
25
        	    break;
32702
181
        	case 7:
32703
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2153:5: LBRACE formula[f] ( COMMA formula[f] )* RBRACE
32704
        	    {
32705
181
        	         MATCHT(LBRACE, &FOLLOW_LBRACE_in_simpleTerm8098);
32706
181
        	        if  (HASEXCEPTION())
32707
        	        {
32708
        	            goto rulesimpleTermEx;
32709
        	        }
32710
181
        	        if (HASFAILED())
32711
        	        {
32712
        	            return ;
32713
        	        }
32714
32715
32716
181
        	        FOLLOWPUSH(FOLLOW_formula_in_simpleTerm8100);
32717
181
        	        formula(ctx, f);
32718
32719
181
        	        FOLLOWPOP();
32720
181
        	        if  (HASEXCEPTION())
32721
        	        {
32722
        	            goto rulesimpleTermEx;
32723
        	        }
32724
181
        	        if (HASFAILED())
32725
        	        {
32726
        	            return ;
32727
        	        }
32728
32729
32730
181
        	        if ( BACKTRACKING==0 )
32731
        	        {
32732
181
        	             args.push_back(f);
32733
        	        }
32734
32735
32736
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2154:5: ( COMMA formula[f] )*
32737
32738
        	        for (;;)
32739
        	        {
32740
257
        	            int alt109=2;
32741
257
        	            switch ( LA(1) )
32742
        	            {
32743
76
        	            case COMMA:
32744
        	            	{
32745
76
        	            		alt109=1;
32746
        	            	}
32747
76
        	                break;
32748
32749
        	            }
32750
32751
257
        	            switch (alt109)
32752
        	            {
32753
76
        	        	case 1:
32754
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2154:7: COMMA formula[f]
32755
        	        	    {
32756
76
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_simpleTerm8111);
32757
76
        	        	        if  (HASEXCEPTION())
32758
        	        	        {
32759
        	        	            goto rulesimpleTermEx;
32760
        	        	        }
32761
76
        	        	        if (HASFAILED())
32762
        	        	        {
32763
        	        	            return ;
32764
        	        	        }
32765
32766
32767
76
        	        	        FOLLOWPUSH(FOLLOW_formula_in_simpleTerm8113);
32768
76
        	        	        formula(ctx, f);
32769
32770
76
        	        	        FOLLOWPOP();
32771
76
        	        	        if  (HASEXCEPTION())
32772
        	        	        {
32773
        	        	            goto rulesimpleTermEx;
32774
        	        	        }
32775
76
        	        	        if (HASFAILED())
32776
        	        	        {
32777
        	        	            return ;
32778
        	        	        }
32779
32780
32781
76
        	        	        if ( BACKTRACKING==0 )
32782
        	        	        {
32783
76
        	        	             args.push_back(f);
32784
        	        	        }
32785
32786
32787
        	        	    }
32788
76
        	        	    break;
32789
32790
181
        	        	default:
32791
181
        	        	    goto loop109;	/* break out of the loop */
32792
        	        	    break;
32793
        	            }
32794
76
        	        }
32795
181
        	        loop109: ; /* Jump out to here if this rule does not match */
32796
32797
32798
181
        	         MATCHT(RBRACE, &FOLLOW_RBRACE_in_simpleTerm8121);
32799
181
        	        if  (HASEXCEPTION())
32800
        	        {
32801
        	            goto rulesimpleTermEx;
32802
        	        }
32803
181
        	        if (HASFAILED())
32804
        	        {
32805
        	            return ;
32806
        	        }
32807
32808
32809
181
        	        if ( BACKTRACKING==0 )
32810
        	        {
32811
181
        	             f = MK_TERM(api::SINGLETON, args[0]);
32812
257
        	                  for(size_t i = 1; i < args.size(); ++i) {
32813
76
        	                    f = MK_TERM(api::UNION, f, MK_TERM(api::SINGLETON, args[i]));
32814
        	                  }
32815
32816
        	        }
32817
32818
32819
        	    }
32820
181
        	    break;
32821
        	case 8:
32822
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2162:5: BAR BAR formula[f] BAR BAR
32823
        	    {
32824
        	         MATCHT(BAR, &FOLLOW_BAR_in_simpleTerm8140);
32825
        	        if  (HASEXCEPTION())
32826
        	        {
32827
        	            goto rulesimpleTermEx;
32828
        	        }
32829
        	        if (HASFAILED())
32830
        	        {
32831
        	            return ;
32832
        	        }
32833
32834
32835
        	         MATCHT(BAR, &FOLLOW_BAR_in_simpleTerm8142);
32836
        	        if  (HASEXCEPTION())
32837
        	        {
32838
        	            goto rulesimpleTermEx;
32839
        	        }
32840
        	        if (HASFAILED())
32841
        	        {
32842
        	            return ;
32843
        	        }
32844
32845
32846
        	        FOLLOWPUSH(FOLLOW_formula_in_simpleTerm8144);
32847
        	        formula(ctx, f);
32848
32849
        	        FOLLOWPOP();
32850
        	        if  (HASEXCEPTION())
32851
        	        {
32852
        	            goto rulesimpleTermEx;
32853
        	        }
32854
        	        if (HASFAILED())
32855
        	        {
32856
        	            return ;
32857
        	        }
32858
32859
32860
        	        if ( BACKTRACKING==0 )
32861
        	        {
32862
        	             args.push_back(f);
32863
        	        }
32864
32865
32866
        	         MATCHT(BAR, &FOLLOW_BAR_in_simpleTerm8149);
32867
        	        if  (HASEXCEPTION())
32868
        	        {
32869
        	            goto rulesimpleTermEx;
32870
        	        }
32871
        	        if (HASFAILED())
32872
        	        {
32873
        	            return ;
32874
        	        }
32875
32876
32877
        	         MATCHT(BAR, &FOLLOW_BAR_in_simpleTerm8151);
32878
        	        if  (HASEXCEPTION())
32879
        	        {
32880
        	            goto rulesimpleTermEx;
32881
        	        }
32882
        	        if (HASFAILED())
32883
        	        {
32884
        	            return ;
32885
        	        }
32886
32887
32888
        	        if ( BACKTRACKING==0 )
32889
        	        {
32890
        	             f = MK_TERM(api::CARD, args[0]);
32891
32892
        	        }
32893
32894
32895
        	    }
32896
        	    break;
32897
23
        	case 9:
32898
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2167:5: ARRAY_TOK LPAREN restrictedType[t, CHECK_DECLARED] OF_TOK restrictedType[t2, CHECK_DECLARED] RPAREN COLON simpleTerm[f]
32899
        	    {
32900
23
        	         MATCHT(ARRAY_TOK, &FOLLOW_ARRAY_TOK_in_simpleTerm8170);
32901
23
        	        if  (HASEXCEPTION())
32902
        	        {
32903
        	            goto rulesimpleTermEx;
32904
        	        }
32905
23
        	        if (HASFAILED())
32906
        	        {
32907
        	            return ;
32908
        	        }
32909
32910
32911
23
        	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_simpleTerm8172);
32912
23
        	        if  (HASEXCEPTION())
32913
        	        {
32914
        	            goto rulesimpleTermEx;
32915
        	        }
32916
23
        	        if (HASFAILED())
32917
        	        {
32918
        	            return ;
32919
        	        }
32920
32921
32922
23
        	        FOLLOWPUSH(FOLLOW_restrictedType_in_simpleTerm8178);
32923
23
        	        restrictedType(ctx, t, CHECK_DECLARED);
32924
32925
23
        	        FOLLOWPOP();
32926
23
        	        if  (HASEXCEPTION())
32927
        	        {
32928
        	            goto rulesimpleTermEx;
32929
        	        }
32930
23
        	        if (HASFAILED())
32931
        	        {
32932
        	            return ;
32933
        	        }
32934
32935
32936
23
        	         MATCHT(OF_TOK, &FOLLOW_OF_TOK_in_simpleTerm8181);
32937
23
        	        if  (HASEXCEPTION())
32938
        	        {
32939
        	            goto rulesimpleTermEx;
32940
        	        }
32941
23
        	        if (HASFAILED())
32942
        	        {
32943
        	            return ;
32944
        	        }
32945
32946
32947
23
        	        FOLLOWPUSH(FOLLOW_restrictedType_in_simpleTerm8183);
32948
23
        	        restrictedType(ctx, t2, CHECK_DECLARED);
32949
32950
23
        	        FOLLOWPOP();
32951
23
        	        if  (HASEXCEPTION())
32952
        	        {
32953
        	            goto rulesimpleTermEx;
32954
        	        }
32955
23
        	        if (HASFAILED())
32956
        	        {
32957
        	            return ;
32958
        	        }
32959
32960
32961
23
        	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_simpleTerm8190);
32962
23
        	        if  (HASEXCEPTION())
32963
        	        {
32964
        	            goto rulesimpleTermEx;
32965
        	        }
32966
23
        	        if (HASFAILED())
32967
        	        {
32968
        	            return ;
32969
        	        }
32970
32971
32972
23
        	         MATCHT(COLON, &FOLLOW_COLON_in_simpleTerm8192);
32973
23
        	        if  (HASEXCEPTION())
32974
        	        {
32975
        	            goto rulesimpleTermEx;
32976
        	        }
32977
23
        	        if (HASFAILED())
32978
        	        {
32979
        	            return ;
32980
        	        }
32981
32982
32983
23
        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_simpleTerm8194);
32984
23
        	        simpleTerm(ctx, f);
32985
32986
23
        	        FOLLOWPOP();
32987
23
        	        if  (HASEXCEPTION())
32988
        	        {
32989
        	            goto rulesimpleTermEx;
32990
        	        }
32991
23
        	        if (HASFAILED())
32992
        	        {
32993
        	            return ;
32994
        	        }
32995
32996
32997
23
        	        if ( BACKTRACKING==0 )
32998
        	        {
32999
23
        	             t = SOLVER->mkArraySort(t, t2);
33000
23
        	                  if(!t2.isComparableTo(f.getSort())) {
33001
        	                    std::stringstream ss;
33002
        	                    ss << "type mismatch inside array constant term:" << std::endl
33003
        	                       << "array type:          " << t << std::endl
33004
        	                       << "expected const type: " << t2 << std::endl
33005
        	                       << "computed const type: " << f.getSort();
33006
        	                    PARSER_STATE->parseError(ss.str());
33007
        	                  }
33008
23
        	                  f = SOLVER->mkConstArray(t, f);
33009
33010
        	        }
33011
33012
33013
        	    }
33014
23
        	    break;
33015
488
        	case 10:
33016
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2183:5: TRUE_TOK
33017
        	    {
33018
488
        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_simpleTerm8214);
33019
488
        	        if  (HASEXCEPTION())
33020
        	        {
33021
        	            goto rulesimpleTermEx;
33022
        	        }
33023
488
        	        if (HASFAILED())
33024
        	        {
33025
        	            return ;
33026
        	        }
33027
33028
33029
488
        	        if ( BACKTRACKING==0 )
33030
        	        {
33031
488
        	             f = SOLVER->mkTrue();
33032
        	        }
33033
33034
33035
        	    }
33036
488
        	    break;
33037
507
        	case 11:
33038
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2184:5: FALSE_TOK
33039
        	    {
33040
507
        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_simpleTerm8223);
33041
507
        	        if  (HASEXCEPTION())
33042
        	        {
33043
        	            goto rulesimpleTermEx;
33044
        	        }
33045
507
        	        if (HASFAILED())
33046
        	        {
33047
        	            return ;
33048
        	        }
33049
33050
33051
507
        	        if ( BACKTRACKING==0 )
33052
        	        {
33053
507
        	             f = SOLVER->mkFalse();
33054
        	        }
33055
33056
33057
        	    }
33058
507
        	    break;
33059
28
        	case 12:
33060
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2189:5: DECIMAL_LITERAL
33061
        	    {
33062
28
        	        DECIMAL_LITERAL17 = (pANTLR3_COMMON_TOKEN) MATCHT(DECIMAL_LITERAL, &FOLLOW_DECIMAL_LITERAL_in_simpleTerm8243);
33063
28
        	        if  (HASEXCEPTION())
33064
        	        {
33065
        	            goto rulesimpleTermEx;
33066
        	        }
33067
28
        	        if (HASFAILED())
33068
        	        {
33069
        	            return ;
33070
        	        }
33071
33072
33073
28
        	        if ( BACKTRACKING==0 )
33074
        	        {
33075
33076
28
        	                  f = SOLVER->mkReal(AntlrInput::tokenText(DECIMAL_LITERAL17));
33077
33078
        	        }
33079
33080
33081
        	    }
33082
28
        	    break;
33083
4489
        	case 13:
33084
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2192:5: INTEGER_LITERAL
33085
        	    {
33086
4489
        	        INTEGER_LITERAL18 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER_LITERAL, &FOLLOW_INTEGER_LITERAL_in_simpleTerm8251);
33087
4489
        	        if  (HASEXCEPTION())
33088
        	        {
33089
        	            goto rulesimpleTermEx;
33090
        	        }
33091
4489
        	        if (HASFAILED())
33092
        	        {
33093
        	            return ;
33094
        	        }
33095
33096
33097
4489
        	        if ( BACKTRACKING==0 )
33098
        	        {
33099
33100
4489
        	                  f = SOLVER->mkInteger(AntlrInput::tokenText(INTEGER_LITERAL18));
33101
33102
        	        }
33103
33104
33105
        	    }
33106
4489
        	    break;
33107
32
        	case 14:
33108
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2196:5: HEX_LITERAL
33109
        	    {
33110
32
        	        HEX_LITERAL19 = (pANTLR3_COMMON_TOKEN) MATCHT(HEX_LITERAL, &FOLLOW_HEX_LITERAL_in_simpleTerm8265);
33111
32
        	        if  (HASEXCEPTION())
33112
        	        {
33113
        	            goto rulesimpleTermEx;
33114
        	        }
33115
32
        	        if (HASFAILED())
33116
        	        {
33117
        	            return ;
33118
        	        }
33119
33120
33121
32
        	        if ( BACKTRACKING==0 )
33122
        	        {
33123
32
        	             Assert( AntlrInput::tokenText(HEX_LITERAL19).find("0hex") == 0 );
33124
64
        	                  std::string hexString = AntlrInput::tokenTextSubstr(HEX_LITERAL19, 4);
33125
32
        	                  f = SOLVER->mkBitVector(hexString.size() * 4, hexString, 16);
33126
33127
        	        }
33128
33129
33130
        	    }
33131
32
        	    break;
33132
269
        	case 15:
33133
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2201:5: BINARY_LITERAL
33134
        	    {
33135
269
        	        BINARY_LITERAL20 = (pANTLR3_COMMON_TOKEN) MATCHT(BINARY_LITERAL, &FOLLOW_BINARY_LITERAL_in_simpleTerm8277);
33136
269
        	        if  (HASEXCEPTION())
33137
        	        {
33138
        	            goto rulesimpleTermEx;
33139
        	        }
33140
269
        	        if (HASFAILED())
33141
        	        {
33142
        	            return ;
33143
        	        }
33144
33145
33146
269
        	        if ( BACKTRACKING==0 )
33147
        	        {
33148
269
        	             Assert( AntlrInput::tokenText(BINARY_LITERAL20).find("0bin") == 0 );
33149
538
        	                  std::string binString = AntlrInput::tokenTextSubstr(BINARY_LITERAL20, 4);
33150
269
        	                  f = SOLVER->mkBitVector(binString.size(), binString, 2);
33151
33152
        	        }
33153
33154
33155
        	    }
33156
269
        	    break;
33157
60
        	case 16:
33158
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2207:5: PARENHASH recordEntry[name,e] ( COMMA recordEntry[name,e] )* HASHPAREN
33159
        	    {
33160
60
        	         MATCHT(PARENHASH, &FOLLOW_PARENHASH_in_simpleTerm8295);
33161
60
        	        if  (HASEXCEPTION())
33162
        	        {
33163
        	            goto rulesimpleTermEx;
33164
        	        }
33165
60
        	        if (HASFAILED())
33166
        	        {
33167
        	            return ;
33168
        	        }
33169
33170
33171
60
        	        FOLLOWPUSH(FOLLOW_recordEntry_in_simpleTerm8297);
33172
60
        	        recordEntry(ctx, name, e);
33173
33174
60
        	        FOLLOWPOP();
33175
60
        	        if  (HASEXCEPTION())
33176
        	        {
33177
        	            goto rulesimpleTermEx;
33178
        	        }
33179
60
        	        if (HASFAILED())
33180
        	        {
33181
        	            return ;
33182
        	        }
33183
33184
33185
60
        	        if ( BACKTRACKING==0 )
33186
        	        {
33187
60
        	             names.push_back(name); args.push_back(e);
33188
        	        }
33189
33190
33191
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2208:5: ( COMMA recordEntry[name,e] )*
33192
33193
        	        for (;;)
33194
        	        {
33195
99
        	            int alt110=2;
33196
99
        	            switch ( LA(1) )
33197
        	            {
33198
39
        	            case COMMA:
33199
        	            	{
33200
39
        	            		alt110=1;
33201
        	            	}
33202
39
        	                break;
33203
33204
        	            }
33205
33206
99
        	            switch (alt110)
33207
        	            {
33208
39
        	        	case 1:
33209
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2208:7: COMMA recordEntry[name,e]
33210
        	        	    {
33211
39
        	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_simpleTerm8308);
33212
39
        	        	        if  (HASEXCEPTION())
33213
        	        	        {
33214
        	        	            goto rulesimpleTermEx;
33215
        	        	        }
33216
39
        	        	        if (HASFAILED())
33217
        	        	        {
33218
        	        	            return ;
33219
        	        	        }
33220
33221
33222
39
        	        	        FOLLOWPUSH(FOLLOW_recordEntry_in_simpleTerm8310);
33223
39
        	        	        recordEntry(ctx, name, e);
33224
33225
39
        	        	        FOLLOWPOP();
33226
39
        	        	        if  (HASEXCEPTION())
33227
        	        	        {
33228
        	        	            goto rulesimpleTermEx;
33229
        	        	        }
33230
39
        	        	        if (HASFAILED())
33231
        	        	        {
33232
        	        	            return ;
33233
        	        	        }
33234
33235
33236
39
        	        	        if ( BACKTRACKING==0 )
33237
        	        	        {
33238
39
        	        	             names.push_back(name); args.push_back(e);
33239
        	        	        }
33240
33241
33242
        	        	    }
33243
39
        	        	    break;
33244
33245
60
        	        	default:
33246
60
        	        	    goto loop110;	/* break out of the loop */
33247
        	        	    break;
33248
        	            }
33249
39
        	        }
33250
60
        	        loop110: ; /* Jump out to here if this rule does not match */
33251
33252
33253
60
        	         MATCHT(HASHPAREN, &FOLLOW_HASHPAREN_in_simpleTerm8318);
33254
60
        	        if  (HASEXCEPTION())
33255
        	        {
33256
        	            goto rulesimpleTermEx;
33257
        	        }
33258
60
        	        if (HASFAILED())
33259
        	        {
33260
        	            return ;
33261
        	        }
33262
33263
33264
60
        	        if ( BACKTRACKING==0 )
33265
        	        {
33266
120
        	             std::vector< std::pair<std::string, api::Sort> > typeIds;
33267
60
        	                  Assert(names.size() == args.size());
33268
159
        	                  for(unsigned i = 0; i < names.size(); ++i) {
33269
99
        	                    typeIds.push_back(std::make_pair(names[i], args[i].getSort()));
33270
        	                  }
33271
120
        	                  api::Sort dtype = SOLVER->mkRecordSort(typeIds);
33272
120
        	                  const api::Datatype& dt = dtype.getDatatype();
33273
60
        	                  args.insert(args.begin(), dt[0].getConstructorTerm());
33274
60
        	                  f = MK_TERM(api::APPLY_CONSTRUCTOR, args);
33275
33276
        	        }
33277
33278
33279
        	    }
33280
60
        	    break;
33281
43278
        	case 17:
33282
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2221:5: identifier[name,CHECK_DECLARED,SYM_VARIABLE]
33283
        	    {
33284
43278
        	        FOLLOWPUSH(FOLLOW_identifier_in_simpleTerm8337);
33285
43278
        	        identifier(ctx, name, CHECK_DECLARED, SYM_VARIABLE);
33286
33287
43278
        	        FOLLOWPOP();
33288
43278
        	        if  (HASEXCEPTION())
33289
        	        {
33290
        	            goto rulesimpleTermEx;
33291
        	        }
33292
43278
        	        if (HASFAILED())
33293
        	        {
33294
        	            return ;
33295
        	        }
33296
33297
33298
43278
        	        if ( BACKTRACKING==0 )
33299
        	        {
33300
43278
        	             f = PARSER_STATE->getVariable(name);
33301
        	                  // datatypes: zero-ary constructors
33302
86556
        	                  api::Sort dtype = f.getSort();
33303
43278
        	                  if(dtype.isConstructor() && dtype.getConstructorArity() == 0) {
33304
        	                    // don't require parentheses, immediately turn it into an apply
33305
498
        	                    f = MK_TERM(cvc5::api::APPLY_CONSTRUCTOR, f);
33306
        	                  }
33307
33308
        	        }
33309
33310
33311
        	    }
33312
43278
        	    break;
33313
33314
            }
33315
        }
33316
    }
33317
33318
    // This is where rules clean up and exit
33319
    //
33320
80298
    goto rulesimpleTermEx; /* Prevent compiler warnings */
33321
80298
    rulesimpleTermEx: ;
33322
33323
80298
            if (HASEXCEPTION())
33324
            {
33325
                PREPORTERROR();
33326
                PRECOVER();
33327
            }
33328
80298
    return ;
33329
}
33330
/* $ANTLR end simpleTerm */
33331
33332
/**
33333
 * $ANTLR start typeAscription
33334
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2237:1: typeAscription[const cvc5::api::Term& f, cvc5::api::Sort& t] : COLON COLON type[t,CHECK_DECLARED] ;
33335
 */
33336
static void
33337
63
typeAscription(pCvcParser ctx, const cvc5::api::Term& f, cvc5::api::Sort& t)
33338
{
33339
    /* Initialize rule variables
33340
     */
33341
33342
33343
33344
    {
33345
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2240:3: ( COLON COLON type[t,CHECK_DECLARED] )
33346
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2240:5: COLON COLON type[t,CHECK_DECLARED]
33347
        {
33348
63
             MATCHT(COLON, &FOLLOW_COLON_in_typeAscription8371);
33349
63
            if  (HASEXCEPTION())
33350
            {
33351
                goto ruletypeAscriptionEx;
33352
            }
33353
63
            if (HASFAILED())
33354
            {
33355
                return ;
33356
            }
33357
33358
33359
63
             MATCHT(COLON, &FOLLOW_COLON_in_typeAscription8373);
33360
63
            if  (HASEXCEPTION())
33361
            {
33362
                goto ruletypeAscriptionEx;
33363
            }
33364
63
            if (HASFAILED())
33365
            {
33366
                return ;
33367
            }
33368
33369
33370
63
            FOLLOWPUSH(FOLLOW_type_in_typeAscription8375);
33371
63
            type(ctx, t, CHECK_DECLARED);
33372
33373
63
            FOLLOWPOP();
33374
63
            if  (HASEXCEPTION())
33375
            {
33376
                goto ruletypeAscriptionEx;
33377
            }
33378
63
            if (HASFAILED())
33379
            {
33380
                return ;
33381
            }
33382
33383
33384
        }
33385
33386
    }
33387
33388
    // This is where rules clean up and exit
33389
    //
33390
63
    goto ruletypeAscriptionEx; /* Prevent compiler warnings */
33391
63
    ruletypeAscriptionEx: ;
33392
33393
63
            if (HASEXCEPTION())
33394
            {
33395
                PREPORTERROR();
33396
                PRECOVER();
33397
            }
33398
63
    return ;
33399
}
33400
/* $ANTLR end typeAscription */
33401
33402
/**
33403
 * $ANTLR start recordEntry
33404
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2246:1: recordEntry[std::string& name, cvc5::api::Term& ex] : identifier[name,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[ex] ;
33405
 */
33406
static void
33407
99
recordEntry(pCvcParser ctx, std::string& name, cvc5::api::Term& ex)
33408
{
33409
    /* Initialize rule variables
33410
     */
33411
33412
    {
33413
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2247:3: ( identifier[name,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[ex] )
33414
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2247:5: identifier[name,CHECK_NONE,SYM_VARIABLE] ASSIGN_TOK formula[ex]
33415
        {
33416
99
            FOLLOWPUSH(FOLLOW_identifier_in_recordEntry8392);
33417
99
            identifier(ctx, name, CHECK_NONE, SYM_VARIABLE);
33418
33419
99
            FOLLOWPOP();
33420
99
            if  (HASEXCEPTION())
33421
            {
33422
                goto rulerecordEntryEx;
33423
            }
33424
99
            if (HASFAILED())
33425
            {
33426
                return ;
33427
            }
33428
33429
33430
99
             MATCHT(ASSIGN_TOK, &FOLLOW_ASSIGN_TOK_in_recordEntry8395);
33431
99
            if  (HASEXCEPTION())
33432
            {
33433
                goto rulerecordEntryEx;
33434
            }
33435
99
            if (HASFAILED())
33436
            {
33437
                return ;
33438
            }
33439
33440
33441
99
            FOLLOWPUSH(FOLLOW_formula_in_recordEntry8397);
33442
99
            formula(ctx, ex);
33443
33444
99
            FOLLOWPOP();
33445
99
            if  (HASEXCEPTION())
33446
            {
33447
                goto rulerecordEntryEx;
33448
            }
33449
99
            if (HASFAILED())
33450
            {
33451
                return ;
33452
            }
33453
33454
33455
        }
33456
33457
    }
33458
33459
    // This is where rules clean up and exit
33460
    //
33461
99
    goto rulerecordEntryEx; /* Prevent compiler warnings */
33462
99
    rulerecordEntryEx: ;
33463
33464
99
            if (HASEXCEPTION())
33465
            {
33466
                PREPORTERROR();
33467
                PRECOVER();
33468
            }
33469
99
    return ;
33470
}
33471
/* $ANTLR end recordEntry */
33472
33473
/**
33474
 * $ANTLR start iteTerm
33475
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2253:1: iteTerm[cvc5::api::Term& f] : IF_TOK formula[f] THEN_TOK formula[f] iteElseTerm[f] ENDIF_TOK ;
33476
 */
33477
static void
33478
994
iteTerm(pCvcParser ctx, cvc5::api::Term& f)
33479
{
33480
    /* Initialize rule variables
33481
     */
33482
33483
33484
1988
      std::vector<api::Term> args;
33485
994
      Debug("parser-extra") << "ite: " << AntlrInput::tokenText(LT(1)) << std::endl;
33486
33487
    {
33488
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2258:3: ( IF_TOK formula[f] THEN_TOK formula[f] iteElseTerm[f] ENDIF_TOK )
33489
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2258:5: IF_TOK formula[f] THEN_TOK formula[f] iteElseTerm[f] ENDIF_TOK
33490
        {
33491
994
             MATCHT(IF_TOK, &FOLLOW_IF_TOK_in_iteTerm8419);
33492
994
            if  (HASEXCEPTION())
33493
            {
33494
                goto ruleiteTermEx;
33495
            }
33496
994
            if (HASFAILED())
33497
            {
33498
                return ;
33499
            }
33500
33501
33502
994
            FOLLOWPUSH(FOLLOW_formula_in_iteTerm8421);
33503
994
            formula(ctx, f);
33504
33505
994
            FOLLOWPOP();
33506
994
            if  (HASEXCEPTION())
33507
            {
33508
                goto ruleiteTermEx;
33509
            }
33510
994
            if (HASFAILED())
33511
            {
33512
                return ;
33513
            }
33514
33515
33516
994
            if ( BACKTRACKING==0 )
33517
            {
33518
994
                 args.push_back(f);
33519
            }
33520
33521
33522
994
             MATCHT(THEN_TOK, &FOLLOW_THEN_TOK_in_iteTerm8430);
33523
994
            if  (HASEXCEPTION())
33524
            {
33525
                goto ruleiteTermEx;
33526
            }
33527
994
            if (HASFAILED())
33528
            {
33529
                return ;
33530
            }
33531
33532
33533
994
            FOLLOWPUSH(FOLLOW_formula_in_iteTerm8432);
33534
994
            formula(ctx, f);
33535
33536
994
            FOLLOWPOP();
33537
994
            if  (HASEXCEPTION())
33538
            {
33539
                goto ruleiteTermEx;
33540
            }
33541
994
            if (HASFAILED())
33542
            {
33543
                return ;
33544
            }
33545
33546
33547
994
            if ( BACKTRACKING==0 )
33548
            {
33549
994
                 args.push_back(f);
33550
            }
33551
33552
33553
994
            FOLLOWPUSH(FOLLOW_iteElseTerm_in_iteTerm8441);
33554
994
            iteElseTerm(ctx, f);
33555
33556
994
            FOLLOWPOP();
33557
994
            if  (HASEXCEPTION())
33558
            {
33559
                goto ruleiteTermEx;
33560
            }
33561
994
            if (HASFAILED())
33562
            {
33563
                return ;
33564
            }
33565
33566
33567
994
            if ( BACKTRACKING==0 )
33568
            {
33569
994
                 args.push_back(f);
33570
            }
33571
33572
33573
994
             MATCHT(ENDIF_TOK, &FOLLOW_ENDIF_TOK_in_iteTerm8450);
33574
994
            if  (HASEXCEPTION())
33575
            {
33576
                goto ruleiteTermEx;
33577
            }
33578
994
            if (HASFAILED())
33579
            {
33580
                return ;
33581
            }
33582
33583
33584
994
            if ( BACKTRACKING==0 )
33585
            {
33586
994
                 f = MK_TERM(cvc5::api::ITE, args);
33587
            }
33588
33589
33590
        }
33591
33592
    }
33593
33594
    // This is where rules clean up and exit
33595
    //
33596
994
    goto ruleiteTermEx; /* Prevent compiler warnings */
33597
994
    ruleiteTermEx: ;
33598
33599
994
            if (HASEXCEPTION())
33600
            {
33601
                PREPORTERROR();
33602
                PRECOVER();
33603
            }
33604
994
    return ;
33605
}
33606
/* $ANTLR end iteTerm */
33607
33608
/**
33609
 * $ANTLR start iteElseTerm
33610
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2268:1: iteElseTerm[cvc5::api::Term& f] : ( ELSE_TOK formula[f] | ELSEIF_TOK iteCondition= formula[f] THEN_TOK iteThen= formula[f] iteElse= iteElseTerm[f] );
33611
 */
33612
static void
33613
994
iteElseTerm(pCvcParser ctx, cvc5::api::Term& f)
33614
{
33615
    /* Initialize rule variables
33616
     */
33617
33618
33619
1988
      std::vector<api::Term> args;
33620
994
      Debug("parser-extra") << "else: " << AntlrInput::tokenText(LT(1)) << std::endl;
33621
33622
    {
33623
        {
33624
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2273:3: ( ELSE_TOK formula[f] | ELSEIF_TOK iteCondition= formula[f] THEN_TOK iteThen= formula[f] iteElse= iteElseTerm[f] )
33625
33626
            ANTLR3_UINT32 alt112;
33627
33628
994
            alt112=2;
33629
33630
994
            switch ( LA(1) )
33631
            {
33632
994
            case ELSE_TOK:
33633
            	{
33634
994
            		alt112=1;
33635
            	}
33636
994
                break;
33637
            case ELSEIF_TOK:
33638
            	{
33639
            		alt112=2;
33640
            	}
33641
                break;
33642
33643
            default:
33644
                if (BACKTRACKING>0)
33645
                {
33646
                    FAILEDFLAG = ANTLR3_TRUE;
33647
                    return ;
33648
                }
33649
33650
                CONSTRUCTEX();
33651
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
33652
                EXCEPTION->message      = (void *)"";
33653
                EXCEPTION->decisionNum  = 112;
33654
                EXCEPTION->state        = 0;
33655
33656
33657
                goto ruleiteElseTermEx;
33658
33659
            }
33660
33661
994
            switch (alt112)
33662
            {
33663
994
        	case 1:
33664
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2273:5: ELSE_TOK formula[f]
33665
        	    {
33666
994
        	         MATCHT(ELSE_TOK, &FOLLOW_ELSE_TOK_in_iteElseTerm8477);
33667
994
        	        if  (HASEXCEPTION())
33668
        	        {
33669
        	            goto ruleiteElseTermEx;
33670
        	        }
33671
994
        	        if (HASFAILED())
33672
        	        {
33673
        	            return ;
33674
        	        }
33675
33676
33677
994
        	        FOLLOWPUSH(FOLLOW_formula_in_iteElseTerm8479);
33678
994
        	        formula(ctx, f);
33679
33680
994
        	        FOLLOWPOP();
33681
994
        	        if  (HASEXCEPTION())
33682
        	        {
33683
        	            goto ruleiteElseTermEx;
33684
        	        }
33685
994
        	        if (HASFAILED())
33686
        	        {
33687
        	            return ;
33688
        	        }
33689
33690
33691
        	    }
33692
994
        	    break;
33693
        	case 2:
33694
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2274:5: ELSEIF_TOK iteCondition= formula[f] THEN_TOK iteThen= formula[f] iteElse= iteElseTerm[f]
33695
        	    {
33696
        	         MATCHT(ELSEIF_TOK, &FOLLOW_ELSEIF_TOK_in_iteElseTerm8486);
33697
        	        if  (HASEXCEPTION())
33698
        	        {
33699
        	            goto ruleiteElseTermEx;
33700
        	        }
33701
        	        if (HASFAILED())
33702
        	        {
33703
        	            return ;
33704
        	        }
33705
33706
33707
        	        FOLLOWPUSH(FOLLOW_formula_in_iteElseTerm8492);
33708
        	        formula(ctx, f);
33709
33710
        	        FOLLOWPOP();
33711
        	        if  (HASEXCEPTION())
33712
        	        {
33713
        	            goto ruleiteElseTermEx;
33714
        	        }
33715
        	        if (HASFAILED())
33716
        	        {
33717
        	            return ;
33718
        	        }
33719
33720
33721
        	        if ( BACKTRACKING==0 )
33722
        	        {
33723
        	             args.push_back(f);
33724
        	        }
33725
33726
33727
        	         MATCHT(THEN_TOK, &FOLLOW_THEN_TOK_in_iteElseTerm8501);
33728
        	        if  (HASEXCEPTION())
33729
        	        {
33730
        	            goto ruleiteElseTermEx;
33731
        	        }
33732
        	        if (HASFAILED())
33733
        	        {
33734
        	            return ;
33735
        	        }
33736
33737
33738
        	        FOLLOWPUSH(FOLLOW_formula_in_iteElseTerm8507);
33739
        	        formula(ctx, f);
33740
33741
        	        FOLLOWPOP();
33742
        	        if  (HASEXCEPTION())
33743
        	        {
33744
        	            goto ruleiteElseTermEx;
33745
        	        }
33746
        	        if (HASFAILED())
33747
        	        {
33748
        	            return ;
33749
        	        }
33750
33751
33752
        	        if ( BACKTRACKING==0 )
33753
        	        {
33754
        	             args.push_back(f);
33755
        	        }
33756
33757
33758
        	        FOLLOWPUSH(FOLLOW_iteElseTerm_in_iteElseTerm8520);
33759
        	        iteElseTerm(ctx, f);
33760
33761
        	        FOLLOWPOP();
33762
        	        if  (HASEXCEPTION())
33763
        	        {
33764
        	            goto ruleiteElseTermEx;
33765
        	        }
33766
        	        if (HASFAILED())
33767
        	        {
33768
        	            return ;
33769
        	        }
33770
33771
33772
        	        if ( BACKTRACKING==0 )
33773
        	        {
33774
        	             args.push_back(f);
33775
        	        }
33776
33777
33778
        	        if ( BACKTRACKING==0 )
33779
        	        {
33780
        	             f = MK_TERM(cvc5::api::ITE, args);
33781
        	        }
33782
33783
33784
        	    }
33785
        	    break;
33786
33787
            }
33788
        }
33789
    }
33790
33791
    // This is where rules clean up and exit
33792
    //
33793
994
    goto ruleiteElseTermEx; /* Prevent compiler warnings */
33794
994
    ruleiteElseTermEx: ;
33795
33796
994
            if (HASEXCEPTION())
33797
            {
33798
                PREPORTERROR();
33799
                PRECOVER();
33800
            }
33801
994
    return ;
33802
}
33803
/* $ANTLR end iteElseTerm */
33804
33805
/**
33806
 * $ANTLR start datatypeDef
33807
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2283:1: datatypeDef[std::vector<cvc5::api::DatatypeDecl>& datatypes] : identifier[id,CHECK_NONE,SYM_SORT] ( LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )* RBRACKET )? EQUAL_TOK constructorDef[datatypes.back()] ( BAR constructorDef[datatypes.back()] )* ;
33808
 */
33809
static void
33810
214
datatypeDef(pCvcParser ctx, std::vector<cvc5::api::DatatypeDecl>& datatypes)
33811
{
33812
    /* Initialize rule variables
33813
     */
33814
33815
33816
428
      std::string id, id2;
33817
428
      api::Sort t;
33818
428
      std::vector< api::Sort > params;
33819
33820
    {
33821
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2293:3: ( identifier[id,CHECK_NONE,SYM_SORT] ( LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )* RBRACKET )? EQUAL_TOK constructorDef[datatypes.back()] ( BAR constructorDef[datatypes.back()] )* )
33822
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2293:5: identifier[id,CHECK_NONE,SYM_SORT] ( LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )* RBRACKET )? EQUAL_TOK constructorDef[datatypes.back()] ( BAR constructorDef[datatypes.back()] )*
33823
        {
33824
214
            FOLLOWPUSH(FOLLOW_identifier_in_datatypeDef8556);
33825
214
            identifier(ctx, id, CHECK_NONE, SYM_SORT);
33826
33827
214
            FOLLOWPOP();
33828
214
            if  (HASEXCEPTION())
33829
            {
33830
                goto ruledatatypeDefEx;
33831
            }
33832
214
            if (HASFAILED())
33833
            {
33834
                return ;
33835
            }
33836
33837
33838
214
            if ( BACKTRACKING==0 )
33839
            {
33840
214
                 PARSER_STATE->pushScope();
33841
            }
33842
33843
33844
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2294:5: ( LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )* RBRACKET )?
33845
            {
33846
214
                int alt114=2;
33847
214
                switch ( LA(1) )
33848
                {
33849
12
                    case LBRACKET:
33850
                    	{
33851
12
                    		alt114=1;
33852
                    	}
33853
12
                        break;
33854
                }
33855
33856
214
                switch (alt114)
33857
                {
33858
12
            	case 1:
33859
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2294:7: LBRACKET identifier[id2,CHECK_UNDECLARED,SYM_SORT] ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )* RBRACKET
33860
            	    {
33861
12
            	         MATCHT(LBRACKET, &FOLLOW_LBRACKET_in_datatypeDef8567);
33862
12
            	        if  (HASEXCEPTION())
33863
            	        {
33864
            	            goto ruledatatypeDefEx;
33865
            	        }
33866
12
            	        if (HASFAILED())
33867
            	        {
33868
            	            return ;
33869
            	        }
33870
33871
33872
12
            	        FOLLOWPUSH(FOLLOW_identifier_in_datatypeDef8569);
33873
12
            	        identifier(ctx, id2, CHECK_UNDECLARED, SYM_SORT);
33874
33875
12
            	        FOLLOWPOP();
33876
12
            	        if  (HASEXCEPTION())
33877
            	        {
33878
            	            goto ruledatatypeDefEx;
33879
            	        }
33880
12
            	        if (HASFAILED())
33881
            	        {
33882
            	            return ;
33883
            	        }
33884
33885
33886
12
            	        if ( BACKTRACKING==0 )
33887
            	        {
33888
33889
12
            	                    t = PARSER_STATE->mkSort(id2);
33890
12
            	                    params.push_back( t );
33891
33892
            	        }
33893
33894
33895
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2298:7: ( COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT] )*
33896
33897
            	        for (;;)
33898
            	        {
33899
16
            	            int alt113=2;
33900
16
            	            switch ( LA(1) )
33901
            	            {
33902
4
            	            case COMMA:
33903
            	            	{
33904
4
            	            		alt113=1;
33905
            	            	}
33906
4
            	                break;
33907
33908
            	            }
33909
33910
16
            	            switch (alt113)
33911
            	            {
33912
4
            	        	case 1:
33913
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2298:9: COMMA identifier[id2,CHECK_UNDECLARED,SYM_SORT]
33914
            	        	    {
33915
4
            	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_datatypeDef8582);
33916
4
            	        	        if  (HASEXCEPTION())
33917
            	        	        {
33918
            	        	            goto ruledatatypeDefEx;
33919
            	        	        }
33920
4
            	        	        if (HASFAILED())
33921
            	        	        {
33922
            	        	            return ;
33923
            	        	        }
33924
33925
33926
4
            	        	        FOLLOWPUSH(FOLLOW_identifier_in_datatypeDef8584);
33927
4
            	        	        identifier(ctx, id2, CHECK_UNDECLARED, SYM_SORT);
33928
33929
4
            	        	        FOLLOWPOP();
33930
4
            	        	        if  (HASEXCEPTION())
33931
            	        	        {
33932
            	        	            goto ruledatatypeDefEx;
33933
            	        	        }
33934
4
            	        	        if (HASFAILED())
33935
            	        	        {
33936
            	        	            return ;
33937
            	        	        }
33938
33939
33940
4
            	        	        if ( BACKTRACKING==0 )
33941
            	        	        {
33942
33943
4
            	        	                    t = PARSER_STATE->mkSort(id2);
33944
4
            	        	                    params.push_back( t );
33945
            	        	        }
33946
33947
33948
            	        	    }
33949
4
            	        	    break;
33950
33951
12
            	        	default:
33952
12
            	        	    goto loop113;	/* break out of the loop */
33953
            	        	    break;
33954
            	            }
33955
4
            	        }
33956
12
            	        loop113: ; /* Jump out to here if this rule does not match */
33957
33958
33959
12
            	         MATCHT(RBRACKET, &FOLLOW_RBRACKET_in_datatypeDef8598);
33960
12
            	        if  (HASEXCEPTION())
33961
            	        {
33962
            	            goto ruledatatypeDefEx;
33963
            	        }
33964
12
            	        if (HASFAILED())
33965
            	        {
33966
            	            return ;
33967
12
            	        }
33968
33969
33970
            	    }
33971
12
            	    break;
33972
33973
                }
33974
            }
33975
33976
214
            if ( BACKTRACKING==0 )
33977
            {
33978
33979
214
                      datatypes.push_back(SOLVER->mkDatatypeDecl(id, params, false));
33980
214
                      if(!PARSER_STATE->isUnresolvedType(id)) {
33981
                        // if not unresolved, must be undeclared
33982
216
                        PARSER_STATE->checkDeclaration(id, CHECK_UNDECLARED, SYM_SORT);
33983
                      }
33984
33985
            }
33986
33987
33988
212
             MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_datatypeDef8617);
33989
212
            if  (HASEXCEPTION())
33990
            {
33991
                goto ruledatatypeDefEx;
33992
            }
33993
212
            if (HASFAILED())
33994
            {
33995
                return ;
33996
            }
33997
33998
33999
212
            FOLLOWPUSH(FOLLOW_constructorDef_in_datatypeDef8619);
34000
212
            constructorDef(ctx, datatypes.back());
34001
34002
210
            FOLLOWPOP();
34003
210
            if  (HASEXCEPTION())
34004
            {
34005
                goto ruledatatypeDefEx;
34006
            }
34007
210
            if (HASFAILED())
34008
            {
34009
                return ;
34010
            }
34011
34012
34013
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2311:5: ( BAR constructorDef[datatypes.back()] )*
34014
34015
            for (;;)
34016
            {
34017
559
                int alt115=2;
34018
559
                switch ( LA(1) )
34019
                {
34020
349
                case BAR:
34021
                	{
34022
349
                		alt115=1;
34023
                	}
34024
349
                    break;
34025
34026
                }
34027
34028
559
                switch (alt115)
34029
                {
34030
349
            	case 1:
34031
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2311:7: BAR constructorDef[datatypes.back()]
34032
            	    {
34033
349
            	         MATCHT(BAR, &FOLLOW_BAR_in_datatypeDef8628);
34034
349
            	        if  (HASEXCEPTION())
34035
            	        {
34036
            	            goto ruledatatypeDefEx;
34037
            	        }
34038
349
            	        if (HASFAILED())
34039
            	        {
34040
            	            return ;
34041
            	        }
34042
34043
34044
349
            	        FOLLOWPUSH(FOLLOW_constructorDef_in_datatypeDef8630);
34045
349
            	        constructorDef(ctx, datatypes.back());
34046
34047
349
            	        FOLLOWPOP();
34048
349
            	        if  (HASEXCEPTION())
34049
            	        {
34050
            	            goto ruledatatypeDefEx;
34051
            	        }
34052
349
            	        if (HASFAILED())
34053
            	        {
34054
            	            return ;
34055
            	        }
34056
34057
34058
            	    }
34059
349
            	    break;
34060
34061
210
            	default:
34062
210
            	    goto loop115;	/* break out of the loop */
34063
            	    break;
34064
                }
34065
349
            }
34066
210
            loop115: ; /* Jump out to here if this rule does not match */
34067
34068
34069
210
            if ( BACKTRACKING==0 )
34070
            {
34071
210
                 PARSER_STATE->popScope();
34072
            }
34073
34074
34075
        }
34076
34077
    }
34078
34079
    // This is where rules clean up and exit
34080
    //
34081
210
    goto ruledatatypeDefEx; /* Prevent compiler warnings */
34082
210
    ruledatatypeDefEx: ;
34083
34084
210
            if (HASEXCEPTION())
34085
            {
34086
                PREPORTERROR();
34087
                PRECOVER();
34088
            }
34089
210
    return ;
34090
}
34091
/* $ANTLR end datatypeDef */
34092
34093
/**
34094
 * $ANTLR start constructorDef
34095
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2318:1: constructorDef[cvc5::api::DatatypeDecl& type] : identifier[id,CHECK_UNDECLARED,SYM_SORT] ( LPAREN selector[&ctor] ( COMMA selector[&ctor] )* RPAREN )? ;
34096
 */
34097
static void
34098
561
constructorDef(pCvcParser ctx, cvc5::api::DatatypeDecl& type)
34099
{
34100
    /* Initialize rule variables
34101
     */
34102
34103
34104
1122
      std::string id;
34105
1122
      std::unique_ptr<cvc5::api::DatatypeConstructorDecl> ctor;
34106
34107
    {
34108
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2323:3: ( identifier[id,CHECK_UNDECLARED,SYM_SORT] ( LPAREN selector[&ctor] ( COMMA selector[&ctor] )* RPAREN )? )
34109
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2323:5: identifier[id,CHECK_UNDECLARED,SYM_SORT] ( LPAREN selector[&ctor] ( COMMA selector[&ctor] )* RPAREN )?
34110
        {
34111
561
            FOLLOWPUSH(FOLLOW_identifier_in_constructorDef8661);
34112
561
            identifier(ctx, id, CHECK_UNDECLARED, SYM_SORT);
34113
34114
561
            FOLLOWPOP();
34115
561
            if  (HASEXCEPTION())
34116
            {
34117
                goto ruleconstructorDefEx;
34118
            }
34119
561
            if (HASFAILED())
34120
            {
34121
                return ;
34122
            }
34123
34124
34125
561
            if ( BACKTRACKING==0 )
34126
            {
34127
34128
561
                      ctor.reset(new cvc5::api::DatatypeConstructorDecl(
34129
561
                          SOLVER->mkDatatypeConstructorDecl(id)));
34130
34131
            }
34132
34133
34134
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2328:5: ( LPAREN selector[&ctor] ( COMMA selector[&ctor] )* RPAREN )?
34135
            {
34136
561
                int alt117=2;
34137
561
                switch ( LA(1) )
34138
                {
34139
189
                    case LPAREN:
34140
                    	{
34141
189
                    		alt117=1;
34142
                    	}
34143
189
                        break;
34144
                }
34145
34146
561
                switch (alt117)
34147
                {
34148
189
            	case 1:
34149
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2328:7: LPAREN selector[&ctor] ( COMMA selector[&ctor] )* RPAREN
34150
            	    {
34151
189
            	         MATCHT(LPAREN, &FOLLOW_LPAREN_in_constructorDef8676);
34152
189
            	        if  (HASEXCEPTION())
34153
            	        {
34154
            	            goto ruleconstructorDefEx;
34155
            	        }
34156
189
            	        if (HASFAILED())
34157
            	        {
34158
            	            return ;
34159
            	        }
34160
34161
34162
189
            	        FOLLOWPUSH(FOLLOW_selector_in_constructorDef8684);
34163
189
            	        selector(ctx, &ctor);
34164
34165
187
            	        FOLLOWPOP();
34166
187
            	        if  (HASEXCEPTION())
34167
            	        {
34168
            	            goto ruleconstructorDefEx;
34169
            	        }
34170
187
            	        if (HASFAILED())
34171
            	        {
34172
            	            return ;
34173
            	        }
34174
34175
34176
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2330:7: ( COMMA selector[&ctor] )*
34177
34178
            	        for (;;)
34179
            	        {
34180
257
            	            int alt116=2;
34181
257
            	            switch ( LA(1) )
34182
            	            {
34183
70
            	            case COMMA:
34184
            	            	{
34185
70
            	            		alt116=1;
34186
            	            	}
34187
70
            	                break;
34188
34189
            	            }
34190
34191
257
            	            switch (alt116)
34192
            	            {
34193
70
            	        	case 1:
34194
            	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2330:9: COMMA selector[&ctor]
34195
            	        	    {
34196
70
            	        	         MATCHT(COMMA, &FOLLOW_COMMA_in_constructorDef8695);
34197
70
            	        	        if  (HASEXCEPTION())
34198
            	        	        {
34199
            	        	            goto ruleconstructorDefEx;
34200
            	        	        }
34201
70
            	        	        if (HASFAILED())
34202
            	        	        {
34203
            	        	            return ;
34204
            	        	        }
34205
34206
34207
70
            	        	        FOLLOWPUSH(FOLLOW_selector_in_constructorDef8697);
34208
70
            	        	        selector(ctx, &ctor);
34209
34210
70
            	        	        FOLLOWPOP();
34211
70
            	        	        if  (HASEXCEPTION())
34212
            	        	        {
34213
            	        	            goto ruleconstructorDefEx;
34214
            	        	        }
34215
70
            	        	        if (HASFAILED())
34216
            	        	        {
34217
            	        	            return ;
34218
            	        	        }
34219
34220
34221
            	        	    }
34222
70
            	        	    break;
34223
34224
187
            	        	default:
34225
187
            	        	    goto loop116;	/* break out of the loop */
34226
            	        	    break;
34227
            	            }
34228
70
            	        }
34229
187
            	        loop116: ; /* Jump out to here if this rule does not match */
34230
34231
34232
187
            	         MATCHT(RPAREN, &FOLLOW_RPAREN_in_constructorDef8709);
34233
187
            	        if  (HASEXCEPTION())
34234
            	        {
34235
            	            goto ruleconstructorDefEx;
34236
            	        }
34237
187
            	        if (HASFAILED())
34238
            	        {
34239
            	            return ;
34240
187
            	        }
34241
34242
34243
            	    }
34244
187
            	    break;
34245
34246
                }
34247
            }
34248
34249
559
            if ( BACKTRACKING==0 )
34250
            {
34251
                 // make the constructor
34252
559
                      type.addConstructor(*ctor.get());
34253
559
                      Debug("parser-idt") << "constructor: " << id.c_str() << std::endl;
34254
34255
            }
34256
34257
34258
        }
34259
34260
    }
34261
34262
    // This is where rules clean up and exit
34263
    //
34264
559
    goto ruleconstructorDefEx; /* Prevent compiler warnings */
34265
559
    ruleconstructorDefEx: ;
34266
34267
559
            if (HASEXCEPTION())
34268
            {
34269
                PREPORTERROR();
34270
                PRECOVER();
34271
            }
34272
559
    return ;
34273
}
34274
/* $ANTLR end constructorDef */
34275
34276
/**
34277
 * $ANTLR start selector
34278
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2339:1: selector[std::unique_ptr<cvc5::api::DatatypeConstructorDecl>* ctor] : identifier[id,CHECK_UNDECLARED,SYM_SORT] COLON type[t,CHECK_NONE] ;
34279
 */
34280
static void
34281
259
selector(pCvcParser ctx, std::unique_ptr<cvc5::api::DatatypeConstructorDecl>* ctor)
34282
{
34283
    /* Initialize rule variables
34284
     */
34285
34286
34287
518
      std::string id;
34288
518
      api::Sort t, t2;
34289
34290
    {
34291
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2344:3: ( identifier[id,CHECK_UNDECLARED,SYM_SORT] COLON type[t,CHECK_NONE] )
34292
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2344:5: identifier[id,CHECK_UNDECLARED,SYM_SORT] COLON type[t,CHECK_NONE]
34293
        {
34294
259
            FOLLOWPUSH(FOLLOW_identifier_in_selector8741);
34295
259
            identifier(ctx, id, CHECK_UNDECLARED, SYM_SORT);
34296
34297
259
            FOLLOWPOP();
34298
259
            if  (HASEXCEPTION())
34299
            {
34300
                goto ruleselectorEx;
34301
            }
34302
259
            if (HASFAILED())
34303
            {
34304
                return ;
34305
            }
34306
34307
34308
259
             MATCHT(COLON, &FOLLOW_COLON_in_selector8744);
34309
259
            if  (HASEXCEPTION())
34310
            {
34311
                goto ruleselectorEx;
34312
            }
34313
259
            if (HASFAILED())
34314
            {
34315
                return ;
34316
            }
34317
34318
34319
259
            FOLLOWPUSH(FOLLOW_type_in_selector8746);
34320
259
            type(ctx, t, CHECK_NONE);
34321
34322
257
            FOLLOWPOP();
34323
257
            if  (HASEXCEPTION())
34324
            {
34325
                goto ruleselectorEx;
34326
            }
34327
257
            if (HASFAILED())
34328
            {
34329
                return ;
34330
            }
34331
34332
34333
257
            if ( BACKTRACKING==0 )
34334
            {
34335
34336
257
                      (*ctor)->addSelector(id, t);
34337
257
                      Debug("parser-idt") << "selector: " << id.c_str() << std::endl;
34338
34339
            }
34340
34341
34342
        }
34343
34344
    }
34345
34346
    // This is where rules clean up and exit
34347
    //
34348
257
    goto ruleselectorEx; /* Prevent compiler warnings */
34349
257
    ruleselectorEx: ;
34350
34351
257
            if (HASEXCEPTION())
34352
            {
34353
                PREPORTERROR();
34354
                PRECOVER();
34355
            }
34356
257
    return ;
34357
}
34358
/* $ANTLR end selector */
34359
34360
/**
34361
 * $ANTLR start numeral
34362
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2363:1: numeral returns [unsigned k = 0] : INTEGER_LITERAL ;
34363
 */
34364
static unsigned
34365
472
numeral(pCvcParser ctx)
34366
{
34367
    unsigned k;
34368
34369
34370
    pANTLR3_COMMON_TOKEN    INTEGER_LITERAL21;
34371
34372
    /* Initialize rule variables
34373
     */
34374
472
    k =  0;
34375
34376
34377
472
    INTEGER_LITERAL21       = NULL;
34378
34379
    {
34380
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2364:3: ( INTEGER_LITERAL )
34381
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2364:5: INTEGER_LITERAL
34382
        {
34383
472
            INTEGER_LITERAL21 = (pANTLR3_COMMON_TOKEN) MATCHT(INTEGER_LITERAL, &FOLLOW_INTEGER_LITERAL_in_numeral8821);
34384
472
            if  (HASEXCEPTION())
34385
            {
34386
                goto rulenumeralEx;
34387
            }
34388
472
            if (HASFAILED())
34389
            {
34390
                return k;
34391
            }
34392
34393
34394
472
            if ( BACKTRACKING==0 )
34395
            {
34396
472
                 k= AntlrInput::tokenToUnsigned(INTEGER_LITERAL21);
34397
34398
            }
34399
34400
34401
        }
34402
34403
    }
34404
34405
    // This is where rules clean up and exit
34406
    //
34407
472
    goto rulenumeralEx; /* Prevent compiler warnings */
34408
472
    rulenumeralEx: ;
34409
34410
472
            if (HASEXCEPTION())
34411
            {
34412
                PREPORTERROR();
34413
                PRECOVER();
34414
            }
34415
472
    return k;
34416
}
34417
/* $ANTLR end numeral */
34418
34419
/**
34420
 * $ANTLR start str
34421
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2371:1: str[std::string& s] : STRING_LITERAL ;
34422
 */
34423
static void
34424
640
str(pCvcParser ctx, std::string& s)
34425
{
34426
    pANTLR3_COMMON_TOKEN    STRING_LITERAL22;
34427
34428
    /* Initialize rule variables
34429
     */
34430
34431
640
    STRING_LITERAL22       = NULL;
34432
34433
    {
34434
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2372:3: ( STRING_LITERAL )
34435
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:2372:5: STRING_LITERAL
34436
        {
34437
640
            STRING_LITERAL22 = (pANTLR3_COMMON_TOKEN) MATCHT(STRING_LITERAL, &FOLLOW_STRING_LITERAL_in_str8843);
34438
640
            if  (HASEXCEPTION())
34439
            {
34440
                goto rulestrEx;
34441
            }
34442
640
            if (HASFAILED())
34443
            {
34444
                return ;
34445
            }
34446
34447
34448
640
            if ( BACKTRACKING==0 )
34449
            {
34450
640
                 s = AntlrInput::tokenText(STRING_LITERAL22);
34451
                      /* strip off the quotes */
34452
640
                      s = s.substr(1, s.size() - 2);
34453
34454
            }
34455
34456
34457
        }
34458
34459
    }
34460
34461
    // This is where rules clean up and exit
34462
    //
34463
640
    goto rulestrEx; /* Prevent compiler warnings */
34464
640
    rulestrEx: ;
34465
34466
640
            if (HASEXCEPTION())
34467
            {
34468
                PREPORTERROR();
34469
                PRECOVER();
34470
            }
34471
640
    return ;
34472
}
34473
/* $ANTLR end str */
34474
34475
// $ANTLR start synpred1_Cvc
34476
static void synpred1_Cvc_fragment(pCvcParser ctx )
34477
{
34478
    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:679:5: ( letDecl )
34479
    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-18/src/parser/cvc/Cvc.g:679:5: letDecl
34480
    {
34481
        FOLLOWPUSH(FOLLOW_letDecl_in_synpred1_Cvc2104);
34482
        letDecl(ctx);
34483
34484
        FOLLOWPOP();
34485
        if  (HASEXCEPTION())
34486
        {
34487
            goto rulesynpred1_CvcEx;
34488
        }
34489
        if (HASFAILED())
34490
        {
34491
            return ;
34492
        }
34493
34494
34495
    }
34496
34497
// This is where rules clean up and exit
34498
//
34499
goto rulesynpred1_CvcEx; /* Prevent compiler warnings */
34500
rulesynpred1_CvcEx: ;
34501
34502
}
34503
// $ANTLR end synpred1_Cvc
34504
/* End of parsing rules
34505
 * ==============================================
34506
 */
34507
34508
/* ==============================================
34509
 * Syntactic predicates
34510
 */
34511
static ANTLR3_BOOLEAN synpred1_Cvc(pCvcParser ctx)
34512
{
34513
    ANTLR3_MARKER   start;
34514
    ANTLR3_BOOLEAN  success;
34515
34516
    BACKTRACKING++;
34517
    start	= MARK();
34518
    synpred1_Cvc_fragment(ctx);	    // can never throw exception
34519
    success	= !(FAILEDFLAG);
34520
    REWIND(start);
34521
    BACKTRACKING--;
34522
    FAILEDFLAG	= ANTLR3_FALSE;
34523
    return success;
34524
29559
}
34525
34526
/* End of syntactic predicates
34527
 * ==============================================
34528
 */
34529
34530
34531
34532
34533
34534
34535
/* End of code
34536
 * =============================================================================
34537
 */