GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/parser/tptp/TptpParser.c Lines: 3075 4840 63.5 %
Date: 2021-09-16 Branches: 2041 4807 42.5 %

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-16/src/parser/tptp/Tptp.g
5
 *     -                            On : 2021-09-16 01:07:04
6
 *     -                for the parser : TptpParserParser
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    "TptpParser.h"
66
67
68
#include <algorithm>
69
#include <iterator>
70
#include <vector>
71
72
#include "api/cpp/cvc5.h"
73
#include "base/output.h"
74
#include "parser/antlr_input.h"
75
#include "parser/parser.h"
76
#include "parser/tptp/tptp.h"
77
78
using namespace cvc5;
79
using namespace cvc5::parser;
80
81
/* These need to be macros so they can refer to the PARSER macro, which will be defined
82
 * by ANTLR *after* this section. (If they were functions, PARSER would be undefined.) */
83
#undef PARSER_STATE
84
#define PARSER_STATE ((Tptp*)PARSER->super)
85
#undef SOLVER
86
#define SOLVER PARSER_STATE->getSolver()
87
#undef SYM_MAN
88
#define SYM_MAN PARSER_STATE->getSymbolManager()
89
#undef MK_TERM
90
#define MK_TERM SOLVER->mkTerm
91
#define UNSUPPORTED PARSER_STATE->unimplementedFeature
92
93
94
/* ----------------------------------------- */
95
96
97
98
99
100
/* MACROS that hide the C interface implementations from the
101
 * generated code, which makes it a little more understandable to the human eye.
102
 * I am very much against using C pre-processor macros for function calls and bits
103
 * of code as you cannot see what is happening when single stepping in debuggers
104
 * and so on. The exception (in my book at least) is for generated code, where you are
105
 * not maintaining it, but may wish to read and understand it. If you single step it, you know that input()
106
 * hides some indirect calls, but is always referring to the input stream. This is
107
 * probably more readable than ctx->input->istream->input(snarfle0->blarg) and allows me to rejig
108
 * the runtime interfaces without changing the generated code too often, without
109
 * confusing the reader of the generated output, who may not wish to know the gory
110
 * details of the interface inheritance.
111
 */
112
113
#define		CTX	ctx
114
115
/* Aids in accessing scopes for grammar programmers
116
 */
117
#undef	SCOPE_TYPE
118
#undef	SCOPE_STACK
119
#undef	SCOPE_TOP
120
#define	SCOPE_TYPE(scope)   pTptpParser_##scope##_SCOPE
121
#define SCOPE_STACK(scope)  pTptpParser_##scope##Stack
122
#define	SCOPE_TOP(scope)    ctx->pTptpParser_##scope##Top
123
#define	SCOPE_SIZE(scope)		ctx->pTptpParser_##scope##Stack_limit
124
#define SCOPE_INSTANCE(scope, i)	(ctx->SCOPE_STACK(scope)->get(ctx->SCOPE_STACK(scope),i))
125
126
/* Macros for accessing things in the parser
127
 */
128
129
#undef	    PARSER
130
#undef	    RECOGNIZER
131
#undef	    HAVEPARSEDRULE
132
#undef		MEMOIZE
133
#undef	    INPUT
134
#undef	    STRSTREAM
135
#undef	    HASEXCEPTION
136
#undef	    EXCEPTION
137
#undef	    MATCHT
138
#undef	    MATCHANYT
139
#undef	    FOLLOWSTACK
140
#undef	    FOLLOWPUSH
141
#undef	    FOLLOWPOP
142
#undef	    PRECOVER
143
#undef	    PREPORTERROR
144
#undef	    LA
145
#undef	    LT
146
#undef	    CONSTRUCTEX
147
#undef	    CONSUME
148
#undef	    MARK
149
#undef	    REWIND
150
#undef	    REWINDLAST
151
#undef	    PERRORRECOVERY
152
#undef	    HASFAILED
153
#undef	    FAILEDFLAG
154
#undef	    RECOVERFROMMISMATCHEDSET
155
#undef	    RECOVERFROMMISMATCHEDELEMENT
156
#undef		INDEX
157
#undef      ADAPTOR
158
#undef		SEEK
159
#undef	    RULEMEMO
160
#undef		DBG
161
162
#define	    PARSER				ctx->pParser
163
#define	    RECOGNIZER				PARSER->rec
164
#define	    PSRSTATE				RECOGNIZER->state
165
#define	    HAVEPARSEDRULE(r)			RECOGNIZER->alreadyParsedRule(RECOGNIZER, r)
166
#define	    MEMOIZE(ri,si)			RECOGNIZER->memoize(RECOGNIZER, ri, si)
167
#define	    INPUT				PARSER->tstream
168
#define	    STRSTREAM				INPUT
169
#define	    ISTREAM				INPUT->istream
170
#define	    INDEX()				ISTREAM->index(INPUT->istream)
171
#define	    HASEXCEPTION()			(PSRSTATE->error == ANTLR3_TRUE)
172
#define	    EXCEPTION				PSRSTATE->exception
173
#define	    MATCHT(t, fs)			RECOGNIZER->match(RECOGNIZER, t, fs)
174
#define	    MATCHANYT()				RECOGNIZER->matchAny(RECOGNIZER)
175
#define	    FOLLOWSTACK				PSRSTATE->following
176
#ifdef  SKIP_FOLLOW_SETS
177
#define	    FOLLOWPUSH(x)
178
#define	    FOLLOWPOP()
179
#else
180
#define	    FOLLOWPUSH(x)			FOLLOWSTACK->push(FOLLOWSTACK, ((void *)(&(x))), NULL)
181
#define	    FOLLOWPOP()				FOLLOWSTACK->pop(FOLLOWSTACK)
182
#endif
183
#define	    PRECOVER()				RECOGNIZER->recover(RECOGNIZER)
184
#define	    PREPORTERROR()			RECOGNIZER->reportError(RECOGNIZER)
185
#define	    LA(n)				INPUT->istream->_LA(ISTREAM, n)
186
#define	    LT(n)				INPUT->_LT(INPUT, n)
187
#define	    CONSTRUCTEX()			RECOGNIZER->exConstruct(RECOGNIZER)
188
#define	    CONSUME()				ISTREAM->consume(ISTREAM)
189
#define	    MARK()				ISTREAM->mark(ISTREAM)
190
#define	    REWIND(m)				ISTREAM->rewind(ISTREAM, m)
191
#define	    REWINDLAST()			ISTREAM->rewindLast(ISTREAM)
192
#define	    SEEK(n)				ISTREAM->seek(ISTREAM, n)
193
#define	    PERRORRECOVERY			PSRSTATE->errorRecovery
194
#define	    FAILEDFLAG				PSRSTATE->failed
195
#define	    HASFAILED()				(FAILEDFLAG == ANTLR3_TRUE)
196
#define	    BACKTRACKING			PSRSTATE->backtracking
197
#define	    RECOVERFROMMISMATCHEDSET(s)		RECOGNIZER->recoverFromMismatchedSet(RECOGNIZER, s)
198
#define	    RECOVERFROMMISMATCHEDELEMENT(e)	RECOGNIZER->recoverFromMismatchedElement(RECOGNIZER, s)
199
#define     ADAPTOR                         ctx->adaptor
200
#define		RULEMEMO						PSRSTATE->ruleMemo
201
#define		DBG								RECOGNIZER->debugger
202
203
204
#define		TOKTEXT(tok, txt)				tok, (pANTLR3_UINT8)txt
205
206
/* The 4 tokens defined below may well clash with your own #defines or token types. If so
207
 * then for the present you must use different names for your defines as these are hard coded
208
 * in the code generator. It would be better not to use such names internally, and maybe
209
 * we can change this in a forthcoming release. I deliberately do not #undef these
210
 * here as this will at least give you a redefined error somewhere if they clash.
211
 */
212
#define	    UP	    ANTLR3_TOKEN_UP
213
#define	    DOWN    ANTLR3_TOKEN_DOWN
214
#define	    EOR	    ANTLR3_TOKEN_EOR
215
#define	    INVALID ANTLR3_TOKEN_INVALID
216
217
218
/* =============================================================================
219
 * Functions to create and destroy scopes. First come the rule scopes, followed
220
 * by the global declared scopes.
221
 */
222
223
224
225
/* ============================================================================= */
226
227
/* =============================================================================
228
 * Start of recognizer
229
 */
230
231
232
/** \brief Table of all token names in symbolic order, mainly used for
233
 *         error reporting.
234
 */
235
pANTLR3_UINT8   TptpParserTokenNames[91+4]
236
     = {
237
        (pANTLR3_UINT8) "<invalid>",       /* String to print to indicate an invalid token */
238
        (pANTLR3_UINT8) "<EOR>",
239
        (pANTLR3_UINT8) "<DOWN>",
240
        (pANTLR3_UINT8) "<UP>",
241
        (pANTLR3_UINT8) "ALPHA_NUMERIC",
242
        (pANTLR3_UINT8) "AND_TOK",
243
        (pANTLR3_UINT8) "APP_TOK",
244
        (pANTLR3_UINT8) "ARROW_TOK",
245
        (pANTLR3_UINT8) "CHOICE_TOK",
246
        (pANTLR3_UINT8) "CNF_TOK",
247
        (pANTLR3_UINT8) "COLON_TOK",
248
        (pANTLR3_UINT8) "COMMA_TOK",
249
        (pANTLR3_UINT8) "COMMENT",
250
        (pANTLR3_UINT8) "DECIMAL",
251
        (pANTLR3_UINT8) "DEFINED_SYMBOL",
252
        (pANTLR3_UINT8) "DEF_DESC_TOK",
253
        (pANTLR3_UINT8) "DISEQUAL_TOK",
254
        (pANTLR3_UINT8) "DISTINCT_OBJECT",
255
        (pANTLR3_UINT8) "DOT",
256
        (pANTLR3_UINT8) "DOT_TOK",
257
        (pANTLR3_UINT8) "DO_CHAR",
258
        (pANTLR3_UINT8) "EQUAL_TOK",
259
        (pANTLR3_UINT8) "EXISTS_TOK",
260
        (pANTLR3_UINT8) "EXPONENT",
261
        (pANTLR3_UINT8) "FALSE_TOK",
262
        (pANTLR3_UINT8) "FOF_TOK",
263
        (pANTLR3_UINT8) "FORALL_TOK",
264
        (pANTLR3_UINT8) "IFF_TOK",
265
        (pANTLR3_UINT8) "IMPLIES_TOK",
266
        (pANTLR3_UINT8) "INCLUDE_TOK",
267
        (pANTLR3_UINT8) "LAMBDA_TOK",
268
        (pANTLR3_UINT8) "LBRACK_TOK",
269
        (pANTLR3_UINT8) "LOWER_ALPHA",
270
        (pANTLR3_UINT8) "LOWER_WORD",
271
        (pANTLR3_UINT8) "LOWER_WORD_SINGLE_QUOTED",
272
        (pANTLR3_UINT8) "LPAREN_TOK",
273
        (pANTLR3_UINT8) "MINUS_TOK",
274
        (pANTLR3_UINT8) "NOT_TOK",
275
        (pANTLR3_UINT8) "NUMBER",
276
        (pANTLR3_UINT8) "NUMERIC",
277
        (pANTLR3_UINT8) "OR_TOK",
278
        (pANTLR3_UINT8) "PLUS_TOK",
279
        (pANTLR3_UINT8) "RBRACK_TOK",
280
        (pANTLR3_UINT8) "REVAND_TOK",
281
        (pANTLR3_UINT8) "REVIFF_TOK",
282
        (pANTLR3_UINT8) "REVIMPLIES_TOK",
283
        (pANTLR3_UINT8) "REVOR_TOK",
284
        (pANTLR3_UINT8) "RPAREN_TOK",
285
        (pANTLR3_UINT8) "SIGN",
286
        (pANTLR3_UINT8) "SINGLE_QUOTED",
287
        (pANTLR3_UINT8) "SLASH",
288
        (pANTLR3_UINT8) "SQ_CHAR",
289
        (pANTLR3_UINT8) "SUBTYPE_TOK",
290
        (pANTLR3_UINT8) "TFF_TOK",
291
        (pANTLR3_UINT8) "TH1_UN_A",
292
        (pANTLR3_UINT8) "TH1_UN_E",
293
        (pANTLR3_UINT8) "THF_TOK",
294
        (pANTLR3_UINT8) "TIMES_TOK",
295
        (pANTLR3_UINT8) "TRUE_TOK",
296
        (pANTLR3_UINT8) "TYPE_TOK",
297
        (pANTLR3_UINT8) "UPPER_ALPHA",
298
        (pANTLR3_UINT8) "UPPER_WORD",
299
        (pANTLR3_UINT8) "WHITESPACE",
300
        (pANTLR3_UINT8) "'$ceiling'",
301
        (pANTLR3_UINT8) "'$difference'",
302
        (pANTLR3_UINT8) "'$distinct'",
303
        (pANTLR3_UINT8) "'$floor'",
304
        (pANTLR3_UINT8) "'$greater'",
305
        (pANTLR3_UINT8) "'$greatereq'",
306
        (pANTLR3_UINT8) "'$is_int'",
307
        (pANTLR3_UINT8) "'$is_rat'",
308
        (pANTLR3_UINT8) "'$ite_f'",
309
        (pANTLR3_UINT8) "'$ite_t'",
310
        (pANTLR3_UINT8) "'$less'",
311
        (pANTLR3_UINT8) "'$lesseq'",
312
        (pANTLR3_UINT8) "'$let_ff'",
313
        (pANTLR3_UINT8) "'$let_ft'",
314
        (pANTLR3_UINT8) "'$let_tf'",
315
        (pANTLR3_UINT8) "'$let_tt'",
316
        (pANTLR3_UINT8) "'$product'",
317
        (pANTLR3_UINT8) "'$quotient'",
318
        (pANTLR3_UINT8) "'$quotient_e'",
319
        (pANTLR3_UINT8) "'$quotient_f'",
320
        (pANTLR3_UINT8) "'$quotient_t'",
321
        (pANTLR3_UINT8) "'$remainder_e'",
322
        (pANTLR3_UINT8) "'$remainder_f'",
323
        (pANTLR3_UINT8) "'$remainder_t'",
324
        (pANTLR3_UINT8) "'$round'",
325
        (pANTLR3_UINT8) "'$sum'",
326
        (pANTLR3_UINT8) "'$tType'",
327
        (pANTLR3_UINT8) "'$to_int'",
328
        (pANTLR3_UINT8) "'$to_rat'",
329
        (pANTLR3_UINT8) "'$to_real'",
330
        (pANTLR3_UINT8) "'$truncate'",
331
        (pANTLR3_UINT8) "'$uminus'"
332
       };
333
334
335
336
// Forward declare the locally static matching functions we have generated.
337
//
338
static
339
 cvc5::parser::tptp::myExpr
340
	parseExpr    (pTptpParser ctx);
341
static
342
 cvc5::Command*
343
	parseCommand    (pTptpParser ctx);
344
static
345
 void
346
	formulaRole    (pTptpParser ctx, cvc5::parser::Tptp::FormulaRole& role);
347
static
348
 void
349
	cnfFormula    (pTptpParser ctx, cvc5::api::Term& expr);
350
static
351
 void
352
	cnfDisjunction    (pTptpParser ctx, cvc5::api::Term& expr);
353
static
354
 void
355
	cnfLiteral    (pTptpParser ctx, cvc5::api::Term& expr);
356
static
357
 void
358
	atomicFormula    (pTptpParser ctx, cvc5::api::Term& expr);
359
static
360
 void
361
	thfAtomicFormula    (pTptpParser ctx, cvc5::ParseOp& p);
362
static
363
 void
364
	definedProp    (pTptpParser ctx, cvc5::api::Term& expr);
365
static
366
 void
367
	definedPred    (pTptpParser ctx, cvc5::ParseOp& p);
368
static
369
 void
370
	thfDefinedPred    (pTptpParser ctx, cvc5::ParseOp& p);
371
static
372
 void
373
	definedFun    (pTptpParser ctx, cvc5::ParseOp& p);
374
static
375
 void
376
	equalOp    (pTptpParser ctx, bool& equal);
377
static
378
 void
379
	term    (pTptpParser ctx, cvc5::api::Term& expr);
380
static
381
 void
382
	letTerm    (pTptpParser ctx, cvc5::api::Term& expr);
383
static
384
 void
385
	simpleTerm    (pTptpParser ctx, cvc5::api::Term& expr);
386
static
387
 void
388
	thfSimpleTerm    (pTptpParser ctx, cvc5::api::Term& expr);
389
static
390
 void
391
	functionTerm    (pTptpParser ctx, cvc5::api::Term& expr);
392
static
393
 void
394
	conditionalTerm    (pTptpParser ctx, cvc5::api::Term& expr);
395
static
396
 void
397
	plainTerm    (pTptpParser ctx, cvc5::api::Term& expr);
398
static
399
 void
400
	arguments    (pTptpParser ctx, std::vector<cvc5::api::Term>& args);
401
static
402
 void
403
	variable    (pTptpParser ctx, cvc5::api::Term& expr);
404
static
405
 void
406
	fofFormula    (pTptpParser ctx, cvc5::api::Term& expr);
407
static
408
 void
409
	fofLogicFormula    (pTptpParser ctx, cvc5::api::Term& expr);
410
static
411
 void
412
	fofUnitaryFormula    (pTptpParser ctx, cvc5::api::Term& expr);
413
static
414
 void
415
	bindvariable    (pTptpParser ctx, cvc5::api::Term& expr);
416
static
417
 void
418
	fofBinaryNonAssoc    (pTptpParser ctx, cvc5::parser::tptp::NonAssoc& na);
419
static
420
 void
421
	folQuantifier    (pTptpParser ctx, cvc5::api::Kind& kind);
422
static
423
 void
424
	thfQuantifier    (pTptpParser ctx, cvc5::api::Kind& kind);
425
static
426
 void
427
	thfAtomTyping    (pTptpParser ctx, cvc5::Command*& cmd);
428
static
429
 void
430
	thfLogicFormula    (pTptpParser ctx, cvc5::ParseOp& p);
431
static
432
 void
433
	thfTupleForm    (pTptpParser ctx, std::vector<cvc5::api::Term>& args);
434
static
435
 void
436
	thfUnitaryFormula    (pTptpParser ctx, cvc5::ParseOp& p);
437
static
438
 void
439
	tffFormula    (pTptpParser ctx, cvc5::api::Term& expr);
440
static
441
 void
442
	tffTypedAtom    (pTptpParser ctx, cvc5::Command*& cmd);
443
static
444
 void
445
	tffLogicFormula    (pTptpParser ctx, cvc5::api::Term& expr);
446
static
447
 void
448
	tffUnitaryFormula    (pTptpParser ctx, cvc5::api::Term& expr);
449
static
450
 void
451
	tffLetTermDefn    (pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs);
452
static
453
 void
454
	tffLetTermBinding    (pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs);
455
static
456
 void
457
	tffLetFormulaDefn    (pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs);
458
static
459
 void
460
	tffLetFormulaBinding    (pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs);
461
static
462
 void
463
	thfBindVariable    (pTptpParser ctx, cvc5::api::Term& expr);
464
static
465
 void
466
	tffbindvariable    (pTptpParser ctx, cvc5::api::Term& expr);
467
static
468
 void
469
	tffVariableList    (pTptpParser ctx, std::vector<cvc5::api::Term>& bvlist);
470
static
471
 void
472
	parseThfType    (pTptpParser ctx, cvc5::api::Sort& type);
473
static
474
 void
475
	thfType    (pTptpParser ctx, cvc5::api::Sort& type);
476
static
477
 void
478
	parseType    (pTptpParser ctx, cvc5::api::Sort & type);
479
static
480
 void
481
	simpleType    (pTptpParser ctx, cvc5::api::Sort& type);
482
static
483
 void
484
	anything    (pTptpParser ctx);
485
static
486
 void
487
	unquotedFileName    (pTptpParser ctx, std::string& name);
488
static
489
 void
490
	nameN    (pTptpParser ctx, std::string& name);
491
static
492
 void
493
	atomicWord    (pTptpParser ctx, std::string& name);
494
static void	TptpParserFree(pTptpParser ctx);
495
static void     TptpParserReset (pTptpParser ctx);
496
497
/* For use in tree output where we are accumulating rule labels via label += ruleRef
498
 * we need a function that knows how to free a return scope when the list is destroyed.
499
 * We cannot just use ANTLR3_FREE because in debug tracking mode, this is a macro.
500
 */
501
static	void ANTLR3_CDECL freeScope(void * scope)
502
{
503
    ANTLR3_FREE(scope);
504
}
505
506
/** \brief Name of the grammar file that generated this code
507
 */
508
static const char fileName[] = "/barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g";
509
510
/** \brief Return the name of the grammar file that generated this code.
511
 */
512
static const char * getGrammarFileName()
513
{
514
	return fileName;
515
}
516
/** \brief Create a new TptpParser parser and return a context for it.
517
 *
518
 * \param[in] instream Pointer to an input stream interface.
519
 *
520
 * \return Pointer to new parser context upon success.
521
 */
522
ANTLR3_API pTptpParser
523
41
TptpParserNew   (pANTLR3_COMMON_TOKEN_STREAM instream)
524
{
525
	// See if we can create a new parser with the standard constructor
526
	//
527
41
	return TptpParserNewSSD(instream, NULL);
528
}
529
530
/** \brief Create a new TptpParser parser and return a context for it.
531
 *
532
 * \param[in] instream Pointer to an input stream interface.
533
 *
534
 * \return Pointer to new parser context upon success.
535
 */
536
ANTLR3_API pTptpParser
537
41
TptpParserNewSSD   (pANTLR3_COMMON_TOKEN_STREAM instream, pANTLR3_RECOGNIZER_SHARED_STATE state)
538
{
539
    pTptpParser ctx;	    /* Context structure we will build and return   */
540
541
41
    ctx	= (pTptpParser) ANTLR3_CALLOC(1, sizeof(TptpParser));
542
543
41
    if	(ctx == NULL)
544
    {
545
		// Failed to allocate memory for parser context
546
		//
547
        return  NULL;
548
    }
549
550
    /* -------------------------------------------------------------------
551
     * Memory for basic structure is allocated, now to fill in
552
     * the base ANTLR3 structures. We initialize the function pointers
553
     * for the standard ANTLR3 parser function set, but upon return
554
     * from here, the programmer may set the pointers to provide custom
555
     * implementations of each function.
556
     *
557
     * We don't use the macros defined in TptpParser.h here, in order that you can get a sense
558
     * of what goes where.
559
     */
560
561
    /* Create a base parser/recognizer, using the supplied token stream
562
     */
563
41
    ctx->pParser	    = antlr3ParserNewStream(ANTLR3_SIZE_HINT, instream->tstream, state);
564
    /* Install the implementation of our TptpParser interface
565
     */
566
41
    ctx->parseExpr	= parseExpr;
567
41
    ctx->parseCommand	= parseCommand;
568
41
    ctx->formulaRole	= formulaRole;
569
41
    ctx->cnfFormula	= cnfFormula;
570
41
    ctx->cnfDisjunction	= cnfDisjunction;
571
41
    ctx->cnfLiteral	= cnfLiteral;
572
41
    ctx->atomicFormula	= atomicFormula;
573
41
    ctx->thfAtomicFormula	= thfAtomicFormula;
574
41
    ctx->definedProp	= definedProp;
575
41
    ctx->definedPred	= definedPred;
576
41
    ctx->thfDefinedPred	= thfDefinedPred;
577
41
    ctx->definedFun	= definedFun;
578
41
    ctx->equalOp	= equalOp;
579
41
    ctx->term	= term;
580
41
    ctx->letTerm	= letTerm;
581
41
    ctx->simpleTerm	= simpleTerm;
582
41
    ctx->thfSimpleTerm	= thfSimpleTerm;
583
41
    ctx->functionTerm	= functionTerm;
584
41
    ctx->conditionalTerm	= conditionalTerm;
585
41
    ctx->plainTerm	= plainTerm;
586
41
    ctx->arguments	= arguments;
587
41
    ctx->variable	= variable;
588
41
    ctx->fofFormula	= fofFormula;
589
41
    ctx->fofLogicFormula	= fofLogicFormula;
590
41
    ctx->fofUnitaryFormula	= fofUnitaryFormula;
591
41
    ctx->bindvariable	= bindvariable;
592
41
    ctx->fofBinaryNonAssoc	= fofBinaryNonAssoc;
593
41
    ctx->folQuantifier	= folQuantifier;
594
41
    ctx->thfQuantifier	= thfQuantifier;
595
41
    ctx->thfAtomTyping	= thfAtomTyping;
596
41
    ctx->thfLogicFormula	= thfLogicFormula;
597
41
    ctx->thfTupleForm	= thfTupleForm;
598
41
    ctx->thfUnitaryFormula	= thfUnitaryFormula;
599
41
    ctx->tffFormula	= tffFormula;
600
41
    ctx->tffTypedAtom	= tffTypedAtom;
601
41
    ctx->tffLogicFormula	= tffLogicFormula;
602
41
    ctx->tffUnitaryFormula	= tffUnitaryFormula;
603
41
    ctx->tffLetTermDefn	= tffLetTermDefn;
604
41
    ctx->tffLetTermBinding	= tffLetTermBinding;
605
41
    ctx->tffLetFormulaDefn	= tffLetFormulaDefn;
606
41
    ctx->tffLetFormulaBinding	= tffLetFormulaBinding;
607
41
    ctx->thfBindVariable	= thfBindVariable;
608
41
    ctx->tffbindvariable	= tffbindvariable;
609
41
    ctx->tffVariableList	= tffVariableList;
610
41
    ctx->parseThfType	= parseThfType;
611
41
    ctx->thfType	= thfType;
612
41
    ctx->parseType	= parseType;
613
41
    ctx->simpleType	= simpleType;
614
41
    ctx->anything	= anything;
615
41
    ctx->unquotedFileName	= unquotedFileName;
616
41
    ctx->nameN	= nameN;
617
41
    ctx->atomicWord	= atomicWord;
618
41
    ctx->free			= TptpParserFree;
619
41
    ctx->reset			= TptpParserReset;
620
41
    ctx->getGrammarFileName	= getGrammarFileName;
621
622
    /* Install the scope pushing methods.
623
     */
624
625
    /* Install the token table
626
     */
627
41
    PSRSTATE->tokenNames   = TptpParserTokenNames;
628
629
630
    /* Return the newly built parser to the caller
631
     */
632
41
    return  ctx;
633
}
634
635
static void
636
TptpParserReset (pTptpParser ctx)
637
{
638
    RECOGNIZER->reset(RECOGNIZER);
639
}
640
641
/** Free the parser resources
642
 */
643
 static void
644
41
 TptpParserFree(pTptpParser ctx)
645
 {
646
    /* Free any scope memory
647
     */
648
649
	// Free this parser
650
	//
651
41
    ctx->pParser->free(ctx->pParser);
652
653
654
41
    ANTLR3_FREE(ctx);
655
656
    /* Everything is released, so we can return
657
     */
658
41
    return;
659
 }
660
661
/** Return token names used by this
662
parser
663
664
 *
665
 * The returned pointer is used as an index into the token names table (using the token
666
 * number as the index).
667
 *
668
 * \return Pointer to first char * in the table.
669
 */
670
static pANTLR3_UINT8    *getTokenNames()
671
{
672
        return TptpParserTokenNames;
673
}
674
675
676
/* Declare the bitsets
677
 */
678
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfFormula_in_parseExpr112  */
679
static	ANTLR3_BITWORD FOLLOW_cnfFormula_in_parseExpr112_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
680
static  ANTLR3_BITSET_LIST FOLLOW_cnfFormula_in_parseExpr112	= { FOLLOW_cnfFormula_in_parseExpr112_bits, 1	};
681
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EOF_in_parseExpr119  */
682
static	ANTLR3_BITWORD FOLLOW_EOF_in_parseExpr119_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
683
static  ANTLR3_BITSET_LIST FOLLOW_EOF_in_parseExpr119	= { FOLLOW_EOF_in_parseExpr119_bits, 1	};
684
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CNF_TOK_in_parseCommand143  */
685
static	ANTLR3_BITWORD FOLLOW_CNF_TOK_in_parseCommand143_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
686
static  ANTLR3_BITSET_LIST FOLLOW_CNF_TOK_in_parseCommand143	= { FOLLOW_CNF_TOK_in_parseCommand143_bits, 1	};
687
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseCommand145  */
688
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseCommand145_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
689
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseCommand145	= { FOLLOW_LPAREN_TOK_in_parseCommand145_bits, 1	};
690
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand147  */
691
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand147_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
692
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand147	= { FOLLOW_nameN_in_parseCommand147_bits, 1	};
693
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand150  */
694
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand150_bits[]	= { ANTLR3_UINT64_LIT(0x0000000200000000) };
695
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand150	= { FOLLOW_COMMA_TOK_in_parseCommand150_bits, 1	};
696
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formulaRole_in_parseCommand152  */
697
static	ANTLR3_BITWORD FOLLOW_formulaRole_in_parseCommand152_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
698
static  ANTLR3_BITSET_LIST FOLLOW_formulaRole_in_parseCommand152	= { FOLLOW_formulaRole_in_parseCommand152_bits, 1	};
699
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand155  */
700
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand155_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E33020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
701
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand155	= { FOLLOW_COMMA_TOK_in_parseCommand155_bits, 2	};
702
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfFormula_in_parseCommand165  */
703
static	ANTLR3_BITWORD FOLLOW_cnfFormula_in_parseCommand165_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000800) };
704
static  ANTLR3_BITSET_LIST FOLLOW_cnfFormula_in_parseCommand165	= { FOLLOW_cnfFormula_in_parseCommand165_bits, 1	};
705
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand177  */
706
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand177_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
707
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand177	= { FOLLOW_COMMA_TOK_in_parseCommand177_bits, 1	};
708
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_parseCommand179  */
709
static	ANTLR3_BITWORD FOLLOW_anything_in_parseCommand179_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
710
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_parseCommand179	= { FOLLOW_anything_in_parseCommand179_bits, 1	};
711
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseCommand184  */
712
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseCommand184_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000080000) };
713
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseCommand184	= { FOLLOW_RPAREN_TOK_in_parseCommand184_bits, 1	};
714
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_parseCommand186  */
715
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_parseCommand186_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
716
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_parseCommand186	= { FOLLOW_DOT_TOK_in_parseCommand186_bits, 1	};
717
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FOF_TOK_in_parseCommand198  */
718
static	ANTLR3_BITWORD FOLLOW_FOF_TOK_in_parseCommand198_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
719
static  ANTLR3_BITSET_LIST FOLLOW_FOF_TOK_in_parseCommand198	= { FOLLOW_FOF_TOK_in_parseCommand198_bits, 1	};
720
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseCommand200  */
721
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseCommand200_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
722
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseCommand200	= { FOLLOW_LPAREN_TOK_in_parseCommand200_bits, 1	};
723
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand202  */
724
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand202_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
725
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand202	= { FOLLOW_nameN_in_parseCommand202_bits, 1	};
726
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand205  */
727
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand205_bits[]	= { ANTLR3_UINT64_LIT(0x0000000200000000) };
728
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand205	= { FOLLOW_COMMA_TOK_in_parseCommand205_bits, 1	};
729
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formulaRole_in_parseCommand207  */
730
static	ANTLR3_BITWORD FOLLOW_formulaRole_in_parseCommand207_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
731
static  ANTLR3_BITSET_LIST FOLLOW_formulaRole_in_parseCommand207	= { FOLLOW_formulaRole_in_parseCommand207_bits, 1	};
732
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand210  */
733
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand210_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
734
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand210	= { FOLLOW_COMMA_TOK_in_parseCommand210_bits, 2	};
735
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofFormula_in_parseCommand222  */
736
static	ANTLR3_BITWORD FOLLOW_fofFormula_in_parseCommand222_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000800) };
737
static  ANTLR3_BITSET_LIST FOLLOW_fofFormula_in_parseCommand222	= { FOLLOW_fofFormula_in_parseCommand222_bits, 1	};
738
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand226  */
739
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand226_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
740
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand226	= { FOLLOW_COMMA_TOK_in_parseCommand226_bits, 1	};
741
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_parseCommand228  */
742
static	ANTLR3_BITWORD FOLLOW_anything_in_parseCommand228_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
743
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_parseCommand228	= { FOLLOW_anything_in_parseCommand228_bits, 1	};
744
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseCommand233  */
745
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseCommand233_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000080000) };
746
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseCommand233	= { FOLLOW_RPAREN_TOK_in_parseCommand233_bits, 1	};
747
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_parseCommand235  */
748
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_parseCommand235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
749
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_parseCommand235	= { FOLLOW_DOT_TOK_in_parseCommand235_bits, 1	};
750
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TFF_TOK_in_parseCommand247  */
751
static	ANTLR3_BITWORD FOLLOW_TFF_TOK_in_parseCommand247_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
752
static  ANTLR3_BITSET_LIST FOLLOW_TFF_TOK_in_parseCommand247	= { FOLLOW_TFF_TOK_in_parseCommand247_bits, 1	};
753
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseCommand249  */
754
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseCommand249_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
755
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseCommand249	= { FOLLOW_LPAREN_TOK_in_parseCommand249_bits, 1	};
756
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand251  */
757
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand251_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
758
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand251	= { FOLLOW_nameN_in_parseCommand251_bits, 1	};
759
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand254  */
760
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand254_bits[]	= { ANTLR3_UINT64_LIT(0x0800000200000000) };
761
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand254	= { FOLLOW_COMMA_TOK_in_parseCommand254_bits, 1	};
762
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_parseCommand262  */
763
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_parseCommand262_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
764
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_parseCommand262	= { FOLLOW_TYPE_TOK_in_parseCommand262_bits, 1	};
765
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand264  */
766
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand264_bits[]	= { ANTLR3_UINT64_LIT(0x0922004E22000200) };
767
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand264	= { FOLLOW_COMMA_TOK_in_parseCommand264_bits, 1	};
768
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffTypedAtom_in_parseCommand266  */
769
static	ANTLR3_BITWORD FOLLOW_tffTypedAtom_in_parseCommand266_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
770
static  ANTLR3_BITSET_LIST FOLLOW_tffTypedAtom_in_parseCommand266	= { FOLLOW_tffTypedAtom_in_parseCommand266_bits, 1	};
771
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formulaRole_in_parseCommand275  */
772
static	ANTLR3_BITWORD FOLLOW_formulaRole_in_parseCommand275_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
773
static  ANTLR3_BITSET_LIST FOLLOW_formulaRole_in_parseCommand275	= { FOLLOW_formulaRole_in_parseCommand275_bits, 1	};
774
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand278  */
775
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand278_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
776
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand278	= { FOLLOW_COMMA_TOK_in_parseCommand278_bits, 2	};
777
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffFormula_in_parseCommand294  */
778
static	ANTLR3_BITWORD FOLLOW_tffFormula_in_parseCommand294_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000800) };
779
static  ANTLR3_BITSET_LIST FOLLOW_tffFormula_in_parseCommand294	= { FOLLOW_tffFormula_in_parseCommand294_bits, 1	};
780
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand298  */
781
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand298_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
782
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand298	= { FOLLOW_COMMA_TOK_in_parseCommand298_bits, 1	};
783
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_parseCommand300  */
784
static	ANTLR3_BITWORD FOLLOW_anything_in_parseCommand300_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
785
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_parseCommand300	= { FOLLOW_anything_in_parseCommand300_bits, 1	};
786
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseCommand319  */
787
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseCommand319_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000080000) };
788
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseCommand319	= { FOLLOW_RPAREN_TOK_in_parseCommand319_bits, 1	};
789
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_parseCommand321  */
790
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_parseCommand321_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
791
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_parseCommand321	= { FOLLOW_DOT_TOK_in_parseCommand321_bits, 1	};
792
/** Bitset defining follow set for error recovery in rule state: FOLLOW_THF_TOK_in_parseCommand327  */
793
static	ANTLR3_BITWORD FOLLOW_THF_TOK_in_parseCommand327_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
794
static  ANTLR3_BITSET_LIST FOLLOW_THF_TOK_in_parseCommand327	= { FOLLOW_THF_TOK_in_parseCommand327_bits, 1	};
795
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseCommand339  */
796
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseCommand339_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
797
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseCommand339	= { FOLLOW_LPAREN_TOK_in_parseCommand339_bits, 1	};
798
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand341  */
799
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand341_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
800
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand341	= { FOLLOW_nameN_in_parseCommand341_bits, 1	};
801
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand344  */
802
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand344_bits[]	= { ANTLR3_UINT64_LIT(0x0800000200000000) };
803
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand344	= { FOLLOW_COMMA_TOK_in_parseCommand344_bits, 1	};
804
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_parseCommand362  */
805
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_parseCommand362_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
806
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_parseCommand362	= { FOLLOW_TYPE_TOK_in_parseCommand362_bits, 1	};
807
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand364  */
808
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand364_bits[]	= { ANTLR3_UINT64_LIT(0x0922004E22000200) };
809
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand364	= { FOLLOW_COMMA_TOK_in_parseCommand364_bits, 1	};
810
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfAtomTyping_in_parseCommand366  */
811
static	ANTLR3_BITWORD FOLLOW_thfAtomTyping_in_parseCommand366_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
812
static  ANTLR3_BITSET_LIST FOLLOW_thfAtomTyping_in_parseCommand366	= { FOLLOW_thfAtomTyping_in_parseCommand366_bits, 1	};
813
/** Bitset defining follow set for error recovery in rule state: FOLLOW_formulaRole_in_parseCommand375  */
814
static	ANTLR3_BITWORD FOLLOW_formulaRole_in_parseCommand375_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
815
static  ANTLR3_BITSET_LIST FOLLOW_formulaRole_in_parseCommand375	= { FOLLOW_formulaRole_in_parseCommand375_bits, 1	};
816
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand378  */
817
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand378_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
818
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand378	= { FOLLOW_COMMA_TOK_in_parseCommand378_bits, 2	};
819
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfLogicFormula_in_parseCommand394  */
820
static	ANTLR3_BITWORD FOLLOW_thfLogicFormula_in_parseCommand394_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000800) };
821
static  ANTLR3_BITSET_LIST FOLLOW_thfLogicFormula_in_parseCommand394	= { FOLLOW_thfLogicFormula_in_parseCommand394_bits, 1	};
822
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand398  */
823
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand398_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
824
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand398	= { FOLLOW_COMMA_TOK_in_parseCommand398_bits, 1	};
825
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_parseCommand400  */
826
static	ANTLR3_BITWORD FOLLOW_anything_in_parseCommand400_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
827
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_parseCommand400	= { FOLLOW_anything_in_parseCommand400_bits, 1	};
828
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseCommand419  */
829
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseCommand419_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000080000) };
830
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseCommand419	= { FOLLOW_RPAREN_TOK_in_parseCommand419_bits, 1	};
831
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_parseCommand421  */
832
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_parseCommand421_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
833
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_parseCommand421	= { FOLLOW_DOT_TOK_in_parseCommand421_bits, 1	};
834
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INCLUDE_TOK_in_parseCommand427  */
835
static	ANTLR3_BITWORD FOLLOW_INCLUDE_TOK_in_parseCommand427_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
836
static  ANTLR3_BITSET_LIST FOLLOW_INCLUDE_TOK_in_parseCommand427	= { FOLLOW_INCLUDE_TOK_in_parseCommand427_bits, 1	};
837
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseCommand429  */
838
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseCommand429_bits[]	= { ANTLR3_UINT64_LIT(0x0002000400000000) };
839
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseCommand429	= { FOLLOW_LPAREN_TOK_in_parseCommand429_bits, 1	};
840
/** Bitset defining follow set for error recovery in rule state: FOLLOW_unquotedFileName_in_parseCommand431  */
841
static	ANTLR3_BITWORD FOLLOW_unquotedFileName_in_parseCommand431_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000800) };
842
static  ANTLR3_BITSET_LIST FOLLOW_unquotedFileName_in_parseCommand431	= { FOLLOW_unquotedFileName_in_parseCommand431_bits, 1	};
843
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand440  */
844
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand440_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
845
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand440	= { FOLLOW_COMMA_TOK_in_parseCommand440_bits, 1	};
846
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_parseCommand442  */
847
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_parseCommand442_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
848
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_parseCommand442	= { FOLLOW_LBRACK_TOK_in_parseCommand442_bits, 1	};
849
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand444  */
850
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand444_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
851
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand444	= { FOLLOW_nameN_in_parseCommand444_bits, 1	};
852
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_parseCommand455  */
853
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_parseCommand455_bits[]	= { ANTLR3_UINT64_LIT(0x0922004622000200) };
854
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_parseCommand455	= { FOLLOW_COMMA_TOK_in_parseCommand455_bits, 1	};
855
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_parseCommand457  */
856
static	ANTLR3_BITWORD FOLLOW_nameN_in_parseCommand457_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
857
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_parseCommand457	= { FOLLOW_nameN_in_parseCommand457_bits, 1	};
858
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_parseCommand463  */
859
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_parseCommand463_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
860
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_parseCommand463	= { FOLLOW_RBRACK_TOK_in_parseCommand463_bits, 1	};
861
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseCommand472  */
862
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseCommand472_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000080000) };
863
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseCommand472	= { FOLLOW_RPAREN_TOK_in_parseCommand472_bits, 1	};
864
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_parseCommand474  */
865
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_parseCommand474_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
866
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_parseCommand474	= { FOLLOW_DOT_TOK_in_parseCommand474_bits, 1	};
867
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EOF_in_parseCommand486  */
868
static	ANTLR3_BITWORD FOLLOW_EOF_in_parseCommand486_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
869
static  ANTLR3_BITSET_LIST FOLLOW_EOF_in_parseCommand486	= { FOLLOW_EOF_in_parseCommand486_bits, 1	};
870
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_in_formulaRole508  */
871
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_in_formulaRole508_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
872
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_in_formulaRole508	= { FOLLOW_LOWER_WORD_in_formulaRole508_bits, 1	};
873
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_cnfFormula536  */
874
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_cnfFormula536_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016633020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
875
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_cnfFormula536	= { FOLLOW_LPAREN_TOK_in_cnfFormula536_bits, 2	};
876
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfDisjunction_in_cnfFormula538  */
877
static	ANTLR3_BITWORD FOLLOW_cnfDisjunction_in_cnfFormula538_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
878
static  ANTLR3_BITSET_LIST FOLLOW_cnfDisjunction_in_cnfFormula538	= { FOLLOW_cnfDisjunction_in_cnfFormula538_bits, 1	};
879
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_cnfFormula541  */
880
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_cnfFormula541_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
881
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_cnfFormula541	= { FOLLOW_RPAREN_TOK_in_cnfFormula541_bits, 1	};
882
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfDisjunction_in_cnfFormula547  */
883
static	ANTLR3_BITWORD FOLLOW_cnfDisjunction_in_cnfFormula547_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
884
static  ANTLR3_BITSET_LIST FOLLOW_cnfDisjunction_in_cnfFormula547	= { FOLLOW_cnfDisjunction_in_cnfFormula547_bits, 1	};
885
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfLiteral_in_cnfDisjunction565  */
886
static	ANTLR3_BITWORD FOLLOW_cnfLiteral_in_cnfDisjunction565_bits[]	= { ANTLR3_UINT64_LIT(0x0000010000000002) };
887
static  ANTLR3_BITSET_LIST FOLLOW_cnfLiteral_in_cnfDisjunction565	= { FOLLOW_cnfLiteral_in_cnfDisjunction565_bits, 1	};
888
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_cnfDisjunction576  */
889
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_cnfDisjunction576_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016633020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
890
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_cnfDisjunction576	= { FOLLOW_OR_TOK_in_cnfDisjunction576_bits, 2	};
891
/** Bitset defining follow set for error recovery in rule state: FOLLOW_cnfLiteral_in_cnfDisjunction578  */
892
static	ANTLR3_BITWORD FOLLOW_cnfLiteral_in_cnfDisjunction578_bits[]	= { ANTLR3_UINT64_LIT(0x0000010000000002) };
893
static  ANTLR3_BITSET_LIST FOLLOW_cnfLiteral_in_cnfDisjunction578	= { FOLLOW_cnfLiteral_in_cnfDisjunction578_bits, 1	};
894
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicFormula_in_cnfLiteral602  */
895
static	ANTLR3_BITWORD FOLLOW_atomicFormula_in_cnfLiteral602_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
896
static  ANTLR3_BITSET_LIST FOLLOW_atomicFormula_in_cnfLiteral602	= { FOLLOW_atomicFormula_in_cnfLiteral602_bits, 1	};
897
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_cnfLiteral609  */
898
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_cnfLiteral609_bits[]	= { ANTLR3_UINT64_LIT(0xAD22014633020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
899
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_cnfLiteral609	= { FOLLOW_NOT_TOK_in_cnfLiteral609_bits, 2	};
900
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicFormula_in_cnfLiteral611  */
901
static	ANTLR3_BITWORD FOLLOW_atomicFormula_in_cnfLiteral611_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
902
static  ANTLR3_BITSET_LIST FOLLOW_atomicFormula_in_cnfLiteral611	= { FOLLOW_atomicFormula_in_cnfLiteral611_bits, 1	};
903
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicWord_in_atomicFormula633  */
904
static	ANTLR3_BITWORD FOLLOW_atomicWord_in_atomicFormula633_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800210002) };
905
static  ANTLR3_BITSET_LIST FOLLOW_atomicWord_in_atomicFormula633	= { FOLLOW_atomicWord_in_atomicFormula633_bits, 1	};
906
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_atomicFormula637  */
907
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_atomicFormula637_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
908
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_atomicFormula637	= { FOLLOW_LPAREN_TOK_in_atomicFormula637_bits, 2	};
909
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_atomicFormula639  */
910
static	ANTLR3_BITWORD FOLLOW_arguments_in_atomicFormula639_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
911
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_atomicFormula639	= { FOLLOW_arguments_in_atomicFormula639_bits, 1	};
912
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_atomicFormula642  */
913
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_atomicFormula642_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210002) };
914
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_atomicFormula642	= { FOLLOW_RPAREN_TOK_in_atomicFormula642_bits, 1	};
915
/** Bitset defining follow set for error recovery in rule state: FOLLOW_equalOp_in_atomicFormula652  */
916
static	ANTLR3_BITWORD FOLLOW_equalOp_in_atomicFormula652_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
917
static  ANTLR3_BITSET_LIST FOLLOW_equalOp_in_atomicFormula652	= { FOLLOW_equalOp_in_atomicFormula652_bits, 2	};
918
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_atomicFormula655  */
919
static	ANTLR3_BITWORD FOLLOW_term_in_atomicFormula655_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
920
static  ANTLR3_BITSET_LIST FOLLOW_term_in_atomicFormula655	= { FOLLOW_term_in_atomicFormula655_bits, 1	};
921
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedFun_in_atomicFormula684  */
922
static	ANTLR3_BITWORD FOLLOW_definedFun_in_atomicFormula684_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
923
static  ANTLR3_BITSET_LIST FOLLOW_definedFun_in_atomicFormula684	= { FOLLOW_definedFun_in_atomicFormula684_bits, 1	};
924
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_atomicFormula698  */
925
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_atomicFormula698_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
926
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_atomicFormula698	= { FOLLOW_LPAREN_TOK_in_atomicFormula698_bits, 2	};
927
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_atomicFormula700  */
928
static	ANTLR3_BITWORD FOLLOW_arguments_in_atomicFormula700_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
929
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_atomicFormula700	= { FOLLOW_arguments_in_atomicFormula700_bits, 1	};
930
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_atomicFormula703  */
931
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_atomicFormula703_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210000) };
932
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_atomicFormula703	= { FOLLOW_RPAREN_TOK_in_atomicFormula703_bits, 1	};
933
/** Bitset defining follow set for error recovery in rule state: FOLLOW_equalOp_in_atomicFormula710  */
934
static	ANTLR3_BITWORD FOLLOW_equalOp_in_atomicFormula710_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
935
static  ANTLR3_BITSET_LIST FOLLOW_equalOp_in_atomicFormula710	= { FOLLOW_equalOp_in_atomicFormula710_bits, 2	};
936
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_atomicFormula713  */
937
static	ANTLR3_BITWORD FOLLOW_term_in_atomicFormula713_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
938
static  ANTLR3_BITSET_LIST FOLLOW_term_in_atomicFormula713	= { FOLLOW_term_in_atomicFormula713_bits, 1	};
939
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleTerm_in_atomicFormula734  */
940
static	ANTLR3_BITWORD FOLLOW_simpleTerm_in_atomicFormula734_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210002) };
941
static  ANTLR3_BITSET_LIST FOLLOW_simpleTerm_in_atomicFormula734	= { FOLLOW_simpleTerm_in_atomicFormula734_bits, 1	};
942
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letTerm_in_atomicFormula739  */
943
static	ANTLR3_BITWORD FOLLOW_letTerm_in_atomicFormula739_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210002) };
944
static  ANTLR3_BITSET_LIST FOLLOW_letTerm_in_atomicFormula739	= { FOLLOW_letTerm_in_atomicFormula739_bits, 1	};
945
/** Bitset defining follow set for error recovery in rule state: FOLLOW_conditionalTerm_in_atomicFormula744  */
946
static	ANTLR3_BITWORD FOLLOW_conditionalTerm_in_atomicFormula744_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210002) };
947
static  ANTLR3_BITSET_LIST FOLLOW_conditionalTerm_in_atomicFormula744	= { FOLLOW_conditionalTerm_in_atomicFormula744_bits, 1	};
948
/** Bitset defining follow set for error recovery in rule state: FOLLOW_equalOp_in_atomicFormula760  */
949
static	ANTLR3_BITWORD FOLLOW_equalOp_in_atomicFormula760_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
950
static  ANTLR3_BITSET_LIST FOLLOW_equalOp_in_atomicFormula760	= { FOLLOW_equalOp_in_atomicFormula760_bits, 2	};
951
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_atomicFormula763  */
952
static	ANTLR3_BITWORD FOLLOW_term_in_atomicFormula763_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
953
static  ANTLR3_BITSET_LIST FOLLOW_term_in_atomicFormula763	= { FOLLOW_term_in_atomicFormula763_bits, 1	};
954
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedPred_in_atomicFormula785  */
955
static	ANTLR3_BITWORD FOLLOW_definedPred_in_atomicFormula785_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
956
static  ANTLR3_BITSET_LIST FOLLOW_definedPred_in_atomicFormula785	= { FOLLOW_definedPred_in_atomicFormula785_bits, 1	};
957
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_atomicFormula789  */
958
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_atomicFormula789_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
959
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_atomicFormula789	= { FOLLOW_LPAREN_TOK_in_atomicFormula789_bits, 2	};
960
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_atomicFormula791  */
961
static	ANTLR3_BITWORD FOLLOW_arguments_in_atomicFormula791_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
962
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_atomicFormula791	= { FOLLOW_arguments_in_atomicFormula791_bits, 1	};
963
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_atomicFormula794  */
964
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_atomicFormula794_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
965
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_atomicFormula794	= { FOLLOW_RPAREN_TOK_in_atomicFormula794_bits, 1	};
966
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedProp_in_atomicFormula807  */
967
static	ANTLR3_BITWORD FOLLOW_definedProp_in_atomicFormula807_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
968
static  ANTLR3_BITSET_LIST FOLLOW_definedProp_in_atomicFormula807	= { FOLLOW_definedProp_in_atomicFormula807_bits, 1	};
969
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicWord_in_thfAtomicFormula827  */
970
static	ANTLR3_BITWORD FOLLOW_atomicWord_in_thfAtomicFormula827_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000002) };
971
static  ANTLR3_BITSET_LIST FOLLOW_atomicWord_in_thfAtomicFormula827	= { FOLLOW_atomicWord_in_thfAtomicFormula827_bits, 1	};
972
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfAtomicFormula831  */
973
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfAtomicFormula831_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
974
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfAtomicFormula831	= { FOLLOW_LPAREN_TOK_in_thfAtomicFormula831_bits, 2	};
975
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_thfAtomicFormula833  */
976
static	ANTLR3_BITWORD FOLLOW_arguments_in_thfAtomicFormula833_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
977
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_thfAtomicFormula833	= { FOLLOW_arguments_in_thfAtomicFormula833_bits, 1	};
978
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfAtomicFormula836  */
979
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfAtomicFormula836_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
980
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfAtomicFormula836	= { FOLLOW_RPAREN_TOK_in_thfAtomicFormula836_bits, 1	};
981
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedFun_in_thfAtomicFormula850  */
982
static	ANTLR3_BITWORD FOLLOW_definedFun_in_thfAtomicFormula850_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000002) };
983
static  ANTLR3_BITSET_LIST FOLLOW_definedFun_in_thfAtomicFormula850	= { FOLLOW_definedFun_in_thfAtomicFormula850_bits, 1	};
984
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfAtomicFormula865  */
985
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfAtomicFormula865_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
986
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfAtomicFormula865	= { FOLLOW_LPAREN_TOK_in_thfAtomicFormula865_bits, 2	};
987
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_thfAtomicFormula867  */
988
static	ANTLR3_BITWORD FOLLOW_arguments_in_thfAtomicFormula867_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
989
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_thfAtomicFormula867	= { FOLLOW_arguments_in_thfAtomicFormula867_bits, 1	};
990
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfAtomicFormula870  */
991
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfAtomicFormula870_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000210000) };
992
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfAtomicFormula870	= { FOLLOW_RPAREN_TOK_in_thfAtomicFormula870_bits, 1	};
993
/** Bitset defining follow set for error recovery in rule state: FOLLOW_equalOp_in_thfAtomicFormula878  */
994
static	ANTLR3_BITWORD FOLLOW_equalOp_in_thfAtomicFormula878_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
995
static  ANTLR3_BITSET_LIST FOLLOW_equalOp_in_thfAtomicFormula878	= { FOLLOW_equalOp_in_thfAtomicFormula878_bits, 2	};
996
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_thfAtomicFormula881  */
997
static	ANTLR3_BITWORD FOLLOW_term_in_thfAtomicFormula881_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
998
static  ANTLR3_BITSET_LIST FOLLOW_term_in_thfAtomicFormula881	= { FOLLOW_term_in_thfAtomicFormula881_bits, 1	};
999
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfSimpleTerm_in_thfAtomicFormula903  */
1000
static	ANTLR3_BITWORD FOLLOW_thfSimpleTerm_in_thfAtomicFormula903_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1001
static  ANTLR3_BITSET_LIST FOLLOW_thfSimpleTerm_in_thfAtomicFormula903	= { FOLLOW_thfSimpleTerm_in_thfAtomicFormula903_bits, 1	};
1002
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letTerm_in_thfAtomicFormula910  */
1003
static	ANTLR3_BITWORD FOLLOW_letTerm_in_thfAtomicFormula910_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1004
static  ANTLR3_BITSET_LIST FOLLOW_letTerm_in_thfAtomicFormula910	= { FOLLOW_letTerm_in_thfAtomicFormula910_bits, 1	};
1005
/** Bitset defining follow set for error recovery in rule state: FOLLOW_conditionalTerm_in_thfAtomicFormula917  */
1006
static	ANTLR3_BITWORD FOLLOW_conditionalTerm_in_thfAtomicFormula917_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1007
static  ANTLR3_BITSET_LIST FOLLOW_conditionalTerm_in_thfAtomicFormula917	= { FOLLOW_conditionalTerm_in_thfAtomicFormula917_bits, 1	};
1008
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfDefinedPred_in_thfAtomicFormula924  */
1009
static	ANTLR3_BITWORD FOLLOW_thfDefinedPred_in_thfAtomicFormula924_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000002) };
1010
static  ANTLR3_BITSET_LIST FOLLOW_thfDefinedPred_in_thfAtomicFormula924	= { FOLLOW_thfDefinedPred_in_thfAtomicFormula924_bits, 1	};
1011
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfAtomicFormula928  */
1012
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfAtomicFormula928_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1013
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfAtomicFormula928	= { FOLLOW_LPAREN_TOK_in_thfAtomicFormula928_bits, 2	};
1014
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_thfAtomicFormula930  */
1015
static	ANTLR3_BITWORD FOLLOW_arguments_in_thfAtomicFormula930_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1016
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_thfAtomicFormula930	= { FOLLOW_arguments_in_thfAtomicFormula930_bits, 1	};
1017
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfAtomicFormula933  */
1018
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfAtomicFormula933_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1019
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfAtomicFormula933	= { FOLLOW_RPAREN_TOK_in_thfAtomicFormula933_bits, 1	};
1020
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedProp_in_thfAtomicFormula947  */
1021
static	ANTLR3_BITWORD FOLLOW_definedProp_in_thfAtomicFormula947_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1022
static  ANTLR3_BITSET_LIST FOLLOW_definedProp_in_thfAtomicFormula947	= { FOLLOW_definedProp_in_thfAtomicFormula947_bits, 1	};
1023
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRUE_TOK_in_definedProp965  */
1024
static	ANTLR3_BITWORD FOLLOW_TRUE_TOK_in_definedProp965_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1025
static  ANTLR3_BITSET_LIST FOLLOW_TRUE_TOK_in_definedProp965	= { FOLLOW_TRUE_TOK_in_definedProp965_bits, 1	};
1026
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FALSE_TOK_in_definedProp973  */
1027
static	ANTLR3_BITWORD FOLLOW_FALSE_TOK_in_definedProp973_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1028
static  ANTLR3_BITSET_LIST FOLLOW_FALSE_TOK_in_definedProp973	= { FOLLOW_FALSE_TOK_in_definedProp973_bits, 1	};
1029
/** Bitset defining follow set for error recovery in rule state: FOLLOW_73_in_definedPred990  */
1030
static	ANTLR3_BITWORD FOLLOW_73_in_definedPred990_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1031
static  ANTLR3_BITSET_LIST FOLLOW_73_in_definedPred990	= { FOLLOW_73_in_definedPred990_bits, 1	};
1032
/** Bitset defining follow set for error recovery in rule state: FOLLOW_74_in_definedPred1002  */
1033
static	ANTLR3_BITWORD FOLLOW_74_in_definedPred1002_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1034
static  ANTLR3_BITSET_LIST FOLLOW_74_in_definedPred1002	= { FOLLOW_74_in_definedPred1002_bits, 1	};
1035
/** Bitset defining follow set for error recovery in rule state: FOLLOW_67_in_definedPred1014  */
1036
static	ANTLR3_BITWORD FOLLOW_67_in_definedPred1014_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1037
static  ANTLR3_BITSET_LIST FOLLOW_67_in_definedPred1014	= { FOLLOW_67_in_definedPred1014_bits, 1	};
1038
/** Bitset defining follow set for error recovery in rule state: FOLLOW_68_in_definedPred1026  */
1039
static	ANTLR3_BITWORD FOLLOW_68_in_definedPred1026_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1040
static  ANTLR3_BITSET_LIST FOLLOW_68_in_definedPred1026	= { FOLLOW_68_in_definedPred1026_bits, 1	};
1041
/** Bitset defining follow set for error recovery in rule state: FOLLOW_70_in_definedPred1038  */
1042
static	ANTLR3_BITWORD FOLLOW_70_in_definedPred1038_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1043
static  ANTLR3_BITSET_LIST FOLLOW_70_in_definedPred1038	= { FOLLOW_70_in_definedPred1038_bits, 1	};
1044
/** Bitset defining follow set for error recovery in rule state: FOLLOW_69_in_definedPred1065  */
1045
static	ANTLR3_BITWORD FOLLOW_69_in_definedPred1065_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1046
static  ANTLR3_BITSET_LIST FOLLOW_69_in_definedPred1065	= { FOLLOW_69_in_definedPred1065_bits, 1	};
1047
/** Bitset defining follow set for error recovery in rule state: FOLLOW_65_in_definedPred1077  */
1048
static	ANTLR3_BITWORD FOLLOW_65_in_definedPred1077_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1049
static  ANTLR3_BITSET_LIST FOLLOW_65_in_definedPred1077	= { FOLLOW_65_in_definedPred1077_bits, 1	};
1050
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_definedPred1089  */
1051
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_definedPred1089_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1052
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_definedPred1089	= { FOLLOW_AND_TOK_in_definedPred1089_bits, 1	};
1053
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IMPLIES_TOK_in_definedPred1101  */
1054
static	ANTLR3_BITWORD FOLLOW_IMPLIES_TOK_in_definedPred1101_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1055
static  ANTLR3_BITSET_LIST FOLLOW_IMPLIES_TOK_in_definedPred1101	= { FOLLOW_IMPLIES_TOK_in_definedPred1101_bits, 1	};
1056
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_definedPred1113  */
1057
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_definedPred1113_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1058
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_definedPred1113	= { FOLLOW_OR_TOK_in_definedPred1113_bits, 1	};
1059
/** Bitset defining follow set for error recovery in rule state: FOLLOW_73_in_thfDefinedPred1133  */
1060
static	ANTLR3_BITWORD FOLLOW_73_in_thfDefinedPred1133_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1061
static  ANTLR3_BITSET_LIST FOLLOW_73_in_thfDefinedPred1133	= { FOLLOW_73_in_thfDefinedPred1133_bits, 1	};
1062
/** Bitset defining follow set for error recovery in rule state: FOLLOW_74_in_thfDefinedPred1146  */
1063
static	ANTLR3_BITWORD FOLLOW_74_in_thfDefinedPred1146_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1064
static  ANTLR3_BITSET_LIST FOLLOW_74_in_thfDefinedPred1146	= { FOLLOW_74_in_thfDefinedPred1146_bits, 1	};
1065
/** Bitset defining follow set for error recovery in rule state: FOLLOW_67_in_thfDefinedPred1158  */
1066
static	ANTLR3_BITWORD FOLLOW_67_in_thfDefinedPred1158_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1067
static  ANTLR3_BITSET_LIST FOLLOW_67_in_thfDefinedPred1158	= { FOLLOW_67_in_thfDefinedPred1158_bits, 1	};
1068
/** Bitset defining follow set for error recovery in rule state: FOLLOW_68_in_thfDefinedPred1170  */
1069
static	ANTLR3_BITWORD FOLLOW_68_in_thfDefinedPred1170_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1070
static  ANTLR3_BITSET_LIST FOLLOW_68_in_thfDefinedPred1170	= { FOLLOW_68_in_thfDefinedPred1170_bits, 1	};
1071
/** Bitset defining follow set for error recovery in rule state: FOLLOW_70_in_thfDefinedPred1182  */
1072
static	ANTLR3_BITWORD FOLLOW_70_in_thfDefinedPred1182_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1073
static  ANTLR3_BITSET_LIST FOLLOW_70_in_thfDefinedPred1182	= { FOLLOW_70_in_thfDefinedPred1182_bits, 1	};
1074
/** Bitset defining follow set for error recovery in rule state: FOLLOW_69_in_thfDefinedPred1209  */
1075
static	ANTLR3_BITWORD FOLLOW_69_in_thfDefinedPred1209_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1076
static  ANTLR3_BITSET_LIST FOLLOW_69_in_thfDefinedPred1209	= { FOLLOW_69_in_thfDefinedPred1209_bits, 1	};
1077
/** Bitset defining follow set for error recovery in rule state: FOLLOW_65_in_thfDefinedPred1221  */
1078
static	ANTLR3_BITWORD FOLLOW_65_in_thfDefinedPred1221_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1079
static  ANTLR3_BITSET_LIST FOLLOW_65_in_thfDefinedPred1221	= { FOLLOW_65_in_thfDefinedPred1221_bits, 1	};
1080
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfDefinedPred1233  */
1081
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfDefinedPred1233_bits[]	= { ANTLR3_UINT64_LIT(0x0000010010000020) };
1082
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfDefinedPred1233	= { FOLLOW_LPAREN_TOK_in_thfDefinedPred1233_bits, 1	};
1083
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_thfDefinedPred1247  */
1084
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_thfDefinedPred1247_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1085
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_thfDefinedPred1247	= { FOLLOW_AND_TOK_in_thfDefinedPred1247_bits, 1	};
1086
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_thfDefinedPred1263  */
1087
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_thfDefinedPred1263_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1088
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_thfDefinedPred1263	= { FOLLOW_OR_TOK_in_thfDefinedPred1263_bits, 1	};
1089
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279  */
1090
static	ANTLR3_BITWORD FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1091
static  ANTLR3_BITSET_LIST FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279	= { FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279_bits, 1	};
1092
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfDefinedPred1299  */
1093
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfDefinedPred1299_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1094
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfDefinedPred1299	= { FOLLOW_RPAREN_TOK_in_thfDefinedPred1299_bits, 1	};
1095
/** Bitset defining follow set for error recovery in rule state: FOLLOW_94_in_definedFun1318  */
1096
static	ANTLR3_BITWORD FOLLOW_94_in_definedFun1318_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1097
static  ANTLR3_BITSET_LIST FOLLOW_94_in_definedFun1318	= { FOLLOW_94_in_definedFun1318_bits, 1	};
1098
/** Bitset defining follow set for error recovery in rule state: FOLLOW_88_in_definedFun1330  */
1099
static	ANTLR3_BITWORD FOLLOW_88_in_definedFun1330_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1100
static  ANTLR3_BITSET_LIST FOLLOW_88_in_definedFun1330	= { FOLLOW_88_in_definedFun1330_bits, 1	};
1101
/** Bitset defining follow set for error recovery in rule state: FOLLOW_64_in_definedFun1342  */
1102
static	ANTLR3_BITWORD FOLLOW_64_in_definedFun1342_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1103
static  ANTLR3_BITSET_LIST FOLLOW_64_in_definedFun1342	= { FOLLOW_64_in_definedFun1342_bits, 1	};
1104
/** Bitset defining follow set for error recovery in rule state: FOLLOW_79_in_definedFun1354  */
1105
static	ANTLR3_BITWORD FOLLOW_79_in_definedFun1354_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1106
static  ANTLR3_BITSET_LIST FOLLOW_79_in_definedFun1354	= { FOLLOW_79_in_definedFun1354_bits, 1	};
1107
/** Bitset defining follow set for error recovery in rule state: FOLLOW_80_in_definedFun1366  */
1108
static	ANTLR3_BITWORD FOLLOW_80_in_definedFun1366_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1109
static  ANTLR3_BITSET_LIST FOLLOW_80_in_definedFun1366	= { FOLLOW_80_in_definedFun1366_bits, 1	};
1110
/** Bitset defining follow set for error recovery in rule state: FOLLOW_81_in_definedFun1380  */
1111
static	ANTLR3_BITWORD FOLLOW_81_in_definedFun1380_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1112
static  ANTLR3_BITSET_LIST FOLLOW_81_in_definedFun1380	= { FOLLOW_81_in_definedFun1380_bits, 1	};
1113
/** Bitset defining follow set for error recovery in rule state: FOLLOW_84_in_definedFun1390  */
1114
static	ANTLR3_BITWORD FOLLOW_84_in_definedFun1390_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1115
static  ANTLR3_BITSET_LIST FOLLOW_84_in_definedFun1390	= { FOLLOW_84_in_definedFun1390_bits, 1	};
1116
/** Bitset defining follow set for error recovery in rule state: FOLLOW_83_in_definedFun1412  */
1117
static	ANTLR3_BITWORD FOLLOW_83_in_definedFun1412_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1118
static  ANTLR3_BITSET_LIST FOLLOW_83_in_definedFun1412	= { FOLLOW_83_in_definedFun1412_bits, 1	};
1119
/** Bitset defining follow set for error recovery in rule state: FOLLOW_86_in_definedFun1422  */
1120
static	ANTLR3_BITWORD FOLLOW_86_in_definedFun1422_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1121
static  ANTLR3_BITSET_LIST FOLLOW_86_in_definedFun1422	= { FOLLOW_86_in_definedFun1422_bits, 1	};
1122
/** Bitset defining follow set for error recovery in rule state: FOLLOW_82_in_definedFun1444  */
1123
static	ANTLR3_BITWORD FOLLOW_82_in_definedFun1444_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1124
static  ANTLR3_BITSET_LIST FOLLOW_82_in_definedFun1444	= { FOLLOW_82_in_definedFun1444_bits, 1	};
1125
/** Bitset defining follow set for error recovery in rule state: FOLLOW_85_in_definedFun1454  */
1126
static	ANTLR3_BITWORD FOLLOW_85_in_definedFun1454_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1127
static  ANTLR3_BITSET_LIST FOLLOW_85_in_definedFun1454	= { FOLLOW_85_in_definedFun1454_bits, 1	};
1128
/** Bitset defining follow set for error recovery in rule state: FOLLOW_66_in_definedFun1474  */
1129
static	ANTLR3_BITWORD FOLLOW_66_in_definedFun1474_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1130
static  ANTLR3_BITSET_LIST FOLLOW_66_in_definedFun1474	= { FOLLOW_66_in_definedFun1474_bits, 1	};
1131
/** Bitset defining follow set for error recovery in rule state: FOLLOW_63_in_definedFun1486  */
1132
static	ANTLR3_BITWORD FOLLOW_63_in_definedFun1486_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1133
static  ANTLR3_BITSET_LIST FOLLOW_63_in_definedFun1486	= { FOLLOW_63_in_definedFun1486_bits, 1	};
1134
/** Bitset defining follow set for error recovery in rule state: FOLLOW_93_in_definedFun1498  */
1135
static	ANTLR3_BITWORD FOLLOW_93_in_definedFun1498_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1136
static  ANTLR3_BITSET_LIST FOLLOW_93_in_definedFun1498	= { FOLLOW_93_in_definedFun1498_bits, 1	};
1137
/** Bitset defining follow set for error recovery in rule state: FOLLOW_87_in_definedFun1510  */
1138
static	ANTLR3_BITWORD FOLLOW_87_in_definedFun1510_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1139
static  ANTLR3_BITSET_LIST FOLLOW_87_in_definedFun1510	= { FOLLOW_87_in_definedFun1510_bits, 1	};
1140
/** Bitset defining follow set for error recovery in rule state: FOLLOW_90_in_definedFun1522  */
1141
static	ANTLR3_BITWORD FOLLOW_90_in_definedFun1522_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1142
static  ANTLR3_BITSET_LIST FOLLOW_90_in_definedFun1522	= { FOLLOW_90_in_definedFun1522_bits, 1	};
1143
/** Bitset defining follow set for error recovery in rule state: FOLLOW_91_in_definedFun1534  */
1144
static	ANTLR3_BITWORD FOLLOW_91_in_definedFun1534_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1145
static  ANTLR3_BITSET_LIST FOLLOW_91_in_definedFun1534	= { FOLLOW_91_in_definedFun1534_bits, 1	};
1146
/** Bitset defining follow set for error recovery in rule state: FOLLOW_92_in_definedFun1546  */
1147
static	ANTLR3_BITWORD FOLLOW_92_in_definedFun1546_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1148
static  ANTLR3_BITSET_LIST FOLLOW_92_in_definedFun1546	= { FOLLOW_92_in_definedFun1546_bits, 1	};
1149
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_equalOp1569  */
1150
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_equalOp1569_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1151
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_equalOp1569	= { FOLLOW_EQUAL_TOK_in_equalOp1569_bits, 1	};
1152
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISEQUAL_TOK_in_equalOp1580  */
1153
static	ANTLR3_BITWORD FOLLOW_DISEQUAL_TOK_in_equalOp1580_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1154
static  ANTLR3_BITSET_LIST FOLLOW_DISEQUAL_TOK_in_equalOp1580	= { FOLLOW_DISEQUAL_TOK_in_equalOp1580_bits, 1	};
1155
/** Bitset defining follow set for error recovery in rule state: FOLLOW_functionTerm_in_term1596  */
1156
static	ANTLR3_BITWORD FOLLOW_functionTerm_in_term1596_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1157
static  ANTLR3_BITSET_LIST FOLLOW_functionTerm_in_term1596	= { FOLLOW_functionTerm_in_term1596_bits, 1	};
1158
/** Bitset defining follow set for error recovery in rule state: FOLLOW_conditionalTerm_in_term1603  */
1159
static	ANTLR3_BITWORD FOLLOW_conditionalTerm_in_term1603_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1160
static  ANTLR3_BITSET_LIST FOLLOW_conditionalTerm_in_term1603	= { FOLLOW_conditionalTerm_in_term1603_bits, 1	};
1161
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleTerm_in_term1610  */
1162
static	ANTLR3_BITWORD FOLLOW_simpleTerm_in_term1610_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1163
static  ANTLR3_BITSET_LIST FOLLOW_simpleTerm_in_term1610	= { FOLLOW_simpleTerm_in_term1610_bits, 1	};
1164
/** Bitset defining follow set for error recovery in rule state: FOLLOW_letTerm_in_term1617  */
1165
static	ANTLR3_BITWORD FOLLOW_letTerm_in_term1617_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1166
static  ANTLR3_BITSET_LIST FOLLOW_letTerm_in_term1617	= { FOLLOW_letTerm_in_term1617_bits, 1	};
1167
/** Bitset defining follow set for error recovery in rule state: FOLLOW_76_in_letTerm1637  */
1168
static	ANTLR3_BITWORD FOLLOW_76_in_letTerm1637_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1169
static  ANTLR3_BITSET_LIST FOLLOW_76_in_letTerm1637	= { FOLLOW_76_in_letTerm1637_bits, 1	};
1170
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_letTerm1639  */
1171
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_letTerm1639_bits[]	= { ANTLR3_UINT64_LIT(0xAD22014E37020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1172
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_letTerm1639	= { FOLLOW_LPAREN_TOK_in_letTerm1639_bits, 2	};
1173
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetFormulaDefn_in_letTerm1647  */
1174
static	ANTLR3_BITWORD FOLLOW_tffLetFormulaDefn_in_letTerm1647_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1175
static  ANTLR3_BITSET_LIST FOLLOW_tffLetFormulaDefn_in_letTerm1647	= { FOLLOW_tffLetFormulaDefn_in_letTerm1647_bits, 1	};
1176
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_letTerm1650  */
1177
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_letTerm1650_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1178
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_letTerm1650	= { FOLLOW_COMMA_TOK_in_letTerm1650_bits, 2	};
1179
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_letTerm1656  */
1180
static	ANTLR3_BITWORD FOLLOW_term_in_letTerm1656_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1181
static  ANTLR3_BITSET_LIST FOLLOW_term_in_letTerm1656	= { FOLLOW_term_in_letTerm1656_bits, 1	};
1182
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_letTerm1669  */
1183
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_letTerm1669_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1184
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_letTerm1669	= { FOLLOW_RPAREN_TOK_in_letTerm1669_bits, 1	};
1185
/** Bitset defining follow set for error recovery in rule state: FOLLOW_78_in_letTerm1675  */
1186
static	ANTLR3_BITWORD FOLLOW_78_in_letTerm1675_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1187
static  ANTLR3_BITSET_LIST FOLLOW_78_in_letTerm1675	= { FOLLOW_78_in_letTerm1675_bits, 1	};
1188
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_letTerm1677  */
1189
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_letTerm1677_bits[]	= { ANTLR3_UINT64_LIT(0xA922004E26020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1190
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_letTerm1677	= { FOLLOW_LPAREN_TOK_in_letTerm1677_bits, 2	};
1191
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetTermDefn_in_letTerm1685  */
1192
static	ANTLR3_BITWORD FOLLOW_tffLetTermDefn_in_letTerm1685_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1193
static  ANTLR3_BITSET_LIST FOLLOW_tffLetTermDefn_in_letTerm1685	= { FOLLOW_tffLetTermDefn_in_letTerm1685_bits, 1	};
1194
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_letTerm1688  */
1195
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_letTerm1688_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1196
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_letTerm1688	= { FOLLOW_COMMA_TOK_in_letTerm1688_bits, 2	};
1197
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_letTerm1694  */
1198
static	ANTLR3_BITWORD FOLLOW_term_in_letTerm1694_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1199
static  ANTLR3_BITSET_LIST FOLLOW_term_in_letTerm1694	= { FOLLOW_term_in_letTerm1694_bits, 1	};
1200
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_letTerm1707  */
1201
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_letTerm1707_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1202
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_letTerm1707	= { FOLLOW_RPAREN_TOK_in_letTerm1707_bits, 1	};
1203
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_in_simpleTerm1723  */
1204
static	ANTLR3_BITWORD FOLLOW_variable_in_simpleTerm1723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1205
static  ANTLR3_BITSET_LIST FOLLOW_variable_in_simpleTerm1723	= { FOLLOW_variable_in_simpleTerm1723_bits, 1	};
1206
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NUMBER_in_simpleTerm1730  */
1207
static	ANTLR3_BITWORD FOLLOW_NUMBER_in_simpleTerm1730_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1208
static  ANTLR3_BITSET_LIST FOLLOW_NUMBER_in_simpleTerm1730	= { FOLLOW_NUMBER_in_simpleTerm1730_bits, 1	};
1209
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738  */
1210
static	ANTLR3_BITWORD FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1211
static  ANTLR3_BITSET_LIST FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738	= { FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738_bits, 1	};
1212
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NUMBER_in_thfSimpleTerm1756  */
1213
static	ANTLR3_BITWORD FOLLOW_NUMBER_in_thfSimpleTerm1756_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1214
static  ANTLR3_BITSET_LIST FOLLOW_NUMBER_in_thfSimpleTerm1756	= { FOLLOW_NUMBER_in_thfSimpleTerm1756_bits, 1	};
1215
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764  */
1216
static	ANTLR3_BITWORD FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1217
static  ANTLR3_BITSET_LIST FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764	= { FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764_bits, 1	};
1218
/** Bitset defining follow set for error recovery in rule state: FOLLOW_plainTerm_in_functionTerm1789  */
1219
static	ANTLR3_BITWORD FOLLOW_plainTerm_in_functionTerm1789_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1220
static  ANTLR3_BITSET_LIST FOLLOW_plainTerm_in_functionTerm1789	= { FOLLOW_plainTerm_in_functionTerm1789_bits, 1	};
1221
/** Bitset defining follow set for error recovery in rule state: FOLLOW_definedFun_in_functionTerm1796  */
1222
static	ANTLR3_BITWORD FOLLOW_definedFun_in_functionTerm1796_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1223
static  ANTLR3_BITSET_LIST FOLLOW_definedFun_in_functionTerm1796	= { FOLLOW_definedFun_in_functionTerm1796_bits, 1	};
1224
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_functionTerm1799  */
1225
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_functionTerm1799_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1226
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_functionTerm1799	= { FOLLOW_LPAREN_TOK_in_functionTerm1799_bits, 2	};
1227
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_functionTerm1801  */
1228
static	ANTLR3_BITWORD FOLLOW_arguments_in_functionTerm1801_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1229
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_functionTerm1801	= { FOLLOW_arguments_in_functionTerm1801_bits, 1	};
1230
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_functionTerm1804  */
1231
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_functionTerm1804_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1232
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_functionTerm1804	= { FOLLOW_RPAREN_TOK_in_functionTerm1804_bits, 1	};
1233
/** Bitset defining follow set for error recovery in rule state: FOLLOW_72_in_conditionalTerm1829  */
1234
static	ANTLR3_BITWORD FOLLOW_72_in_conditionalTerm1829_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1235
static  ANTLR3_BITSET_LIST FOLLOW_72_in_conditionalTerm1829	= { FOLLOW_72_in_conditionalTerm1829_bits, 1	};
1236
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_conditionalTerm1831  */
1237
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_conditionalTerm1831_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1238
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_conditionalTerm1831	= { FOLLOW_LPAREN_TOK_in_conditionalTerm1831_bits, 2	};
1239
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_conditionalTerm1833  */
1240
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_conditionalTerm1833_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1241
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_conditionalTerm1833	= { FOLLOW_tffLogicFormula_in_conditionalTerm1833_bits, 1	};
1242
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_conditionalTerm1836  */
1243
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_conditionalTerm1836_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1244
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_conditionalTerm1836	= { FOLLOW_COMMA_TOK_in_conditionalTerm1836_bits, 2	};
1245
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_conditionalTerm1838  */
1246
static	ANTLR3_BITWORD FOLLOW_term_in_conditionalTerm1838_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1247
static  ANTLR3_BITSET_LIST FOLLOW_term_in_conditionalTerm1838	= { FOLLOW_term_in_conditionalTerm1838_bits, 1	};
1248
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_conditionalTerm1841  */
1249
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_conditionalTerm1841_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1250
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_conditionalTerm1841	= { FOLLOW_COMMA_TOK_in_conditionalTerm1841_bits, 2	};
1251
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_conditionalTerm1843  */
1252
static	ANTLR3_BITWORD FOLLOW_term_in_conditionalTerm1843_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1253
static  ANTLR3_BITSET_LIST FOLLOW_term_in_conditionalTerm1843	= { FOLLOW_term_in_conditionalTerm1843_bits, 1	};
1254
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_conditionalTerm1846  */
1255
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_conditionalTerm1846_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1256
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_conditionalTerm1846	= { FOLLOW_RPAREN_TOK_in_conditionalTerm1846_bits, 1	};
1257
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicWord_in_plainTerm1871  */
1258
static	ANTLR3_BITWORD FOLLOW_atomicWord_in_plainTerm1871_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000002) };
1259
static  ANTLR3_BITSET_LIST FOLLOW_atomicWord_in_plainTerm1871	= { FOLLOW_atomicWord_in_plainTerm1871_bits, 1	};
1260
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_plainTerm1875  */
1261
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_plainTerm1875_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1262
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_plainTerm1875	= { FOLLOW_LPAREN_TOK_in_plainTerm1875_bits, 2	};
1263
/** Bitset defining follow set for error recovery in rule state: FOLLOW_arguments_in_plainTerm1877  */
1264
static	ANTLR3_BITWORD FOLLOW_arguments_in_plainTerm1877_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1265
static  ANTLR3_BITSET_LIST FOLLOW_arguments_in_plainTerm1877	= { FOLLOW_arguments_in_plainTerm1877_bits, 1	};
1266
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_plainTerm1880  */
1267
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_plainTerm1880_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1268
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_plainTerm1880	= { FOLLOW_RPAREN_TOK_in_plainTerm1880_bits, 1	};
1269
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_arguments1909  */
1270
static	ANTLR3_BITWORD FOLLOW_term_in_arguments1909_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000802) };
1271
static  ANTLR3_BITSET_LIST FOLLOW_term_in_arguments1909	= { FOLLOW_term_in_arguments1909_bits, 1	};
1272
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_arguments1916  */
1273
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_arguments1916_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1274
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_arguments1916	= { FOLLOW_COMMA_TOK_in_arguments1916_bits, 2	};
1275
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_arguments1918  */
1276
static	ANTLR3_BITWORD FOLLOW_term_in_arguments1918_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000802) };
1277
static  ANTLR3_BITSET_LIST FOLLOW_term_in_arguments1918	= { FOLLOW_term_in_arguments1918_bits, 1	};
1278
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UPPER_WORD_in_variable1938  */
1279
static	ANTLR3_BITWORD FOLLOW_UPPER_WORD_in_variable1938_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1280
static  ANTLR3_BITSET_LIST FOLLOW_UPPER_WORD_in_variable1938	= { FOLLOW_UPPER_WORD_in_variable1938_bits, 1	};
1281
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofLogicFormula_in_fofFormula1962  */
1282
static	ANTLR3_BITWORD FOLLOW_fofLogicFormula_in_fofFormula1962_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1283
static  ANTLR3_BITSET_LIST FOLLOW_fofLogicFormula_in_fofFormula1962	= { FOLLOW_fofLogicFormula_in_fofFormula1962_bits, 1	};
1284
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980  */
1285
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980_bits[]	= { ANTLR3_UINT64_LIT(0x0000790018000022) };
1286
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980	= { FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980_bits, 1	};
1287
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998  */
1288
static	ANTLR3_BITWORD FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1289
static  ANTLR3_BITSET_LIST FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998	= { FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998_bits, 2	};
1290
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001  */
1291
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1292
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001	= { FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001_bits, 1	};
1293
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_fofLogicFormula2049  */
1294
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_fofLogicFormula2049_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1295
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_fofLogicFormula2049	= { FOLLOW_AND_TOK_in_fofLogicFormula2049_bits, 2	};
1296
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051  */
1297
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000022) };
1298
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051	= { FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051_bits, 1	};
1299
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_fofLogicFormula2104  */
1300
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_fofLogicFormula2104_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1301
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_fofLogicFormula2104	= { FOLLOW_OR_TOK_in_fofLogicFormula2104_bits, 2	};
1302
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106  */
1303
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106_bits[]	= { ANTLR3_UINT64_LIT(0x0000010000000002) };
1304
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106	= { FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106_bits, 1	};
1305
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicFormula_in_fofUnitaryFormula2156  */
1306
static	ANTLR3_BITWORD FOLLOW_atomicFormula_in_fofUnitaryFormula2156_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1307
static  ANTLR3_BITSET_LIST FOLLOW_atomicFormula_in_fofUnitaryFormula2156	= { FOLLOW_atomicFormula_in_fofUnitaryFormula2156_bits, 1	};
1308
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163  */
1309
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1310
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163	= { FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163_bits, 2	};
1311
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165  */
1312
static	ANTLR3_BITWORD FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1313
static  ANTLR3_BITSET_LIST FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165	= { FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165_bits, 1	};
1314
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168  */
1315
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1316
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168	= { FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168_bits, 1	};
1317
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_fofUnitaryFormula2174  */
1318
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_fofUnitaryFormula2174_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1319
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_fofUnitaryFormula2174	= { FOLLOW_NOT_TOK_in_fofUnitaryFormula2174_bits, 2	};
1320
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176  */
1321
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1322
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176	= { FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176_bits, 1	};
1323
/** Bitset defining follow set for error recovery in rule state: FOLLOW_folQuantifier_in_fofUnitaryFormula2190  */
1324
static	ANTLR3_BITWORD FOLLOW_folQuantifier_in_fofUnitaryFormula2190_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
1325
static  ANTLR3_BITSET_LIST FOLLOW_folQuantifier_in_fofUnitaryFormula2190	= { FOLLOW_folQuantifier_in_fofUnitaryFormula2190_bits, 1	};
1326
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193  */
1327
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1328
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193	= { FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193_bits, 1	};
1329
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bindvariable_in_fofUnitaryFormula2203  */
1330
static	ANTLR3_BITWORD FOLLOW_bindvariable_in_fofUnitaryFormula2203_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1331
static  ANTLR3_BITSET_LIST FOLLOW_bindvariable_in_fofUnitaryFormula2203	= { FOLLOW_bindvariable_in_fofUnitaryFormula2203_bits, 1	};
1332
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216  */
1333
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1334
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216	= { FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216_bits, 1	};
1335
/** Bitset defining follow set for error recovery in rule state: FOLLOW_bindvariable_in_fofUnitaryFormula2218  */
1336
static	ANTLR3_BITWORD FOLLOW_bindvariable_in_fofUnitaryFormula2218_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1337
static  ANTLR3_BITSET_LIST FOLLOW_bindvariable_in_fofUnitaryFormula2218	= { FOLLOW_bindvariable_in_fofUnitaryFormula2218_bits, 1	};
1338
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228  */
1339
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1340
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228	= { FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228_bits, 1	};
1341
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_fofUnitaryFormula2234  */
1342
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_fofUnitaryFormula2234_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1343
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_fofUnitaryFormula2234	= { FOLLOW_COLON_TOK_in_fofUnitaryFormula2234_bits, 2	};
1344
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236  */
1345
static	ANTLR3_BITWORD FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1346
static  ANTLR3_BITSET_LIST FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236	= { FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236_bits, 1	};
1347
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UPPER_WORD_in_bindvariable2257  */
1348
static	ANTLR3_BITWORD FOLLOW_UPPER_WORD_in_bindvariable2257_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1349
static  ANTLR3_BITSET_LIST FOLLOW_UPPER_WORD_in_bindvariable2257	= { FOLLOW_UPPER_WORD_in_bindvariable2257_bits, 1	};
1350
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277  */
1351
static	ANTLR3_BITWORD FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1352
static  ANTLR3_BITSET_LIST FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277	= { FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277_bits, 1	};
1353
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290  */
1354
static	ANTLR3_BITWORD FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1355
static  ANTLR3_BITSET_LIST FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290	= { FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290_bits, 1	};
1356
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300  */
1357
static	ANTLR3_BITWORD FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1358
static  ANTLR3_BITSET_LIST FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300	= { FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300_bits, 1	};
1359
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311  */
1360
static	ANTLR3_BITWORD FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1361
static  ANTLR3_BITSET_LIST FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311	= { FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311_bits, 1	};
1362
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321  */
1363
static	ANTLR3_BITWORD FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1364
static  ANTLR3_BITSET_LIST FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321	= { FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321_bits, 1	};
1365
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332  */
1366
static	ANTLR3_BITWORD FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1367
static  ANTLR3_BITSET_LIST FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332	= { FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332_bits, 1	};
1368
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_folQuantifier2348  */
1369
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_folQuantifier2348_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1370
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_folQuantifier2348	= { FOLLOW_FORALL_TOK_in_folQuantifier2348_bits, 1	};
1371
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EXISTS_TOK_in_folQuantifier2356  */
1372
static	ANTLR3_BITWORD FOLLOW_EXISTS_TOK_in_folQuantifier2356_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1373
static  ANTLR3_BITSET_LIST FOLLOW_EXISTS_TOK_in_folQuantifier2356	= { FOLLOW_EXISTS_TOK_in_folQuantifier2356_bits, 1	};
1374
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_thfQuantifier2377  */
1375
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_thfQuantifier2377_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1376
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_thfQuantifier2377	= { FOLLOW_FORALL_TOK_in_thfQuantifier2377_bits, 1	};
1377
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EXISTS_TOK_in_thfQuantifier2385  */
1378
static	ANTLR3_BITWORD FOLLOW_EXISTS_TOK_in_thfQuantifier2385_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1379
static  ANTLR3_BITSET_LIST FOLLOW_EXISTS_TOK_in_thfQuantifier2385	= { FOLLOW_EXISTS_TOK_in_thfQuantifier2385_bits, 1	};
1380
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LAMBDA_TOK_in_thfQuantifier2393  */
1381
static	ANTLR3_BITWORD FOLLOW_LAMBDA_TOK_in_thfQuantifier2393_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1382
static  ANTLR3_BITSET_LIST FOLLOW_LAMBDA_TOK_in_thfQuantifier2393	= { FOLLOW_LAMBDA_TOK_in_thfQuantifier2393_bits, 1	};
1383
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CHOICE_TOK_in_thfQuantifier2401  */
1384
static	ANTLR3_BITWORD FOLLOW_CHOICE_TOK_in_thfQuantifier2401_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1385
static  ANTLR3_BITSET_LIST FOLLOW_CHOICE_TOK_in_thfQuantifier2401	= { FOLLOW_CHOICE_TOK_in_thfQuantifier2401_bits, 1	};
1386
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413  */
1387
static	ANTLR3_BITWORD FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1388
static  ANTLR3_BITSET_LIST FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413	= { FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413_bits, 1	};
1389
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_thfQuantifier2425  */
1390
static	ANTLR3_BITWORD FOLLOW_set_in_thfQuantifier2425_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1391
static  ANTLR3_BITSET_LIST FOLLOW_set_in_thfQuantifier2425	= { FOLLOW_set_in_thfQuantifier2425_bits, 1	};
1392
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfAtomTyping2457  */
1393
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfAtomTyping2457_bits[]	= { ANTLR3_UINT64_LIT(0x0922004E22000200) };
1394
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfAtomTyping2457	= { FOLLOW_LPAREN_TOK_in_thfAtomTyping2457_bits, 1	};
1395
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfAtomTyping_in_thfAtomTyping2459  */
1396
static	ANTLR3_BITWORD FOLLOW_thfAtomTyping_in_thfAtomTyping2459_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1397
static  ANTLR3_BITSET_LIST FOLLOW_thfAtomTyping_in_thfAtomTyping2459	= { FOLLOW_thfAtomTyping_in_thfAtomTyping2459_bits, 1	};
1398
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfAtomTyping2462  */
1399
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfAtomTyping2462_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1400
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfAtomTyping2462	= { FOLLOW_RPAREN_TOK_in_thfAtomTyping2462_bits, 1	};
1401
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_thfAtomTyping2468  */
1402
static	ANTLR3_BITWORD FOLLOW_nameN_in_thfAtomTyping2468_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1403
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_thfAtomTyping2468	= { FOLLOW_nameN_in_thfAtomTyping2468_bits, 1	};
1404
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_thfAtomTyping2471  */
1405
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_thfAtomTyping2471_bits[]	= { ANTLR3_UINT64_LIT(0x0922000EA2004200), ANTLR3_UINT64_LIT(0x0000000002000000) };
1406
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_thfAtomTyping2471	= { FOLLOW_COLON_TOK_in_thfAtomTyping2471_bits, 2	};
1407
/** Bitset defining follow set for error recovery in rule state: FOLLOW_89_in_thfAtomTyping2479  */
1408
static	ANTLR3_BITWORD FOLLOW_89_in_thfAtomTyping2479_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1409
static  ANTLR3_BITSET_LIST FOLLOW_89_in_thfAtomTyping2479	= { FOLLOW_89_in_thfAtomTyping2479_bits, 1	};
1410
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseThfType_in_thfAtomTyping2495  */
1411
static	ANTLR3_BITWORD FOLLOW_parseThfType_in_thfAtomTyping2495_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1412
static  ANTLR3_BITSET_LIST FOLLOW_parseThfType_in_thfAtomTyping2495	= { FOLLOW_parseThfType_in_thfAtomTyping2495_bits, 1	};
1413
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535  */
1414
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535_bits[]	= { ANTLR3_UINT64_LIT(0x0000790018210062) };
1415
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535_bits, 1	};
1416
/** Bitset defining follow set for error recovery in rule state: FOLLOW_equalOp_in_thfLogicFormula2551  */
1417
static	ANTLR3_BITWORD FOLLOW_equalOp_in_thfLogicFormula2551_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1418
static  ANTLR3_BITSET_LIST FOLLOW_equalOp_in_thfLogicFormula2551	= { FOLLOW_equalOp_in_thfLogicFormula2551_bits, 2	};
1419
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560  */
1420
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1421
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560_bits, 1	};
1422
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584  */
1423
static	ANTLR3_BITWORD FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1424
static  ANTLR3_BITSET_LIST FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584	= { FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584_bits, 2	};
1425
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587  */
1426
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1427
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587_bits, 1	};
1428
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_thfLogicFormula2633  */
1429
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_thfLogicFormula2633_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1430
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_thfLogicFormula2633	= { FOLLOW_AND_TOK_in_thfLogicFormula2633_bits, 2	};
1431
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635  */
1432
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000022) };
1433
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635_bits, 1	};
1434
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_thfLogicFormula2714  */
1435
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_thfLogicFormula2714_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1436
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_thfLogicFormula2714	= { FOLLOW_OR_TOK_in_thfLogicFormula2714_bits, 2	};
1437
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716  */
1438
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716_bits[]	= { ANTLR3_UINT64_LIT(0x0000010000000002) };
1439
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716_bits, 1	};
1440
/** Bitset defining follow set for error recovery in rule state: FOLLOW_APP_TOK_in_thfLogicFormula2818  */
1441
static	ANTLR3_BITWORD FOLLOW_APP_TOK_in_thfLogicFormula2818_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006EE7428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1442
static  ANTLR3_BITSET_LIST FOLLOW_APP_TOK_in_thfLogicFormula2818	= { FOLLOW_APP_TOK_in_thfLogicFormula2818_bits, 2	};
1443
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839  */
1444
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000042) };
1445
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839	= { FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839_bits, 1	};
1446
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_thfLogicFormula2864  */
1447
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_thfLogicFormula2864_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1448
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_thfLogicFormula2864	= { FOLLOW_LBRACK_TOK_in_thfLogicFormula2864_bits, 2	};
1449
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfTupleForm_in_thfLogicFormula2890  */
1450
static	ANTLR3_BITWORD FOLLOW_thfTupleForm_in_thfLogicFormula2890_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000000) };
1451
static  ANTLR3_BITSET_LIST FOLLOW_thfTupleForm_in_thfLogicFormula2890	= { FOLLOW_thfTupleForm_in_thfLogicFormula2890_bits, 1	};
1452
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_thfLogicFormula2904  */
1453
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_thfLogicFormula2904_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000042) };
1454
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_thfLogicFormula2904	= { FOLLOW_RBRACK_TOK_in_thfLogicFormula2904_bits, 1	};
1455
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfTupleForm2957  */
1456
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfTupleForm2957_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1457
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfTupleForm2957	= { FOLLOW_thfUnitaryFormula_in_thfTupleForm2957_bits, 1	};
1458
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_thfTupleForm2970  */
1459
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_thfTupleForm2970_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1460
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_thfTupleForm2970	= { FOLLOW_COMMA_TOK_in_thfTupleForm2970_bits, 2	};
1461
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfTupleForm2972  */
1462
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfTupleForm2972_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000802) };
1463
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfTupleForm2972	= { FOLLOW_thfUnitaryFormula_in_thfTupleForm2972_bits, 1	};
1464
/** Bitset defining follow set for error recovery in rule state: FOLLOW_variable_in_thfUnitaryFormula3003  */
1465
static	ANTLR3_BITWORD FOLLOW_variable_in_thfUnitaryFormula3003_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1466
static  ANTLR3_BITSET_LIST FOLLOW_variable_in_thfUnitaryFormula3003	= { FOLLOW_variable_in_thfUnitaryFormula3003_bits, 1	};
1467
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010  */
1468
static	ANTLR3_BITWORD FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1469
static  ANTLR3_BITSET_LIST FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010	= { FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010_bits, 1	};
1470
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017  */
1471
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1472
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017	= { FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017_bits, 2	};
1473
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023  */
1474
static	ANTLR3_BITWORD FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1475
static  ANTLR3_BITSET_LIST FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023	= { FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023_bits, 1	};
1476
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030  */
1477
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1478
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030	= { FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030_bits, 1	};
1479
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_thfUnitaryFormula3036  */
1480
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_thfUnitaryFormula3036_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428302), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1481
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_thfUnitaryFormula3036	= { FOLLOW_NOT_TOK_in_thfUnitaryFormula3036_bits, 2	};
1482
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055  */
1483
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1484
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055	= { FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055_bits, 1	};
1485
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfQuantifier_in_thfUnitaryFormula3081  */
1486
static	ANTLR3_BITWORD FOLLOW_thfQuantifier_in_thfUnitaryFormula3081_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
1487
static  ANTLR3_BITSET_LIST FOLLOW_thfQuantifier_in_thfUnitaryFormula3081	= { FOLLOW_thfQuantifier_in_thfUnitaryFormula3081_bits, 1	};
1488
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088  */
1489
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1490
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088	= { FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088_bits, 1	};
1491
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfBindVariable_in_thfUnitaryFormula3096  */
1492
static	ANTLR3_BITWORD FOLLOW_thfBindVariable_in_thfUnitaryFormula3096_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1493
static  ANTLR3_BITSET_LIST FOLLOW_thfBindVariable_in_thfUnitaryFormula3096	= { FOLLOW_thfBindVariable_in_thfUnitaryFormula3096_bits, 1	};
1494
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111  */
1495
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1496
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111	= { FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111_bits, 1	};
1497
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfBindVariable_in_thfUnitaryFormula3113  */
1498
static	ANTLR3_BITWORD FOLLOW_thfBindVariable_in_thfUnitaryFormula3113_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1499
static  ANTLR3_BITSET_LIST FOLLOW_thfBindVariable_in_thfUnitaryFormula3113	= { FOLLOW_thfBindVariable_in_thfUnitaryFormula3113_bits, 1	};
1500
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135  */
1501
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1502
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135	= { FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135_bits, 1	};
1503
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_thfUnitaryFormula3137  */
1504
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_thfUnitaryFormula3137_bits[]	= { ANTLR3_UINT64_LIT(0xADE2006E67428300), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1505
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_thfUnitaryFormula3137	= { FOLLOW_COLON_TOK_in_thfUnitaryFormula3137_bits, 2	};
1506
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143  */
1507
static	ANTLR3_BITWORD FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1508
static  ANTLR3_BITSET_LIST FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143	= { FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143_bits, 1	};
1509
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_tffFormula3166  */
1510
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_tffFormula3166_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1511
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_tffFormula3166	= { FOLLOW_tffLogicFormula_in_tffFormula3166_bits, 1	};
1512
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffTypedAtom3183  */
1513
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffTypedAtom3183_bits[]	= { ANTLR3_UINT64_LIT(0x0922004E22000200) };
1514
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffTypedAtom3183	= { FOLLOW_LPAREN_TOK_in_tffTypedAtom3183_bits, 1	};
1515
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffTypedAtom_in_tffTypedAtom3185  */
1516
static	ANTLR3_BITWORD FOLLOW_tffTypedAtom_in_tffTypedAtom3185_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1517
static  ANTLR3_BITSET_LIST FOLLOW_tffTypedAtom_in_tffTypedAtom3185	= { FOLLOW_tffTypedAtom_in_tffTypedAtom3185_bits, 1	};
1518
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffTypedAtom3188  */
1519
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffTypedAtom3188_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1520
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffTypedAtom3188	= { FOLLOW_RPAREN_TOK_in_tffTypedAtom3188_bits, 1	};
1521
/** Bitset defining follow set for error recovery in rule state: FOLLOW_nameN_in_tffTypedAtom3194  */
1522
static	ANTLR3_BITWORD FOLLOW_nameN_in_tffTypedAtom3194_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1523
static  ANTLR3_BITSET_LIST FOLLOW_nameN_in_tffTypedAtom3194	= { FOLLOW_nameN_in_tffTypedAtom3194_bits, 1	};
1524
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_tffTypedAtom3197  */
1525
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_tffTypedAtom3197_bits[]	= { ANTLR3_UINT64_LIT(0x0922000E22004200), ANTLR3_UINT64_LIT(0x0000000002000000) };
1526
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_tffTypedAtom3197	= { FOLLOW_COLON_TOK_in_tffTypedAtom3197_bits, 2	};
1527
/** Bitset defining follow set for error recovery in rule state: FOLLOW_89_in_tffTypedAtom3205  */
1528
static	ANTLR3_BITWORD FOLLOW_89_in_tffTypedAtom3205_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1529
static  ANTLR3_BITSET_LIST FOLLOW_89_in_tffTypedAtom3205	= { FOLLOW_89_in_tffTypedAtom3205_bits, 1	};
1530
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseType_in_tffTypedAtom3221  */
1531
static	ANTLR3_BITWORD FOLLOW_parseType_in_tffTypedAtom3221_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1532
static  ANTLR3_BITSET_LIST FOLLOW_parseType_in_tffTypedAtom3221	= { FOLLOW_parseType_in_tffTypedAtom3221_bits, 1	};
1533
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255  */
1534
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255_bits[]	= { ANTLR3_UINT64_LIT(0x0000790018000022) };
1535
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255	= { FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255_bits, 1	};
1536
/** Bitset defining follow set for error recovery in rule state: FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273  */
1537
static	ANTLR3_BITWORD FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1538
static  ANTLR3_BITSET_LIST FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273	= { FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273_bits, 2	};
1539
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276  */
1540
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1541
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276	= { FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276_bits, 1	};
1542
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_tffLogicFormula3324  */
1543
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_tffLogicFormula3324_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1544
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_tffLogicFormula3324	= { FOLLOW_AND_TOK_in_tffLogicFormula3324_bits, 2	};
1545
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326  */
1546
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000022) };
1547
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326	= { FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326_bits, 1	};
1548
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_tffLogicFormula3379  */
1549
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_tffLogicFormula3379_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1550
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_tffLogicFormula3379	= { FOLLOW_OR_TOK_in_tffLogicFormula3379_bits, 2	};
1551
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381  */
1552
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381_bits[]	= { ANTLR3_UINT64_LIT(0x0000010000000002) };
1553
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381	= { FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381_bits, 1	};
1554
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicFormula_in_tffUnitaryFormula3431  */
1555
static	ANTLR3_BITWORD FOLLOW_atomicFormula_in_tffUnitaryFormula3431_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1556
static  ANTLR3_BITSET_LIST FOLLOW_atomicFormula_in_tffUnitaryFormula3431	= { FOLLOW_atomicFormula_in_tffUnitaryFormula3431_bits, 1	};
1557
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438  */
1558
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1559
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438	= { FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438_bits, 2	};
1560
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440  */
1561
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1562
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440	= { FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440_bits, 1	};
1563
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443  */
1564
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1565
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443	= { FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443_bits, 1	};
1566
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_tffUnitaryFormula3449  */
1567
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_tffUnitaryFormula3449_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1568
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_tffUnitaryFormula3449	= { FOLLOW_NOT_TOK_in_tffUnitaryFormula3449_bits, 2	};
1569
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451  */
1570
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1571
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451	= { FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451_bits, 1	};
1572
/** Bitset defining follow set for error recovery in rule state: FOLLOW_folQuantifier_in_tffUnitaryFormula3465  */
1573
static	ANTLR3_BITWORD FOLLOW_folQuantifier_in_tffUnitaryFormula3465_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
1574
static  ANTLR3_BITSET_LIST FOLLOW_folQuantifier_in_tffUnitaryFormula3465	= { FOLLOW_folQuantifier_in_tffUnitaryFormula3465_bits, 1	};
1575
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468  */
1576
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1577
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468	= { FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468_bits, 1	};
1578
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffbindvariable_in_tffUnitaryFormula3478  */
1579
static	ANTLR3_BITWORD FOLLOW_tffbindvariable_in_tffUnitaryFormula3478_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1580
static  ANTLR3_BITSET_LIST FOLLOW_tffbindvariable_in_tffUnitaryFormula3478	= { FOLLOW_tffbindvariable_in_tffUnitaryFormula3478_bits, 1	};
1581
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491  */
1582
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1583
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491	= { FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491_bits, 1	};
1584
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffbindvariable_in_tffUnitaryFormula3493  */
1585
static	ANTLR3_BITWORD FOLLOW_tffbindvariable_in_tffUnitaryFormula3493_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000800) };
1586
static  ANTLR3_BITSET_LIST FOLLOW_tffbindvariable_in_tffUnitaryFormula3493	= { FOLLOW_tffbindvariable_in_tffUnitaryFormula3493_bits, 1	};
1587
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503  */
1588
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1589
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503	= { FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503_bits, 1	};
1590
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_tffUnitaryFormula3509  */
1591
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_tffUnitaryFormula3509_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1592
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_tffUnitaryFormula3509	= { FOLLOW_COLON_TOK_in_tffUnitaryFormula3509_bits, 2	};
1593
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511  */
1594
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1595
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511	= { FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511_bits, 1	};
1596
/** Bitset defining follow set for error recovery in rule state: FOLLOW_71_in_tffUnitaryFormula3524  */
1597
static	ANTLR3_BITWORD FOLLOW_71_in_tffUnitaryFormula3524_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1598
static  ANTLR3_BITSET_LIST FOLLOW_71_in_tffUnitaryFormula3524	= { FOLLOW_71_in_tffUnitaryFormula3524_bits, 1	};
1599
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526  */
1600
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1601
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526	= { FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526_bits, 2	};
1602
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528  */
1603
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1604
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528	= { FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528_bits, 1	};
1605
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531  */
1606
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1607
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531	= { FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531_bits, 2	};
1608
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533  */
1609
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1610
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533	= { FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533_bits, 1	};
1611
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536  */
1612
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1613
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536	= { FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536_bits, 2	};
1614
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538  */
1615
static	ANTLR3_BITWORD FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1616
static  ANTLR3_BITSET_LIST FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538	= { FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538_bits, 1	};
1617
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541  */
1618
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1619
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541	= { FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541_bits, 1	};
1620
/** Bitset defining follow set for error recovery in rule state: FOLLOW_77_in_tffUnitaryFormula3553  */
1621
static	ANTLR3_BITWORD FOLLOW_77_in_tffUnitaryFormula3553_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1622
static  ANTLR3_BITSET_LIST FOLLOW_77_in_tffUnitaryFormula3553	= { FOLLOW_77_in_tffUnitaryFormula3553_bits, 1	};
1623
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555  */
1624
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555_bits[]	= { ANTLR3_UINT64_LIT(0xA922004E26020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1625
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555	= { FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555_bits, 2	};
1626
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563  */
1627
static	ANTLR3_BITWORD FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1628
static  ANTLR3_BITSET_LIST FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563	= { FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563_bits, 1	};
1629
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566  */
1630
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1631
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566	= { FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566_bits, 2	};
1632
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffFormula_in_tffUnitaryFormula3572  */
1633
static	ANTLR3_BITWORD FOLLOW_tffFormula_in_tffUnitaryFormula3572_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1634
static  ANTLR3_BITSET_LIST FOLLOW_tffFormula_in_tffUnitaryFormula3572	= { FOLLOW_tffFormula_in_tffUnitaryFormula3572_bits, 1	};
1635
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585  */
1636
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1637
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585	= { FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585_bits, 1	};
1638
/** Bitset defining follow set for error recovery in rule state: FOLLOW_75_in_tffUnitaryFormula3591  */
1639
static	ANTLR3_BITWORD FOLLOW_75_in_tffUnitaryFormula3591_bits[]	= { ANTLR3_UINT64_LIT(0x0000000800000000) };
1640
static  ANTLR3_BITSET_LIST FOLLOW_75_in_tffUnitaryFormula3591	= { FOLLOW_75_in_tffUnitaryFormula3591_bits, 1	};
1641
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593  */
1642
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593_bits[]	= { ANTLR3_UINT64_LIT(0xAD22014E37020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1643
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593	= { FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593_bits, 2	};
1644
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601  */
1645
static	ANTLR3_BITWORD FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000800) };
1646
static  ANTLR3_BITSET_LIST FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601	= { FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601_bits, 1	};
1647
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604  */
1648
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1649
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604	= { FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604_bits, 2	};
1650
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffFormula_in_tffUnitaryFormula3610  */
1651
static	ANTLR3_BITWORD FOLLOW_tffFormula_in_tffUnitaryFormula3610_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1652
static  ANTLR3_BITSET_LIST FOLLOW_tffFormula_in_tffUnitaryFormula3610	= { FOLLOW_tffFormula_in_tffUnitaryFormula3610_bits, 1	};
1653
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623  */
1654
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1655
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623	= { FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623_bits, 1	};
1656
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_tffLetTermDefn3643  */
1657
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_tffLetTermDefn3643_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
1658
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_tffLetTermDefn3643	= { FOLLOW_FORALL_TOK_in_tffLetTermDefn3643_bits, 1	};
1659
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645  */
1660
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1661
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645	= { FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645_bits, 1	};
1662
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffVariableList_in_tffLetTermDefn3647  */
1663
static	ANTLR3_BITWORD FOLLOW_tffVariableList_in_tffLetTermDefn3647_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000000) };
1664
static  ANTLR3_BITSET_LIST FOLLOW_tffVariableList_in_tffLetTermDefn3647	= { FOLLOW_tffVariableList_in_tffLetTermDefn3647_bits, 1	};
1665
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650  */
1666
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1667
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650	= { FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650_bits, 1	};
1668
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_tffLetTermDefn3652  */
1669
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_tffLetTermDefn3652_bits[]	= { ANTLR3_UINT64_LIT(0xA922004E26020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1670
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_tffLetTermDefn3652	= { FOLLOW_COLON_TOK_in_tffLetTermDefn3652_bits, 2	};
1671
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660  */
1672
static	ANTLR3_BITWORD FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1673
static  ANTLR3_BITSET_LIST FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660	= { FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660_bits, 1	};
1674
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_tffLetTermBinding3675  */
1675
static	ANTLR3_BITWORD FOLLOW_term_in_tffLetTermBinding3675_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000200000) };
1676
static  ANTLR3_BITSET_LIST FOLLOW_term_in_tffLetTermBinding3675	= { FOLLOW_term_in_tffLetTermBinding3675_bits, 1	};
1677
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678  */
1678
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678_bits[]	= { ANTLR3_UINT64_LIT(0xA922004622020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1679
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678	= { FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678_bits, 2	};
1680
/** Bitset defining follow set for error recovery in rule state: FOLLOW_term_in_tffLetTermBinding3680  */
1681
static	ANTLR3_BITWORD FOLLOW_term_in_tffLetTermBinding3680_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1682
static  ANTLR3_BITSET_LIST FOLLOW_term_in_tffLetTermBinding3680	= { FOLLOW_term_in_tffLetTermBinding3680_bits, 1	};
1683
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691  */
1684
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691_bits[]	= { ANTLR3_UINT64_LIT(0xA922004E22020200), ANTLR3_UINT64_LIT(0x000000007DFFD105) };
1685
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691	= { FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691_bits, 2	};
1686
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693  */
1687
static	ANTLR3_BITWORD FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1688
static  ANTLR3_BITSET_LIST FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693	= { FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693_bits, 1	};
1689
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696  */
1690
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1691
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696	= { FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696_bits, 1	};
1692
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716  */
1693
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716_bits[]	= { ANTLR3_UINT64_LIT(0x0000000080000000) };
1694
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716	= { FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716_bits, 1	};
1695
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718  */
1696
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1697
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718	= { FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718_bits, 1	};
1698
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffVariableList_in_tffLetFormulaDefn3720  */
1699
static	ANTLR3_BITWORD FOLLOW_tffVariableList_in_tffLetFormulaDefn3720_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000000) };
1700
static  ANTLR3_BITSET_LIST FOLLOW_tffVariableList_in_tffLetFormulaDefn3720	= { FOLLOW_tffVariableList_in_tffLetFormulaDefn3720_bits, 1	};
1701
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723  */
1702
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000400) };
1703
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723	= { FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723_bits, 1	};
1704
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725  */
1705
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725_bits[]	= { ANTLR3_UINT64_LIT(0xAD22014E37020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1706
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725	= { FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725_bits, 2	};
1707
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733  */
1708
static	ANTLR3_BITWORD FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1709
static  ANTLR3_BITSET_LIST FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733	= { FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733_bits, 1	};
1710
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicFormula_in_tffLetFormulaBinding3749  */
1711
static	ANTLR3_BITWORD FOLLOW_atomicFormula_in_tffLetFormulaBinding3749_bits[]	= { ANTLR3_UINT64_LIT(0x0000000008000000) };
1712
static  ANTLR3_BITSET_LIST FOLLOW_atomicFormula_in_tffLetFormulaBinding3749	= { FOLLOW_atomicFormula_in_tffLetFormulaBinding3749_bits, 1	};
1713
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752  */
1714
static	ANTLR3_BITWORD FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752_bits[]	= { ANTLR3_UINT64_LIT(0xAD22016E37420220), ANTLR3_UINT64_LIT(0x000000007DFFFFFF) };
1715
static  ANTLR3_BITSET_LIST FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752	= { FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752_bits, 2	};
1716
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754  */
1717
static	ANTLR3_BITWORD FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1718
static  ANTLR3_BITSET_LIST FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754	= { FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754_bits, 1	};
1719
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765  */
1720
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765_bits[]	= { ANTLR3_UINT64_LIT(0xAD22014E33020220), ANTLR3_UINT64_LIT(0x000000007DFFD77F) };
1721
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765	= { FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765_bits, 2	};
1722
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767  */
1723
static	ANTLR3_BITWORD FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1724
static  ANTLR3_BITSET_LIST FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767	= { FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767_bits, 1	};
1725
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770  */
1726
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1727
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770	= { FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770_bits, 1	};
1728
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UPPER_WORD_in_thfBindVariable3789  */
1729
static	ANTLR3_BITWORD FOLLOW_UPPER_WORD_in_thfBindVariable3789_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000402) };
1730
static  ANTLR3_BITSET_LIST FOLLOW_UPPER_WORD_in_thfBindVariable3789	= { FOLLOW_UPPER_WORD_in_thfBindVariable3789_bits, 1	};
1731
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_thfBindVariable3803  */
1732
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_thfBindVariable3803_bits[]	= { ANTLR3_UINT64_LIT(0x0922000EA2004200) };
1733
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_thfBindVariable3803	= { FOLLOW_COLON_TOK_in_thfBindVariable3803_bits, 1	};
1734
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseThfType_in_thfBindVariable3805  */
1735
static	ANTLR3_BITWORD FOLLOW_parseThfType_in_thfBindVariable3805_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1736
static  ANTLR3_BITSET_LIST FOLLOW_parseThfType_in_thfBindVariable3805	= { FOLLOW_parseThfType_in_thfBindVariable3805_bits, 1	};
1737
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UPPER_WORD_in_tffbindvariable3835  */
1738
static	ANTLR3_BITWORD FOLLOW_UPPER_WORD_in_tffbindvariable3835_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000402) };
1739
static  ANTLR3_BITSET_LIST FOLLOW_UPPER_WORD_in_tffbindvariable3835	= { FOLLOW_UPPER_WORD_in_tffbindvariable3835_bits, 1	};
1740
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_tffbindvariable3843  */
1741
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_tffbindvariable3843_bits[]	= { ANTLR3_UINT64_LIT(0x0922000E22004200) };
1742
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_tffbindvariable3843	= { FOLLOW_COLON_TOK_in_tffbindvariable3843_bits, 1	};
1743
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseType_in_tffbindvariable3845  */
1744
static	ANTLR3_BITWORD FOLLOW_parseType_in_tffbindvariable3845_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1745
static  ANTLR3_BITSET_LIST FOLLOW_parseType_in_tffbindvariable3845	= { FOLLOW_parseType_in_tffbindvariable3845_bits, 1	};
1746
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffbindvariable_in_tffVariableList3876  */
1747
static	ANTLR3_BITWORD FOLLOW_tffbindvariable_in_tffVariableList3876_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000802) };
1748
static  ANTLR3_BITSET_LIST FOLLOW_tffbindvariable_in_tffVariableList3876	= { FOLLOW_tffbindvariable_in_tffVariableList3876_bits, 1	};
1749
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_tffVariableList3887  */
1750
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_tffVariableList3887_bits[]	= { ANTLR3_UINT64_LIT(0x2000000000000000) };
1751
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_tffVariableList3887	= { FOLLOW_COMMA_TOK_in_tffVariableList3887_bits, 1	};
1752
/** Bitset defining follow set for error recovery in rule state: FOLLOW_tffbindvariable_in_tffVariableList3889  */
1753
static	ANTLR3_BITWORD FOLLOW_tffbindvariable_in_tffVariableList3889_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000802) };
1754
static  ANTLR3_BITSET_LIST FOLLOW_tffbindvariable_in_tffVariableList3889	= { FOLLOW_tffbindvariable_in_tffVariableList3889_bits, 1	};
1755
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfType_in_parseThfType3915  */
1756
static	ANTLR3_BITWORD FOLLOW_thfType_in_parseThfType3915_bits[]	= { ANTLR3_UINT64_LIT(0x0200000000000082) };
1757
static  ANTLR3_BITSET_LIST FOLLOW_thfType_in_parseThfType3915	= { FOLLOW_thfType_in_parseThfType3915_bits, 1	};
1758
/** Bitset defining follow set for error recovery in rule state: FOLLOW_set_in_parseThfType3931  */
1759
static	ANTLR3_BITWORD FOLLOW_set_in_parseThfType3931_bits[]	= { ANTLR3_UINT64_LIT(0x0922000EA2004200) };
1760
static  ANTLR3_BITSET_LIST FOLLOW_set_in_parseThfType3931	= { FOLLOW_set_in_parseThfType3931_bits, 1	};
1761
/** Bitset defining follow set for error recovery in rule state: FOLLOW_thfType_in_parseThfType3939  */
1762
static	ANTLR3_BITWORD FOLLOW_thfType_in_parseThfType3939_bits[]	= { ANTLR3_UINT64_LIT(0x0200000000000082) };
1763
static  ANTLR3_BITSET_LIST FOLLOW_thfType_in_parseThfType3939	= { FOLLOW_thfType_in_parseThfType3939_bits, 1	};
1764
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_thfType3970  */
1765
static	ANTLR3_BITWORD FOLLOW_simpleType_in_thfType3970_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1766
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_thfType3970	= { FOLLOW_simpleType_in_thfType3970_bits, 1	};
1767
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_thfType3979  */
1768
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_thfType3979_bits[]	= { ANTLR3_UINT64_LIT(0x0922000EA2004200) };
1769
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_thfType3979	= { FOLLOW_LPAREN_TOK_in_thfType3979_bits, 1	};
1770
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseThfType_in_thfType3981  */
1771
static	ANTLR3_BITWORD FOLLOW_parseThfType_in_thfType3981_bits[]	= { ANTLR3_UINT64_LIT(0x0000800000000000) };
1772
static  ANTLR3_BITSET_LIST FOLLOW_parseThfType_in_thfType3981	= { FOLLOW_parseThfType_in_thfType3981_bits, 1	};
1773
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_thfType3984  */
1774
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_thfType3984_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1775
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_thfType3984	= { FOLLOW_RPAREN_TOK_in_thfType3984_bits, 1	};
1776
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_thfType3992  */
1777
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_thfType3992_bits[]	= { ANTLR3_UINT64_LIT(0x0922000EA2004200) };
1778
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_thfType3992	= { FOLLOW_LBRACK_TOK_in_thfType3992_bits, 1	};
1779
/** Bitset defining follow set for error recovery in rule state: FOLLOW_parseThfType_in_thfType3996  */
1780
static	ANTLR3_BITWORD FOLLOW_parseThfType_in_thfType3996_bits[]	= { ANTLR3_UINT64_LIT(0x0000040000000000) };
1781
static  ANTLR3_BITSET_LIST FOLLOW_parseThfType_in_thfType3996	= { FOLLOW_parseThfType_in_thfType3996_bits, 1	};
1782
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_thfType3999  */
1783
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_thfType3999_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1784
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_thfType3999	= { FOLLOW_RBRACK_TOK_in_thfType3999_bits, 1	};
1785
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_parseType4018  */
1786
static	ANTLR3_BITWORD FOLLOW_simpleType_in_parseType4018_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1787
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_parseType4018	= { FOLLOW_simpleType_in_parseType4018_bits, 1	};
1788
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_parseType4027  */
1789
static	ANTLR3_BITWORD FOLLOW_simpleType_in_parseType4027_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000080) };
1790
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_parseType4027	= { FOLLOW_simpleType_in_parseType4027_bits, 1	};
1791
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_parseType4038  */
1792
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_parseType4038_bits[]	= { ANTLR3_UINT64_LIT(0x0922000622004200) };
1793
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_parseType4038	= { FOLLOW_LPAREN_TOK_in_parseType4038_bits, 1	};
1794
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_parseType4040  */
1795
static	ANTLR3_BITWORD FOLLOW_simpleType_in_parseType4040_bits[]	= { ANTLR3_UINT64_LIT(0x0200000000000000) };
1796
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_parseType4040	= { FOLLOW_simpleType_in_parseType4040_bits, 1	};
1797
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TIMES_TOK_in_parseType4053  */
1798
static	ANTLR3_BITWORD FOLLOW_TIMES_TOK_in_parseType4053_bits[]	= { ANTLR3_UINT64_LIT(0x0922000622004200) };
1799
static  ANTLR3_BITSET_LIST FOLLOW_TIMES_TOK_in_parseType4053	= { FOLLOW_TIMES_TOK_in_parseType4053_bits, 1	};
1800
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_parseType4055  */
1801
static	ANTLR3_BITWORD FOLLOW_simpleType_in_parseType4055_bits[]	= { ANTLR3_UINT64_LIT(0x0200800000000000) };
1802
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_parseType4055	= { FOLLOW_simpleType_in_parseType4055_bits, 1	};
1803
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_parseType4069  */
1804
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_parseType4069_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000080) };
1805
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_parseType4069	= { FOLLOW_RPAREN_TOK_in_parseType4069_bits, 1	};
1806
/** Bitset defining follow set for error recovery in rule state: FOLLOW_ARROW_TOK_in_parseType4081  */
1807
static	ANTLR3_BITWORD FOLLOW_ARROW_TOK_in_parseType4081_bits[]	= { ANTLR3_UINT64_LIT(0x0922000622004200) };
1808
static  ANTLR3_BITSET_LIST FOLLOW_ARROW_TOK_in_parseType4081	= { FOLLOW_ARROW_TOK_in_parseType4081_bits, 1	};
1809
/** Bitset defining follow set for error recovery in rule state: FOLLOW_simpleType_in_parseType4083  */
1810
static	ANTLR3_BITWORD FOLLOW_simpleType_in_parseType4083_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1811
static  ANTLR3_BITSET_LIST FOLLOW_simpleType_in_parseType4083	= { FOLLOW_simpleType_in_parseType4083_bits, 1	};
1812
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DEFINED_SYMBOL_in_simpleType4110  */
1813
static	ANTLR3_BITWORD FOLLOW_DEFINED_SYMBOL_in_simpleType4110_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1814
static  ANTLR3_BITSET_LIST FOLLOW_DEFINED_SYMBOL_in_simpleType4110	= { FOLLOW_DEFINED_SYMBOL_in_simpleType4110_bits, 1	};
1815
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicWord_in_simpleType4122  */
1816
static	ANTLR3_BITWORD FOLLOW_atomicWord_in_simpleType4122_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1817
static  ANTLR3_BITSET_LIST FOLLOW_atomicWord_in_simpleType4122	= { FOLLOW_atomicWord_in_simpleType4122_bits, 1	};
1818
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LPAREN_TOK_in_anything4147  */
1819
static	ANTLR3_BITWORD FOLLOW_LPAREN_TOK_in_anything4147_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
1820
static  ANTLR3_BITSET_LIST FOLLOW_LPAREN_TOK_in_anything4147	= { FOLLOW_LPAREN_TOK_in_anything4147_bits, 1	};
1821
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_anything4149  */
1822
static	ANTLR3_BITWORD FOLLOW_anything_in_anything4149_bits[]	= { ANTLR3_UINT64_LIT(0x2F22FB7EBF6B4E20) };
1823
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_anything4149	= { FOLLOW_anything_in_anything4149_bits, 1	};
1824
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RPAREN_TOK_in_anything4152  */
1825
static	ANTLR3_BITWORD FOLLOW_RPAREN_TOK_in_anything4152_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1826
static  ANTLR3_BITSET_LIST FOLLOW_RPAREN_TOK_in_anything4152	= { FOLLOW_RPAREN_TOK_in_anything4152_bits, 1	};
1827
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LBRACK_TOK_in_anything4158  */
1828
static	ANTLR3_BITWORD FOLLOW_LBRACK_TOK_in_anything4158_bits[]	= { ANTLR3_UINT64_LIT(0x2F227F7EBF6B4E20) };
1829
static  ANTLR3_BITSET_LIST FOLLOW_LBRACK_TOK_in_anything4158	= { FOLLOW_LBRACK_TOK_in_anything4158_bits, 1	};
1830
/** Bitset defining follow set for error recovery in rule state: FOLLOW_anything_in_anything4160  */
1831
static	ANTLR3_BITWORD FOLLOW_anything_in_anything4160_bits[]	= { ANTLR3_UINT64_LIT(0x2F227F7EBF6B4E20) };
1832
static  ANTLR3_BITSET_LIST FOLLOW_anything_in_anything4160	= { FOLLOW_anything_in_anything4160_bits, 1	};
1833
/** Bitset defining follow set for error recovery in rule state: FOLLOW_RBRACK_TOK_in_anything4163  */
1834
static	ANTLR3_BITWORD FOLLOW_RBRACK_TOK_in_anything4163_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1835
static  ANTLR3_BITSET_LIST FOLLOW_RBRACK_TOK_in_anything4163	= { FOLLOW_RBRACK_TOK_in_anything4163_bits, 1	};
1836
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COMMA_TOK_in_anything4169  */
1837
static	ANTLR3_BITWORD FOLLOW_COMMA_TOK_in_anything4169_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1838
static  ANTLR3_BITSET_LIST FOLLOW_COMMA_TOK_in_anything4169	= { FOLLOW_COMMA_TOK_in_anything4169_bits, 1	};
1839
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DOT_TOK_in_anything4175  */
1840
static	ANTLR3_BITWORD FOLLOW_DOT_TOK_in_anything4175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1841
static  ANTLR3_BITSET_LIST FOLLOW_DOT_TOK_in_anything4175	= { FOLLOW_DOT_TOK_in_anything4175_bits, 1	};
1842
/** Bitset defining follow set for error recovery in rule state: FOLLOW_COLON_TOK_in_anything4181  */
1843
static	ANTLR3_BITWORD FOLLOW_COLON_TOK_in_anything4181_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1844
static  ANTLR3_BITSET_LIST FOLLOW_COLON_TOK_in_anything4181	= { FOLLOW_COLON_TOK_in_anything4181_bits, 1	};
1845
/** Bitset defining follow set for error recovery in rule state: FOLLOW_OR_TOK_in_anything4187  */
1846
static	ANTLR3_BITWORD FOLLOW_OR_TOK_in_anything4187_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1847
static  ANTLR3_BITSET_LIST FOLLOW_OR_TOK_in_anything4187	= { FOLLOW_OR_TOK_in_anything4187_bits, 1	};
1848
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NOT_TOK_in_anything4193  */
1849
static	ANTLR3_BITWORD FOLLOW_NOT_TOK_in_anything4193_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1850
static  ANTLR3_BITSET_LIST FOLLOW_NOT_TOK_in_anything4193	= { FOLLOW_NOT_TOK_in_anything4193_bits, 1	};
1851
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FORALL_TOK_in_anything4199  */
1852
static	ANTLR3_BITWORD FOLLOW_FORALL_TOK_in_anything4199_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1853
static  ANTLR3_BITSET_LIST FOLLOW_FORALL_TOK_in_anything4199	= { FOLLOW_FORALL_TOK_in_anything4199_bits, 1	};
1854
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EXISTS_TOK_in_anything4205  */
1855
static	ANTLR3_BITWORD FOLLOW_EXISTS_TOK_in_anything4205_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1856
static  ANTLR3_BITSET_LIST FOLLOW_EXISTS_TOK_in_anything4205	= { FOLLOW_EXISTS_TOK_in_anything4205_bits, 1	};
1857
/** Bitset defining follow set for error recovery in rule state: FOLLOW_AND_TOK_in_anything4211  */
1858
static	ANTLR3_BITWORD FOLLOW_AND_TOK_in_anything4211_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1859
static  ANTLR3_BITSET_LIST FOLLOW_AND_TOK_in_anything4211	= { FOLLOW_AND_TOK_in_anything4211_bits, 1	};
1860
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IFF_TOK_in_anything4217  */
1861
static	ANTLR3_BITWORD FOLLOW_IFF_TOK_in_anything4217_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1862
static  ANTLR3_BITSET_LIST FOLLOW_IFF_TOK_in_anything4217	= { FOLLOW_IFF_TOK_in_anything4217_bits, 1	};
1863
/** Bitset defining follow set for error recovery in rule state: FOLLOW_IMPLIES_TOK_in_anything4223  */
1864
static	ANTLR3_BITWORD FOLLOW_IMPLIES_TOK_in_anything4223_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1865
static  ANTLR3_BITSET_LIST FOLLOW_IMPLIES_TOK_in_anything4223	= { FOLLOW_IMPLIES_TOK_in_anything4223_bits, 1	};
1866
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVIMPLIES_TOK_in_anything4229  */
1867
static	ANTLR3_BITWORD FOLLOW_REVIMPLIES_TOK_in_anything4229_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1868
static  ANTLR3_BITSET_LIST FOLLOW_REVIMPLIES_TOK_in_anything4229	= { FOLLOW_REVIMPLIES_TOK_in_anything4229_bits, 1	};
1869
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVIFF_TOK_in_anything4235  */
1870
static	ANTLR3_BITWORD FOLLOW_REVIFF_TOK_in_anything4235_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1871
static  ANTLR3_BITSET_LIST FOLLOW_REVIFF_TOK_in_anything4235	= { FOLLOW_REVIFF_TOK_in_anything4235_bits, 1	};
1872
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVOR_TOK_in_anything4241  */
1873
static	ANTLR3_BITWORD FOLLOW_REVOR_TOK_in_anything4241_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1874
static  ANTLR3_BITSET_LIST FOLLOW_REVOR_TOK_in_anything4241	= { FOLLOW_REVOR_TOK_in_anything4241_bits, 1	};
1875
/** Bitset defining follow set for error recovery in rule state: FOLLOW_REVAND_TOK_in_anything4247  */
1876
static	ANTLR3_BITWORD FOLLOW_REVAND_TOK_in_anything4247_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1877
static  ANTLR3_BITSET_LIST FOLLOW_REVAND_TOK_in_anything4247	= { FOLLOW_REVAND_TOK_in_anything4247_bits, 1	};
1878
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TIMES_TOK_in_anything4253  */
1879
static	ANTLR3_BITWORD FOLLOW_TIMES_TOK_in_anything4253_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1880
static  ANTLR3_BITSET_LIST FOLLOW_TIMES_TOK_in_anything4253	= { FOLLOW_TIMES_TOK_in_anything4253_bits, 1	};
1881
/** Bitset defining follow set for error recovery in rule state: FOLLOW_PLUS_TOK_in_anything4259  */
1882
static	ANTLR3_BITWORD FOLLOW_PLUS_TOK_in_anything4259_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1883
static  ANTLR3_BITSET_LIST FOLLOW_PLUS_TOK_in_anything4259	= { FOLLOW_PLUS_TOK_in_anything4259_bits, 1	};
1884
/** Bitset defining follow set for error recovery in rule state: FOLLOW_MINUS_TOK_in_anything4265  */
1885
static	ANTLR3_BITWORD FOLLOW_MINUS_TOK_in_anything4265_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1886
static  ANTLR3_BITSET_LIST FOLLOW_MINUS_TOK_in_anything4265	= { FOLLOW_MINUS_TOK_in_anything4265_bits, 1	};
1887
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TRUE_TOK_in_anything4271  */
1888
static	ANTLR3_BITWORD FOLLOW_TRUE_TOK_in_anything4271_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1889
static  ANTLR3_BITSET_LIST FOLLOW_TRUE_TOK_in_anything4271	= { FOLLOW_TRUE_TOK_in_anything4271_bits, 1	};
1890
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FALSE_TOK_in_anything4277  */
1891
static	ANTLR3_BITWORD FOLLOW_FALSE_TOK_in_anything4277_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1892
static  ANTLR3_BITSET_LIST FOLLOW_FALSE_TOK_in_anything4277	= { FOLLOW_FALSE_TOK_in_anything4277_bits, 1	};
1893
/** Bitset defining follow set for error recovery in rule state: FOLLOW_EQUAL_TOK_in_anything4283  */
1894
static	ANTLR3_BITWORD FOLLOW_EQUAL_TOK_in_anything4283_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1895
static  ANTLR3_BITSET_LIST FOLLOW_EQUAL_TOK_in_anything4283	= { FOLLOW_EQUAL_TOK_in_anything4283_bits, 1	};
1896
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISEQUAL_TOK_in_anything4289  */
1897
static	ANTLR3_BITWORD FOLLOW_DISEQUAL_TOK_in_anything4289_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1898
static  ANTLR3_BITSET_LIST FOLLOW_DISEQUAL_TOK_in_anything4289	= { FOLLOW_DISEQUAL_TOK_in_anything4289_bits, 1	};
1899
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CNF_TOK_in_anything4295  */
1900
static	ANTLR3_BITWORD FOLLOW_CNF_TOK_in_anything4295_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1901
static  ANTLR3_BITSET_LIST FOLLOW_CNF_TOK_in_anything4295	= { FOLLOW_CNF_TOK_in_anything4295_bits, 1	};
1902
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FOF_TOK_in_anything4301  */
1903
static	ANTLR3_BITWORD FOLLOW_FOF_TOK_in_anything4301_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1904
static  ANTLR3_BITSET_LIST FOLLOW_FOF_TOK_in_anything4301	= { FOLLOW_FOF_TOK_in_anything4301_bits, 1	};
1905
/** Bitset defining follow set for error recovery in rule state: FOLLOW_THF_TOK_in_anything4307  */
1906
static	ANTLR3_BITWORD FOLLOW_THF_TOK_in_anything4307_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1907
static  ANTLR3_BITSET_LIST FOLLOW_THF_TOK_in_anything4307	= { FOLLOW_THF_TOK_in_anything4307_bits, 1	};
1908
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TFF_TOK_in_anything4313  */
1909
static	ANTLR3_BITWORD FOLLOW_TFF_TOK_in_anything4313_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1910
static  ANTLR3_BITSET_LIST FOLLOW_TFF_TOK_in_anything4313	= { FOLLOW_TFF_TOK_in_anything4313_bits, 1	};
1911
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_anything4319  */
1912
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_anything4319_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1913
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_anything4319	= { FOLLOW_TYPE_TOK_in_anything4319_bits, 1	};
1914
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INCLUDE_TOK_in_anything4325  */
1915
static	ANTLR3_BITWORD FOLLOW_INCLUDE_TOK_in_anything4325_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1916
static  ANTLR3_BITSET_LIST FOLLOW_INCLUDE_TOK_in_anything4325	= { FOLLOW_INCLUDE_TOK_in_anything4325_bits, 1	};
1917
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DISTINCT_OBJECT_in_anything4331  */
1918
static	ANTLR3_BITWORD FOLLOW_DISTINCT_OBJECT_in_anything4331_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1919
static  ANTLR3_BITSET_LIST FOLLOW_DISTINCT_OBJECT_in_anything4331	= { FOLLOW_DISTINCT_OBJECT_in_anything4331_bits, 1	};
1920
/** Bitset defining follow set for error recovery in rule state: FOLLOW_UPPER_WORD_in_anything4337  */
1921
static	ANTLR3_BITWORD FOLLOW_UPPER_WORD_in_anything4337_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1922
static  ANTLR3_BITSET_LIST FOLLOW_UPPER_WORD_in_anything4337	= { FOLLOW_UPPER_WORD_in_anything4337_bits, 1	};
1923
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_in_anything4343  */
1924
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_in_anything4343_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1925
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_in_anything4343	= { FOLLOW_LOWER_WORD_in_anything4343_bits, 1	};
1926
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349  */
1927
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1928
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349	= { FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349_bits, 1	};
1929
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SINGLE_QUOTED_in_anything4355  */
1930
static	ANTLR3_BITWORD FOLLOW_SINGLE_QUOTED_in_anything4355_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1931
static  ANTLR3_BITSET_LIST FOLLOW_SINGLE_QUOTED_in_anything4355	= { FOLLOW_SINGLE_QUOTED_in_anything4355_bits, 1	};
1932
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NUMBER_in_anything4361  */
1933
static	ANTLR3_BITWORD FOLLOW_NUMBER_in_anything4361_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1934
static  ANTLR3_BITSET_LIST FOLLOW_NUMBER_in_anything4361	= { FOLLOW_NUMBER_in_anything4361_bits, 1	};
1935
/** Bitset defining follow set for error recovery in rule state: FOLLOW_DEFINED_SYMBOL_in_anything4367  */
1936
static	ANTLR3_BITWORD FOLLOW_DEFINED_SYMBOL_in_anything4367_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1937
static  ANTLR3_BITSET_LIST FOLLOW_DEFINED_SYMBOL_in_anything4367	= { FOLLOW_DEFINED_SYMBOL_in_anything4367_bits, 1	};
1938
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047  */
1939
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1940
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047	= { FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047_bits, 1	};
1941
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053  */
1942
static	ANTLR3_BITWORD FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1943
static  ANTLR3_BITSET_LIST FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053	= { FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053_bits, 1	};
1944
/** Bitset defining follow set for error recovery in rule state: FOLLOW_atomicWord_in_nameN5072  */
1945
static	ANTLR3_BITWORD FOLLOW_atomicWord_in_nameN5072_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1946
static  ANTLR3_BITSET_LIST FOLLOW_atomicWord_in_nameN5072	= { FOLLOW_atomicWord_in_nameN5072_bits, 1	};
1947
/** Bitset defining follow set for error recovery in rule state: FOLLOW_NUMBER_in_nameN5078  */
1948
static	ANTLR3_BITWORD FOLLOW_NUMBER_in_nameN5078_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1949
static  ANTLR3_BITSET_LIST FOLLOW_NUMBER_in_nameN5078	= { FOLLOW_NUMBER_in_nameN5078_bits, 1	};
1950
/** Bitset defining follow set for error recovery in rule state: FOLLOW_FOF_TOK_in_atomicWord5094  */
1951
static	ANTLR3_BITWORD FOLLOW_FOF_TOK_in_atomicWord5094_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1952
static  ANTLR3_BITSET_LIST FOLLOW_FOF_TOK_in_atomicWord5094	= { FOLLOW_FOF_TOK_in_atomicWord5094_bits, 1	};
1953
/** Bitset defining follow set for error recovery in rule state: FOLLOW_CNF_TOK_in_atomicWord5105  */
1954
static	ANTLR3_BITWORD FOLLOW_CNF_TOK_in_atomicWord5105_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1955
static  ANTLR3_BITSET_LIST FOLLOW_CNF_TOK_in_atomicWord5105	= { FOLLOW_CNF_TOK_in_atomicWord5105_bits, 1	};
1956
/** Bitset defining follow set for error recovery in rule state: FOLLOW_THF_TOK_in_atomicWord5116  */
1957
static	ANTLR3_BITWORD FOLLOW_THF_TOK_in_atomicWord5116_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1958
static  ANTLR3_BITSET_LIST FOLLOW_THF_TOK_in_atomicWord5116	= { FOLLOW_THF_TOK_in_atomicWord5116_bits, 1	};
1959
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TFF_TOK_in_atomicWord5127  */
1960
static	ANTLR3_BITWORD FOLLOW_TFF_TOK_in_atomicWord5127_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1961
static  ANTLR3_BITSET_LIST FOLLOW_TFF_TOK_in_atomicWord5127	= { FOLLOW_TFF_TOK_in_atomicWord5127_bits, 1	};
1962
/** Bitset defining follow set for error recovery in rule state: FOLLOW_TYPE_TOK_in_atomicWord5138  */
1963
static	ANTLR3_BITWORD FOLLOW_TYPE_TOK_in_atomicWord5138_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1964
static  ANTLR3_BITSET_LIST FOLLOW_TYPE_TOK_in_atomicWord5138	= { FOLLOW_TYPE_TOK_in_atomicWord5138_bits, 1	};
1965
/** Bitset defining follow set for error recovery in rule state: FOLLOW_INCLUDE_TOK_in_atomicWord5148  */
1966
static	ANTLR3_BITWORD FOLLOW_INCLUDE_TOK_in_atomicWord5148_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1967
static  ANTLR3_BITSET_LIST FOLLOW_INCLUDE_TOK_in_atomicWord5148	= { FOLLOW_INCLUDE_TOK_in_atomicWord5148_bits, 1	};
1968
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_in_atomicWord5155  */
1969
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_in_atomicWord5155_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1970
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_in_atomicWord5155	= { FOLLOW_LOWER_WORD_in_atomicWord5155_bits, 1	};
1971
/** Bitset defining follow set for error recovery in rule state: FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163  */
1972
static	ANTLR3_BITWORD FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1973
static  ANTLR3_BITSET_LIST FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163	= { FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163_bits, 1	};
1974
/** Bitset defining follow set for error recovery in rule state: FOLLOW_SINGLE_QUOTED_in_atomicWord5175  */
1975
static	ANTLR3_BITWORD FOLLOW_SINGLE_QUOTED_in_atomicWord5175_bits[]	= { ANTLR3_UINT64_LIT(0x0000000000000002) };
1976
static  ANTLR3_BITSET_LIST FOLLOW_SINGLE_QUOTED_in_atomicWord5175	= { FOLLOW_SINGLE_QUOTED_in_atomicWord5175_bits, 1	};
1977
1978
1979
/* ==============================================
1980
 * Parsing rules
1981
 */
1982
/**
1983
 * $ANTLR start parseExpr
1984
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:133:1: parseExpr returns [cvc5::parser::tptp::myExpr expr] : ( cnfFormula[expr] | EOF );
1985
 */
1986
static cvc5::parser::tptp::myExpr
1987
parseExpr(pTptpParser ctx)
1988
{
1989
    cvc5::parser::tptp::myExpr expr;
1990
1991
1992
    /* Initialize rule variables
1993
     */
1994
1995
    {
1996
        {
1997
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:134:3: ( cnfFormula[expr] | EOF )
1998
1999
            ANTLR3_UINT32 alt1;
2000
2001
            alt1=2;
2002
2003
            switch ( LA(1) )
2004
            {
2005
            case AND_TOK:
2006
            case CNF_TOK:
2007
            case DISTINCT_OBJECT:
2008
            case FALSE_TOK:
2009
            case FOF_TOK:
2010
            case IMPLIES_TOK:
2011
            case INCLUDE_TOK:
2012
            case LOWER_WORD:
2013
            case LOWER_WORD_SINGLE_QUOTED:
2014
            case LPAREN_TOK:
2015
            case NOT_TOK:
2016
            case NUMBER:
2017
            case OR_TOK:
2018
            case SINGLE_QUOTED:
2019
            case TFF_TOK:
2020
            case THF_TOK:
2021
            case TRUE_TOK:
2022
            case TYPE_TOK:
2023
            case UPPER_WORD:
2024
            case 63:
2025
            case 64:
2026
            case 65:
2027
            case 66:
2028
            case 67:
2029
            case 68:
2030
            case 69:
2031
            case 70:
2032
            case 72:
2033
            case 73:
2034
            case 74:
2035
            case 76:
2036
            case 78:
2037
            case 79:
2038
            case 80:
2039
            case 81:
2040
            case 82:
2041
            case 83:
2042
            case 84:
2043
            case 85:
2044
            case 86:
2045
            case 87:
2046
            case 88:
2047
            case 90:
2048
            case 91:
2049
            case 92:
2050
            case 93:
2051
            case 94:
2052
            	{
2053
            		alt1=1;
2054
            	}
2055
                break;
2056
            case EOF:
2057
            	{
2058
            		alt1=2;
2059
            	}
2060
                break;
2061
2062
            default:
2063
                CONSTRUCTEX();
2064
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
2065
                EXCEPTION->message      = (void *)"";
2066
                EXCEPTION->decisionNum  = 1;
2067
                EXCEPTION->state        = 0;
2068
2069
2070
                goto ruleparseExprEx;
2071
2072
            }
2073
2074
            switch (alt1)
2075
            {
2076
        	case 1:
2077
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:134:5: cnfFormula[expr]
2078
        	    {
2079
        	        FOLLOWPUSH(FOLLOW_cnfFormula_in_parseExpr112);
2080
        	        cnfFormula(ctx, expr);
2081
2082
        	        FOLLOWPOP();
2083
        	        if  (HASEXCEPTION())
2084
        	        {
2085
        	            goto ruleparseExprEx;
2086
        	        }
2087
2088
2089
        	    }
2090
        	    break;
2091
        	case 2:
2092
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:135:5: EOF
2093
        	    {
2094
        	         MATCHT(EOF, &FOLLOW_EOF_in_parseExpr119);
2095
        	        if  (HASEXCEPTION())
2096
        	        {
2097
        	            goto ruleparseExprEx;
2098
        	        }
2099
2100
2101
        	    }
2102
        	    break;
2103
2104
            }
2105
        }
2106
    }
2107
2108
    // This is where rules clean up and exit
2109
    //
2110
    goto ruleparseExprEx; /* Prevent compiler warnings */
2111
    ruleparseExprEx: ;
2112
2113
            if (HASEXCEPTION())
2114
            {
2115
                PREPORTERROR();
2116
                PRECOVER();
2117
            }
2118
    return expr;
2119
}
2120
/* $ANTLR end parseExpr */
2121
2122
/**
2123
 * $ANTLR start parseCommand
2124
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:142:1: parseCommand returns [cvc5::Command* cmd = NULL] : ( CNF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK cnfFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK | FOF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK fofFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK | TFF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK tffTypedAtom[cmd] | formulaRole[fr] COMMA_TOK tffFormula[expr] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK | THF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK thfAtomTyping[cmd] | formulaRole[fr] COMMA_TOK thfLogicFormula[p] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK | INCLUDE_TOK LPAREN_TOK unquotedFileName[name] ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )? RPAREN_TOK DOT_TOK | EOF );
2125
 */
2126
static cvc5::Command*
2127
1733
parseCommand(pTptpParser ctx)
2128
{
2129
    cvc5::Command* cmd;
2130
2131
2132
2133
3466
      cvc5::api::Term expr;
2134
      Tptp::FormulaRole fr;
2135
3466
      std::string name, inclSymbol;
2136
3466
      ParseOp p;
2137
2138
    /* Initialize rule variables
2139
     */
2140
1733
    cmd =  NULL;
2141
2142
2143
    {
2144
        {
2145
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:149:3: ( CNF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK cnfFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK | FOF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK fofFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK | TFF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK tffTypedAtom[cmd] | formulaRole[fr] COMMA_TOK tffFormula[expr] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK | THF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK thfAtomTyping[cmd] | formulaRole[fr] COMMA_TOK thfLogicFormula[p] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK | INCLUDE_TOK LPAREN_TOK unquotedFileName[name] ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )? RPAREN_TOK DOT_TOK | EOF )
2146
2147
            ANTLR3_UINT32 alt14;
2148
2149
1733
            alt14=6;
2150
2151
1733
            switch ( LA(1) )
2152
            {
2153
85
            case CNF_TOK:
2154
            	{
2155
85
            		alt14=1;
2156
            	}
2157
85
                break;
2158
75
            case FOF_TOK:
2159
            	{
2160
75
            		alt14=2;
2161
            	}
2162
75
                break;
2163
210
            case TFF_TOK:
2164
            	{
2165
210
            		alt14=3;
2166
            	}
2167
210
                break;
2168
1315
            case THF_TOK:
2169
            	{
2170
1315
            		alt14=4;
2171
            	}
2172
1315
                break;
2173
7
            case INCLUDE_TOK:
2174
            	{
2175
7
            		alt14=5;
2176
            	}
2177
7
                break;
2178
41
            case EOF:
2179
            	{
2180
41
            		alt14=6;
2181
            	}
2182
41
                break;
2183
2184
            default:
2185
                CONSTRUCTEX();
2186
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
2187
                EXCEPTION->message      = (void *)"";
2188
                EXCEPTION->decisionNum  = 14;
2189
                EXCEPTION->state        = 0;
2190
2191
2192
                goto ruleparseCommandEx;
2193
2194
            }
2195
2196
1733
            switch (alt14)
2197
            {
2198
85
        	case 1:
2199
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:149:5: CNF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK cnfFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK
2200
        	    {
2201
85
        	         MATCHT(CNF_TOK, &FOLLOW_CNF_TOK_in_parseCommand143);
2202
85
        	        if  (HASEXCEPTION())
2203
        	        {
2204
        	            goto ruleparseCommandEx;
2205
        	        }
2206
2207
2208
85
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand145);
2209
85
        	        if  (HASEXCEPTION())
2210
        	        {
2211
        	            goto ruleparseCommandEx;
2212
        	        }
2213
2214
2215
85
        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand147);
2216
85
        	        nameN(ctx, name);
2217
2218
85
        	        FOLLOWPOP();
2219
85
        	        if  (HASEXCEPTION())
2220
        	        {
2221
        	            goto ruleparseCommandEx;
2222
        	        }
2223
2224
2225
85
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand150);
2226
85
        	        if  (HASEXCEPTION())
2227
        	        {
2228
        	            goto ruleparseCommandEx;
2229
        	        }
2230
2231
2232
85
        	        FOLLOWPUSH(FOLLOW_formulaRole_in_parseCommand152);
2233
85
        	        formulaRole(ctx, fr);
2234
2235
85
        	        FOLLOWPOP();
2236
85
        	        if  (HASEXCEPTION())
2237
        	        {
2238
        	            goto ruleparseCommandEx;
2239
        	        }
2240
2241
2242
85
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand155);
2243
85
        	        if  (HASEXCEPTION())
2244
        	        {
2245
        	            goto ruleparseCommandEx;
2246
        	        }
2247
2248
2249
        	        {
2250
85
        	             PARSER_STATE->setCnf(true);
2251
85
        	                PARSER_STATE->setFof(false);
2252
85
        	                PARSER_STATE->pushScope();
2253
        	        }
2254
2255
2256
85
        	        FOLLOWPUSH(FOLLOW_cnfFormula_in_parseCommand165);
2257
85
        	        cnfFormula(ctx, expr);
2258
2259
85
        	        FOLLOWPOP();
2260
85
        	        if  (HASEXCEPTION())
2261
        	        {
2262
        	            goto ruleparseCommandEx;
2263
        	        }
2264
2265
2266
        	        {
2267
85
        	             PARSER_STATE->popScope();
2268
170
        	                std::vector<api::Term> bvl = PARSER_STATE->getFreeVar();
2269
85
        	                if(!bvl.empty()) {
2270
36
        	                  expr = MK_TERM(api::FORALL,MK_TERM(api::BOUND_VAR_LIST,bvl),expr);
2271
        	                };
2272
2273
        	        }
2274
2275
2276
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:160:5: ( COMMA_TOK ( anything )* )?
2277
        	        {
2278
85
        	            int alt3=2;
2279
85
        	            switch ( LA(1) )
2280
        	            {
2281
8
        	                case COMMA_TOK:
2282
        	                	{
2283
8
        	                		alt3=1;
2284
        	                	}
2285
8
        	                    break;
2286
        	            }
2287
2288
85
        	            switch (alt3)
2289
        	            {
2290
8
        	        	case 1:
2291
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:160:6: COMMA_TOK ( anything )*
2292
        	        	    {
2293
8
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand177);
2294
8
        	        	        if  (HASEXCEPTION())
2295
        	        	        {
2296
        	        	            goto ruleparseCommandEx;
2297
        	        	        }
2298
2299
2300
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:160:16: ( anything )*
2301
2302
        	        	        for (;;)
2303
        	        	        {
2304
23
        	        	            int alt2=2;
2305
23
        	        	            switch ( LA(1) )
2306
        	        	            {
2307
15
        	        	            case AND_TOK:
2308
        	        	            case CNF_TOK:
2309
        	        	            case COLON_TOK:
2310
        	        	            case COMMA_TOK:
2311
        	        	            case DEFINED_SYMBOL:
2312
        	        	            case DISEQUAL_TOK:
2313
        	        	            case DISTINCT_OBJECT:
2314
        	        	            case DOT_TOK:
2315
        	        	            case EQUAL_TOK:
2316
        	        	            case EXISTS_TOK:
2317
        	        	            case FALSE_TOK:
2318
        	        	            case FOF_TOK:
2319
        	        	            case FORALL_TOK:
2320
        	        	            case IFF_TOK:
2321
        	        	            case IMPLIES_TOK:
2322
        	        	            case INCLUDE_TOK:
2323
        	        	            case LBRACK_TOK:
2324
        	        	            case LOWER_WORD:
2325
        	        	            case LOWER_WORD_SINGLE_QUOTED:
2326
        	        	            case LPAREN_TOK:
2327
        	        	            case MINUS_TOK:
2328
        	        	            case NOT_TOK:
2329
        	        	            case NUMBER:
2330
        	        	            case OR_TOK:
2331
        	        	            case PLUS_TOK:
2332
        	        	            case REVAND_TOK:
2333
        	        	            case REVIFF_TOK:
2334
        	        	            case REVIMPLIES_TOK:
2335
        	        	            case REVOR_TOK:
2336
        	        	            case SINGLE_QUOTED:
2337
        	        	            case TFF_TOK:
2338
        	        	            case THF_TOK:
2339
        	        	            case TIMES_TOK:
2340
        	        	            case TRUE_TOK:
2341
        	        	            case TYPE_TOK:
2342
        	        	            case UPPER_WORD:
2343
        	        	            	{
2344
15
        	        	            		alt2=1;
2345
        	        	            	}
2346
15
        	        	                break;
2347
2348
        	        	            }
2349
2350
23
        	        	            switch (alt2)
2351
        	        	            {
2352
15
        	        	        	case 1:
2353
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:160:16: anything
2354
        	        	        	    {
2355
15
        	        	        	        FOLLOWPUSH(FOLLOW_anything_in_parseCommand179);
2356
15
        	        	        	        anything(ctx);
2357
2358
15
        	        	        	        FOLLOWPOP();
2359
15
        	        	        	        if  (HASEXCEPTION())
2360
        	        	        	        {
2361
        	        	        	            goto ruleparseCommandEx;
2362
        	        	        	        }
2363
2364
2365
        	        	        	    }
2366
15
        	        	        	    break;
2367
2368
8
        	        	        	default:
2369
8
        	        	        	    goto loop2;	/* break out of the loop */
2370
        	        	        	    break;
2371
        	        	            }
2372
15
        	        	        }
2373
8
        	        	        loop2: ; /* Jump out to here if this rule does not match */
2374
2375
2376
        	        	    }
2377
8
        	        	    break;
2378
2379
        	            }
2380
        	        }
2381
2382
85
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand184);
2383
85
        	        if  (HASEXCEPTION())
2384
        	        {
2385
        	            goto ruleparseCommandEx;
2386
        	        }
2387
2388
2389
85
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand186);
2390
85
        	        if  (HASEXCEPTION())
2391
        	        {
2392
        	            goto ruleparseCommandEx;
2393
        	        }
2394
2395
2396
        	        {
2397
2398
170
        	                  cvc5::api::Term aexpr = PARSER_STATE->getAssertionExpr(fr, expr);
2399
85
        	                  if( !aexpr.isNull() ){
2400
        	                    // set the expression name (e.g. used with unsat core printing)
2401
84
        	                    SYM_MAN->setExpressionName(aexpr, name, true);
2402
        	                  }
2403
        	                  // make the command to assert the formula
2404
85
        	                  cmd = PARSER_STATE->makeAssertCommand(fr, aexpr, true);
2405
2406
85
        	        }
2407
2408
2409
        	    }
2410
85
        	    break;
2411
75
        	case 2:
2412
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:170:5: FOF_TOK LPAREN_TOK nameN[name] COMMA_TOK formulaRole[fr] COMMA_TOK fofFormula[expr] ( COMMA_TOK ( anything )* )? RPAREN_TOK DOT_TOK
2413
        	    {
2414
75
        	         MATCHT(FOF_TOK, &FOLLOW_FOF_TOK_in_parseCommand198);
2415
75
        	        if  (HASEXCEPTION())
2416
        	        {
2417
        	            goto ruleparseCommandEx;
2418
        	        }
2419
2420
2421
75
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand200);
2422
75
        	        if  (HASEXCEPTION())
2423
        	        {
2424
        	            goto ruleparseCommandEx;
2425
        	        }
2426
2427
2428
75
        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand202);
2429
75
        	        nameN(ctx, name);
2430
2431
75
        	        FOLLOWPOP();
2432
75
        	        if  (HASEXCEPTION())
2433
        	        {
2434
        	            goto ruleparseCommandEx;
2435
        	        }
2436
2437
2438
75
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand205);
2439
75
        	        if  (HASEXCEPTION())
2440
        	        {
2441
        	            goto ruleparseCommandEx;
2442
        	        }
2443
2444
2445
75
        	        FOLLOWPUSH(FOLLOW_formulaRole_in_parseCommand207);
2446
75
        	        formulaRole(ctx, fr);
2447
2448
75
        	        FOLLOWPOP();
2449
75
        	        if  (HASEXCEPTION())
2450
        	        {
2451
        	            goto ruleparseCommandEx;
2452
        	        }
2453
2454
2455
75
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand210);
2456
75
        	        if  (HASEXCEPTION())
2457
        	        {
2458
        	            goto ruleparseCommandEx;
2459
        	        }
2460
2461
2462
        	        {
2463
75
        	             PARSER_STATE->setCnf(false); PARSER_STATE->setFof(true);
2464
        	        }
2465
2466
2467
75
        	        FOLLOWPUSH(FOLLOW_fofFormula_in_parseCommand222);
2468
75
        	        fofFormula(ctx, expr);
2469
2470
75
        	        FOLLOWPOP();
2471
75
        	        if  (HASEXCEPTION())
2472
        	        {
2473
        	            goto ruleparseCommandEx;
2474
        	        }
2475
2476
2477
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:172:22: ( COMMA_TOK ( anything )* )?
2478
        	        {
2479
75
        	            int alt5=2;
2480
75
        	            switch ( LA(1) )
2481
        	            {
2482
8
        	                case COMMA_TOK:
2483
        	                	{
2484
8
        	                		alt5=1;
2485
        	                	}
2486
8
        	                    break;
2487
        	            }
2488
2489
75
        	            switch (alt5)
2490
        	            {
2491
8
        	        	case 1:
2492
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:172:23: COMMA_TOK ( anything )*
2493
        	        	    {
2494
8
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand226);
2495
8
        	        	        if  (HASEXCEPTION())
2496
        	        	        {
2497
        	        	            goto ruleparseCommandEx;
2498
        	        	        }
2499
2500
2501
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:172:33: ( anything )*
2502
2503
        	        	        for (;;)
2504
        	        	        {
2505
23
        	        	            int alt4=2;
2506
23
        	        	            switch ( LA(1) )
2507
        	        	            {
2508
15
        	        	            case AND_TOK:
2509
        	        	            case CNF_TOK:
2510
        	        	            case COLON_TOK:
2511
        	        	            case COMMA_TOK:
2512
        	        	            case DEFINED_SYMBOL:
2513
        	        	            case DISEQUAL_TOK:
2514
        	        	            case DISTINCT_OBJECT:
2515
        	        	            case DOT_TOK:
2516
        	        	            case EQUAL_TOK:
2517
        	        	            case EXISTS_TOK:
2518
        	        	            case FALSE_TOK:
2519
        	        	            case FOF_TOK:
2520
        	        	            case FORALL_TOK:
2521
        	        	            case IFF_TOK:
2522
        	        	            case IMPLIES_TOK:
2523
        	        	            case INCLUDE_TOK:
2524
        	        	            case LBRACK_TOK:
2525
        	        	            case LOWER_WORD:
2526
        	        	            case LOWER_WORD_SINGLE_QUOTED:
2527
        	        	            case LPAREN_TOK:
2528
        	        	            case MINUS_TOK:
2529
        	        	            case NOT_TOK:
2530
        	        	            case NUMBER:
2531
        	        	            case OR_TOK:
2532
        	        	            case PLUS_TOK:
2533
        	        	            case REVAND_TOK:
2534
        	        	            case REVIFF_TOK:
2535
        	        	            case REVIMPLIES_TOK:
2536
        	        	            case REVOR_TOK:
2537
        	        	            case SINGLE_QUOTED:
2538
        	        	            case TFF_TOK:
2539
        	        	            case THF_TOK:
2540
        	        	            case TIMES_TOK:
2541
        	        	            case TRUE_TOK:
2542
        	        	            case TYPE_TOK:
2543
        	        	            case UPPER_WORD:
2544
        	        	            	{
2545
15
        	        	            		alt4=1;
2546
        	        	            	}
2547
15
        	        	                break;
2548
2549
        	        	            }
2550
2551
23
        	        	            switch (alt4)
2552
        	        	            {
2553
15
        	        	        	case 1:
2554
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:172:33: anything
2555
        	        	        	    {
2556
15
        	        	        	        FOLLOWPUSH(FOLLOW_anything_in_parseCommand228);
2557
15
        	        	        	        anything(ctx);
2558
2559
15
        	        	        	        FOLLOWPOP();
2560
15
        	        	        	        if  (HASEXCEPTION())
2561
        	        	        	        {
2562
        	        	        	            goto ruleparseCommandEx;
2563
        	        	        	        }
2564
2565
2566
        	        	        	    }
2567
15
        	        	        	    break;
2568
2569
8
        	        	        	default:
2570
8
        	        	        	    goto loop4;	/* break out of the loop */
2571
        	        	        	    break;
2572
        	        	            }
2573
15
        	        	        }
2574
8
        	        	        loop4: ; /* Jump out to here if this rule does not match */
2575
2576
2577
        	        	    }
2578
8
        	        	    break;
2579
2580
        	            }
2581
        	        }
2582
2583
75
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand233);
2584
75
        	        if  (HASEXCEPTION())
2585
        	        {
2586
        	            goto ruleparseCommandEx;
2587
        	        }
2588
2589
2590
75
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand235);
2591
75
        	        if  (HASEXCEPTION())
2592
        	        {
2593
        	            goto ruleparseCommandEx;
2594
        	        }
2595
2596
2597
        	        {
2598
2599
150
        	                  cvc5::api::Term aexpr = PARSER_STATE->getAssertionExpr(fr,expr);
2600
75
        	                  if( !aexpr.isNull() ){
2601
        	                    // set the expression name (e.g. used with unsat core printing)
2602
74
        	                    SYM_MAN->setExpressionName(aexpr, name, true);
2603
        	                  }
2604
        	                  // make the command to assert the formula
2605
75
        	                  cmd = PARSER_STATE->makeAssertCommand(fr, aexpr, false);
2606
2607
75
        	        }
2608
2609
2610
        	    }
2611
75
        	    break;
2612
210
        	case 3:
2613
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:182:5: TFF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK tffTypedAtom[cmd] | formulaRole[fr] COMMA_TOK tffFormula[expr] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK
2614
        	    {
2615
210
        	         MATCHT(TFF_TOK, &FOLLOW_TFF_TOK_in_parseCommand247);
2616
210
        	        if  (HASEXCEPTION())
2617
        	        {
2618
        	            goto ruleparseCommandEx;
2619
        	        }
2620
2621
2622
210
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand249);
2623
210
        	        if  (HASEXCEPTION())
2624
        	        {
2625
        	            goto ruleparseCommandEx;
2626
        	        }
2627
2628
2629
210
        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand251);
2630
210
        	        nameN(ctx, name);
2631
2632
210
        	        FOLLOWPOP();
2633
210
        	        if  (HASEXCEPTION())
2634
        	        {
2635
        	            goto ruleparseCommandEx;
2636
        	        }
2637
2638
2639
210
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand254);
2640
210
        	        if  (HASEXCEPTION())
2641
        	        {
2642
        	            goto ruleparseCommandEx;
2643
        	        }
2644
2645
2646
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:183:5: ( TYPE_TOK COMMA_TOK tffTypedAtom[cmd] | formulaRole[fr] COMMA_TOK tffFormula[expr] ( COMMA_TOK ( anything )* )? )
2647
        	        {
2648
210
        	            int alt8=2;
2649
210
        	            switch ( LA(1) )
2650
        	            {
2651
69
        	            case TYPE_TOK:
2652
        	            	{
2653
69
        	            		alt8=1;
2654
        	            	}
2655
69
        	                break;
2656
141
        	            case LOWER_WORD:
2657
        	            	{
2658
141
        	            		alt8=2;
2659
        	            	}
2660
141
        	                break;
2661
2662
        	            default:
2663
        	                CONSTRUCTEX();
2664
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
2665
        	                EXCEPTION->message      = (void *)"";
2666
        	                EXCEPTION->decisionNum  = 8;
2667
        	                EXCEPTION->state        = 0;
2668
2669
2670
        	                goto ruleparseCommandEx;
2671
2672
        	            }
2673
2674
210
        	            switch (alt8)
2675
        	            {
2676
69
        	        	case 1:
2677
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:183:7: TYPE_TOK COMMA_TOK tffTypedAtom[cmd]
2678
        	        	    {
2679
69
        	        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_parseCommand262);
2680
69
        	        	        if  (HASEXCEPTION())
2681
        	        	        {
2682
        	        	            goto ruleparseCommandEx;
2683
        	        	        }
2684
2685
2686
69
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand264);
2687
69
        	        	        if  (HASEXCEPTION())
2688
        	        	        {
2689
        	        	            goto ruleparseCommandEx;
2690
        	        	        }
2691
2692
2693
69
        	        	        FOLLOWPUSH(FOLLOW_tffTypedAtom_in_parseCommand266);
2694
69
        	        	        tffTypedAtom(ctx, cmd);
2695
2696
69
        	        	        FOLLOWPOP();
2697
69
        	        	        if  (HASEXCEPTION())
2698
        	        	        {
2699
        	        	            goto ruleparseCommandEx;
2700
        	        	        }
2701
2702
2703
        	        	    }
2704
69
        	        	    break;
2705
141
        	        	case 2:
2706
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:184:7: formulaRole[fr] COMMA_TOK tffFormula[expr] ( COMMA_TOK ( anything )* )?
2707
        	        	    {
2708
141
        	        	        FOLLOWPUSH(FOLLOW_formulaRole_in_parseCommand275);
2709
141
        	        	        formulaRole(ctx, fr);
2710
2711
141
        	        	        FOLLOWPOP();
2712
141
        	        	        if  (HASEXCEPTION())
2713
        	        	        {
2714
        	        	            goto ruleparseCommandEx;
2715
        	        	        }
2716
2717
2718
141
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand278);
2719
141
        	        	        if  (HASEXCEPTION())
2720
        	        	        {
2721
        	        	            goto ruleparseCommandEx;
2722
        	        	        }
2723
2724
2725
        	        	        {
2726
141
        	        	             PARSER_STATE->setCnf(false); PARSER_STATE->setFof(false);
2727
        	        	        }
2728
2729
2730
141
        	        	        FOLLOWPUSH(FOLLOW_tffFormula_in_parseCommand294);
2731
141
        	        	        tffFormula(ctx, expr);
2732
2733
141
        	        	        FOLLOWPOP();
2734
141
        	        	        if  (HASEXCEPTION())
2735
        	        	        {
2736
        	        	            goto ruleparseCommandEx;
2737
        	        	        }
2738
2739
2740
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:186:24: ( COMMA_TOK ( anything )* )?
2741
        	        	        {
2742
141
        	        	            int alt7=2;
2743
141
        	        	            switch ( LA(1) )
2744
        	        	            {
2745
8
        	        	                case COMMA_TOK:
2746
        	        	                	{
2747
8
        	        	                		alt7=1;
2748
        	        	                	}
2749
8
        	        	                    break;
2750
        	        	            }
2751
2752
141
        	        	            switch (alt7)
2753
        	        	            {
2754
8
        	        	        	case 1:
2755
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:186:25: COMMA_TOK ( anything )*
2756
        	        	        	    {
2757
8
        	        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand298);
2758
8
        	        	        	        if  (HASEXCEPTION())
2759
        	        	        	        {
2760
        	        	        	            goto ruleparseCommandEx;
2761
        	        	        	        }
2762
2763
2764
        	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:186:35: ( anything )*
2765
2766
        	        	        	        for (;;)
2767
        	        	        	        {
2768
23
        	        	        	            int alt6=2;
2769
23
        	        	        	            switch ( LA(1) )
2770
        	        	        	            {
2771
15
        	        	        	            case AND_TOK:
2772
        	        	        	            case CNF_TOK:
2773
        	        	        	            case COLON_TOK:
2774
        	        	        	            case COMMA_TOK:
2775
        	        	        	            case DEFINED_SYMBOL:
2776
        	        	        	            case DISEQUAL_TOK:
2777
        	        	        	            case DISTINCT_OBJECT:
2778
        	        	        	            case DOT_TOK:
2779
        	        	        	            case EQUAL_TOK:
2780
        	        	        	            case EXISTS_TOK:
2781
        	        	        	            case FALSE_TOK:
2782
        	        	        	            case FOF_TOK:
2783
        	        	        	            case FORALL_TOK:
2784
        	        	        	            case IFF_TOK:
2785
        	        	        	            case IMPLIES_TOK:
2786
        	        	        	            case INCLUDE_TOK:
2787
        	        	        	            case LBRACK_TOK:
2788
        	        	        	            case LOWER_WORD:
2789
        	        	        	            case LOWER_WORD_SINGLE_QUOTED:
2790
        	        	        	            case LPAREN_TOK:
2791
        	        	        	            case MINUS_TOK:
2792
        	        	        	            case NOT_TOK:
2793
        	        	        	            case NUMBER:
2794
        	        	        	            case OR_TOK:
2795
        	        	        	            case PLUS_TOK:
2796
        	        	        	            case REVAND_TOK:
2797
        	        	        	            case REVIFF_TOK:
2798
        	        	        	            case REVIMPLIES_TOK:
2799
        	        	        	            case REVOR_TOK:
2800
        	        	        	            case SINGLE_QUOTED:
2801
        	        	        	            case TFF_TOK:
2802
        	        	        	            case THF_TOK:
2803
        	        	        	            case TIMES_TOK:
2804
        	        	        	            case TRUE_TOK:
2805
        	        	        	            case TYPE_TOK:
2806
        	        	        	            case UPPER_WORD:
2807
        	        	        	            	{
2808
15
        	        	        	            		alt6=1;
2809
        	        	        	            	}
2810
15
        	        	        	                break;
2811
2812
        	        	        	            }
2813
2814
23
        	        	        	            switch (alt6)
2815
        	        	        	            {
2816
15
        	        	        	        	case 1:
2817
        	        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:186:35: anything
2818
        	        	        	        	    {
2819
15
        	        	        	        	        FOLLOWPUSH(FOLLOW_anything_in_parseCommand300);
2820
15
        	        	        	        	        anything(ctx);
2821
2822
15
        	        	        	        	        FOLLOWPOP();
2823
15
        	        	        	        	        if  (HASEXCEPTION())
2824
        	        	        	        	        {
2825
        	        	        	        	            goto ruleparseCommandEx;
2826
        	        	        	        	        }
2827
2828
2829
        	        	        	        	    }
2830
15
        	        	        	        	    break;
2831
2832
8
        	        	        	        	default:
2833
8
        	        	        	        	    goto loop6;	/* break out of the loop */
2834
        	        	        	        	    break;
2835
        	        	        	            }
2836
15
        	        	        	        }
2837
8
        	        	        	        loop6: ; /* Jump out to here if this rule does not match */
2838
2839
2840
        	        	        	    }
2841
8
        	        	        	    break;
2842
2843
        	        	            }
2844
        	        	        }
2845
2846
        	        	        {
2847
2848
282
        	        	                    cvc5::api::Term aexpr = PARSER_STATE->getAssertionExpr(fr,expr);
2849
141
        	        	                    if( !aexpr.isNull() ){
2850
        	        	                      // set the expression name (e.g. used with unsat core printing)
2851
140
        	        	                      SYM_MAN->setExpressionName(aexpr, name, true);
2852
        	        	                    }
2853
        	        	                    // make the command to assert the formula
2854
141
        	        	                    cmd = PARSER_STATE->makeAssertCommand(fr, aexpr, false);
2855
2856
141
        	        	        }
2857
2858
2859
        	        	    }
2860
141
        	        	    break;
2861
2862
        	            }
2863
        	        }
2864
2865
210
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand319);
2866
210
        	        if  (HASEXCEPTION())
2867
        	        {
2868
        	            goto ruleparseCommandEx;
2869
        	        }
2870
2871
2872
210
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand321);
2873
210
        	        if  (HASEXCEPTION())
2874
        	        {
2875
        	            goto ruleparseCommandEx;
2876
210
        	        }
2877
2878
2879
        	    }
2880
210
        	    break;
2881
1315
        	case 4:
2882
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:197:5: THF_TOK LPAREN_TOK nameN[name] COMMA_TOK ( TYPE_TOK COMMA_TOK thfAtomTyping[cmd] | formulaRole[fr] COMMA_TOK thfLogicFormula[p] ( COMMA_TOK ( anything )* )? ) RPAREN_TOK DOT_TOK
2883
        	    {
2884
1315
        	         MATCHT(THF_TOK, &FOLLOW_THF_TOK_in_parseCommand327);
2885
1315
        	        if  (HASEXCEPTION())
2886
        	        {
2887
        	            goto ruleparseCommandEx;
2888
        	        }
2889
2890
2891
        	        {
2892
2893
1315
        	                  PARSER_STATE->setHol();
2894
2895
        	        }
2896
2897
2898
1315
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand339);
2899
1315
        	        if  (HASEXCEPTION())
2900
        	        {
2901
        	            goto ruleparseCommandEx;
2902
        	        }
2903
2904
2905
1315
        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand341);
2906
1315
        	        nameN(ctx, name);
2907
2908
1315
        	        FOLLOWPOP();
2909
1315
        	        if  (HASEXCEPTION())
2910
        	        {
2911
        	            goto ruleparseCommandEx;
2912
        	        }
2913
2914
2915
1315
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand344);
2916
1315
        	        if  (HASEXCEPTION())
2917
        	        {
2918
        	            goto ruleparseCommandEx;
2919
        	        }
2920
2921
2922
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:204:5: ( TYPE_TOK COMMA_TOK thfAtomTyping[cmd] | formulaRole[fr] COMMA_TOK thfLogicFormula[p] ( COMMA_TOK ( anything )* )? )
2923
        	        {
2924
1315
        	            int alt11=2;
2925
1315
        	            switch ( LA(1) )
2926
        	            {
2927
305
        	            case TYPE_TOK:
2928
        	            	{
2929
305
        	            		alt11=1;
2930
        	            	}
2931
305
        	                break;
2932
1010
        	            case LOWER_WORD:
2933
        	            	{
2934
1010
        	            		alt11=2;
2935
        	            	}
2936
1010
        	                break;
2937
2938
        	            default:
2939
        	                CONSTRUCTEX();
2940
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
2941
        	                EXCEPTION->message      = (void *)"";
2942
        	                EXCEPTION->decisionNum  = 11;
2943
        	                EXCEPTION->state        = 0;
2944
2945
2946
        	                goto ruleparseCommandEx;
2947
2948
        	            }
2949
2950
1315
        	            switch (alt11)
2951
        	            {
2952
305
        	        	case 1:
2953
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:204:7: TYPE_TOK COMMA_TOK thfAtomTyping[cmd]
2954
        	        	    {
2955
305
        	        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_parseCommand362);
2956
305
        	        	        if  (HASEXCEPTION())
2957
        	        	        {
2958
        	        	            goto ruleparseCommandEx;
2959
        	        	        }
2960
2961
2962
305
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand364);
2963
305
        	        	        if  (HASEXCEPTION())
2964
        	        	        {
2965
        	        	            goto ruleparseCommandEx;
2966
        	        	        }
2967
2968
2969
305
        	        	        FOLLOWPUSH(FOLLOW_thfAtomTyping_in_parseCommand366);
2970
305
        	        	        thfAtomTyping(ctx, cmd);
2971
2972
305
        	        	        FOLLOWPOP();
2973
305
        	        	        if  (HASEXCEPTION())
2974
        	        	        {
2975
        	        	            goto ruleparseCommandEx;
2976
        	        	        }
2977
2978
2979
        	        	    }
2980
305
        	        	    break;
2981
1010
        	        	case 2:
2982
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:205:7: formulaRole[fr] COMMA_TOK thfLogicFormula[p] ( COMMA_TOK ( anything )* )?
2983
        	        	    {
2984
1010
        	        	        FOLLOWPUSH(FOLLOW_formulaRole_in_parseCommand375);
2985
1010
        	        	        formulaRole(ctx, fr);
2986
2987
1010
        	        	        FOLLOWPOP();
2988
1010
        	        	        if  (HASEXCEPTION())
2989
        	        	        {
2990
        	        	            goto ruleparseCommandEx;
2991
        	        	        }
2992
2993
2994
1010
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand378);
2995
1010
        	        	        if  (HASEXCEPTION())
2996
        	        	        {
2997
        	        	            goto ruleparseCommandEx;
2998
        	        	        }
2999
3000
3001
        	        	        {
3002
1010
        	        	             PARSER_STATE->setCnf(false); PARSER_STATE->setFof(false);
3003
        	        	        }
3004
3005
3006
1010
        	        	        FOLLOWPUSH(FOLLOW_thfLogicFormula_in_parseCommand394);
3007
1010
        	        	        thfLogicFormula(ctx, p);
3008
3009
1010
        	        	        FOLLOWPOP();
3010
1010
        	        	        if  (HASEXCEPTION())
3011
        	        	        {
3012
        	        	            goto ruleparseCommandEx;
3013
        	        	        }
3014
3015
3016
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:207:26: ( COMMA_TOK ( anything )* )?
3017
        	        	        {
3018
1010
        	        	            int alt10=2;
3019
1010
        	        	            switch ( LA(1) )
3020
        	        	            {
3021
        	        	                case COMMA_TOK:
3022
        	        	                	{
3023
        	        	                		alt10=1;
3024
        	        	                	}
3025
        	        	                    break;
3026
        	        	            }
3027
3028
1010
        	        	            switch (alt10)
3029
        	        	            {
3030
        	        	        	case 1:
3031
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:207:27: COMMA_TOK ( anything )*
3032
        	        	        	    {
3033
        	        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand398);
3034
        	        	        	        if  (HASEXCEPTION())
3035
        	        	        	        {
3036
        	        	        	            goto ruleparseCommandEx;
3037
        	        	        	        }
3038
3039
3040
        	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:207:37: ( anything )*
3041
3042
        	        	        	        for (;;)
3043
        	        	        	        {
3044
        	        	        	            int alt9=2;
3045
        	        	        	            switch ( LA(1) )
3046
        	        	        	            {
3047
        	        	        	            case AND_TOK:
3048
        	        	        	            case CNF_TOK:
3049
        	        	        	            case COLON_TOK:
3050
        	        	        	            case COMMA_TOK:
3051
        	        	        	            case DEFINED_SYMBOL:
3052
        	        	        	            case DISEQUAL_TOK:
3053
        	        	        	            case DISTINCT_OBJECT:
3054
        	        	        	            case DOT_TOK:
3055
        	        	        	            case EQUAL_TOK:
3056
        	        	        	            case EXISTS_TOK:
3057
        	        	        	            case FALSE_TOK:
3058
        	        	        	            case FOF_TOK:
3059
        	        	        	            case FORALL_TOK:
3060
        	        	        	            case IFF_TOK:
3061
        	        	        	            case IMPLIES_TOK:
3062
        	        	        	            case INCLUDE_TOK:
3063
        	        	        	            case LBRACK_TOK:
3064
        	        	        	            case LOWER_WORD:
3065
        	        	        	            case LOWER_WORD_SINGLE_QUOTED:
3066
        	        	        	            case LPAREN_TOK:
3067
        	        	        	            case MINUS_TOK:
3068
        	        	        	            case NOT_TOK:
3069
        	        	        	            case NUMBER:
3070
        	        	        	            case OR_TOK:
3071
        	        	        	            case PLUS_TOK:
3072
        	        	        	            case REVAND_TOK:
3073
        	        	        	            case REVIFF_TOK:
3074
        	        	        	            case REVIMPLIES_TOK:
3075
        	        	        	            case REVOR_TOK:
3076
        	        	        	            case SINGLE_QUOTED:
3077
        	        	        	            case TFF_TOK:
3078
        	        	        	            case THF_TOK:
3079
        	        	        	            case TIMES_TOK:
3080
        	        	        	            case TRUE_TOK:
3081
        	        	        	            case TYPE_TOK:
3082
        	        	        	            case UPPER_WORD:
3083
        	        	        	            	{
3084
        	        	        	            		alt9=1;
3085
        	        	        	            	}
3086
        	        	        	                break;
3087
3088
        	        	        	            }
3089
3090
        	        	        	            switch (alt9)
3091
        	        	        	            {
3092
        	        	        	        	case 1:
3093
        	        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:207:37: anything
3094
        	        	        	        	    {
3095
        	        	        	        	        FOLLOWPUSH(FOLLOW_anything_in_parseCommand400);
3096
        	        	        	        	        anything(ctx);
3097
3098
        	        	        	        	        FOLLOWPOP();
3099
        	        	        	        	        if  (HASEXCEPTION())
3100
        	        	        	        	        {
3101
        	        	        	        	            goto ruleparseCommandEx;
3102
        	        	        	        	        }
3103
3104
3105
        	        	        	        	    }
3106
        	        	        	        	    break;
3107
3108
        	        	        	        	default:
3109
        	        	        	        	    goto loop9;	/* break out of the loop */
3110
        	        	        	        	    break;
3111
        	        	        	            }
3112
        	        	        	        }
3113
        	        	        	        loop9: ; /* Jump out to here if this rule does not match */
3114
3115
3116
        	        	        	    }
3117
        	        	        	    break;
3118
3119
        	        	            }
3120
        	        	        }
3121
3122
        	        	        {
3123
3124
1010
        	        	                    if (p.d_expr.isNull())
3125
        	        	                    {
3126
        	        	                      PARSER_STATE->parseError("Top level expression must be a formula");
3127
        	        	                    }
3128
1010
        	        	                    expr = p.d_expr;
3129
2020
        	        	                    cvc5::api::Term aexpr = PARSER_STATE->getAssertionExpr(fr, expr);
3130
1010
        	        	                    if (!aexpr.isNull())
3131
        	        	                    {
3132
        	        	                      // set the expression name (e.g. used with unsat core printing)
3133
1010
        	        	                      SYM_MAN->setExpressionName(aexpr, name, true);
3134
        	        	                    }
3135
        	        	                    // make the command to assert the formula
3136
1010
        	        	                    cmd = PARSER_STATE->makeAssertCommand(fr, aexpr, false);
3137
3138
1010
        	        	        }
3139
3140
3141
        	        	    }
3142
1010
        	        	    break;
3143
3144
        	            }
3145
        	        }
3146
3147
1315
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand419);
3148
1315
        	        if  (HASEXCEPTION())
3149
        	        {
3150
        	            goto ruleparseCommandEx;
3151
        	        }
3152
3153
3154
1315
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand421);
3155
1315
        	        if  (HASEXCEPTION())
3156
        	        {
3157
        	            goto ruleparseCommandEx;
3158
1315
        	        }
3159
3160
3161
        	    }
3162
1315
        	    break;
3163
7
        	case 5:
3164
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:224:5: INCLUDE_TOK LPAREN_TOK unquotedFileName[name] ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )? RPAREN_TOK DOT_TOK
3165
        	    {
3166
7
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_parseCommand427);
3167
7
        	        if  (HASEXCEPTION())
3168
        	        {
3169
        	            goto ruleparseCommandEx;
3170
        	        }
3171
3172
3173
7
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand429);
3174
7
        	        if  (HASEXCEPTION())
3175
        	        {
3176
        	            goto ruleparseCommandEx;
3177
        	        }
3178
3179
3180
7
        	        FOLLOWPUSH(FOLLOW_unquotedFileName_in_parseCommand431);
3181
7
        	        unquotedFileName(ctx, name);
3182
3183
7
        	        FOLLOWPOP();
3184
7
        	        if  (HASEXCEPTION())
3185
        	        {
3186
        	            goto ruleparseCommandEx;
3187
        	        }
3188
3189
3190
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:225:5: ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )?
3191
        	        {
3192
7
        	            int alt13=2;
3193
7
        	            switch ( LA(1) )
3194
        	            {
3195
3
        	                case COMMA_TOK:
3196
        	                	{
3197
3
        	                		alt13=1;
3198
        	                	}
3199
3
        	                    break;
3200
        	            }
3201
3202
7
        	            switch (alt13)
3203
        	            {
3204
3
        	        	case 1:
3205
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:225:7: COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK
3206
        	        	    {
3207
3
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand440);
3208
3
        	        	        if  (HASEXCEPTION())
3209
        	        	        {
3210
        	        	            goto ruleparseCommandEx;
3211
        	        	        }
3212
3213
3214
3
        	        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_parseCommand442);
3215
3
        	        	        if  (HASEXCEPTION())
3216
        	        	        {
3217
        	        	            goto ruleparseCommandEx;
3218
        	        	        }
3219
3220
3221
3
        	        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand444);
3222
3
        	        	        nameN(ctx, inclSymbol);
3223
3224
3
        	        	        FOLLOWPOP();
3225
3
        	        	        if  (HASEXCEPTION())
3226
        	        	        {
3227
        	        	            goto ruleparseCommandEx;
3228
        	        	        }
3229
3230
3231
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:226:7: ( COMMA_TOK nameN[inclSymbol] )*
3232
3233
        	        	        for (;;)
3234
        	        	        {
3235
6
        	        	            int alt12=2;
3236
6
        	        	            switch ( LA(1) )
3237
        	        	            {
3238
3
        	        	            case COMMA_TOK:
3239
        	        	            	{
3240
3
        	        	            		alt12=1;
3241
        	        	            	}
3242
3
        	        	                break;
3243
3244
        	        	            }
3245
3246
6
        	        	            switch (alt12)
3247
        	        	            {
3248
3
        	        	        	case 1:
3249
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:226:9: COMMA_TOK nameN[inclSymbol]
3250
        	        	        	    {
3251
3
        	        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand455);
3252
3
        	        	        	        if  (HASEXCEPTION())
3253
        	        	        	        {
3254
        	        	        	            goto ruleparseCommandEx;
3255
        	        	        	        }
3256
3257
3258
3
        	        	        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand457);
3259
3
        	        	        	        nameN(ctx, inclSymbol);
3260
3261
3
        	        	        	        FOLLOWPOP();
3262
3
        	        	        	        if  (HASEXCEPTION())
3263
        	        	        	        {
3264
        	        	        	            goto ruleparseCommandEx;
3265
        	        	        	        }
3266
3267
3268
        	        	        	    }
3269
3
        	        	        	    break;
3270
3271
3
        	        	        	default:
3272
3
        	        	        	    goto loop12;	/* break out of the loop */
3273
        	        	        	    break;
3274
        	        	            }
3275
3
        	        	        }
3276
3
        	        	        loop12: ; /* Jump out to here if this rule does not match */
3277
3278
3279
3
        	        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_parseCommand463);
3280
3
        	        	        if  (HASEXCEPTION())
3281
        	        	        {
3282
        	        	            goto ruleparseCommandEx;
3283
3
        	        	        }
3284
3285
3286
        	        	    }
3287
3
        	        	    break;
3288
3289
        	            }
3290
        	        }
3291
3292
7
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand472);
3293
7
        	        if  (HASEXCEPTION())
3294
        	        {
3295
        	            goto ruleparseCommandEx;
3296
        	        }
3297
3298
3299
7
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand474);
3300
7
        	        if  (HASEXCEPTION())
3301
        	        {
3302
        	            goto ruleparseCommandEx;
3303
        	        }
3304
3305
3306
        	        {
3307
        	             /* TODO - implement symbol filtering for file inclusion.
3308
        	                   * the following removes duplicates and "all", just need to pass it
3309
        	                   * through to includeFile() and implement it there.
3310
        	                  std::sort(inclArgs.begin(), inclArgs.end());
3311
        	                  std::vector<std::string>::iterator it =
3312
        	                    std::unique(inclArgs.begin(), inclArgs.end());
3313
        	                  inclArgs.resize(std::distance(inclArgs.begin(), it));
3314
        	                  it = std::lower_bound(inclArgs.begin(), inclArgs.end(), std::string("all"));
3315
        	                  if(it != inclArgs.end() && *it == "all") {
3316
        	                    inclArgs.erase(it);
3317
        	                  }
3318
        	                  */
3319
7
        	                  PARSER_STATE->includeFile(name /* , inclArgs */ );
3320
        	                  // The command of the included file will be produced at the next parseCommand() call
3321
7
        	                  cmd = new EmptyCommand("include::" + name);
3322
3323
        	        }
3324
3325
3326
        	    }
3327
7
        	    break;
3328
41
        	case 6:
3329
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:244:5: EOF
3330
        	    {
3331
41
        	         MATCHT(EOF, &FOLLOW_EOF_in_parseCommand486);
3332
41
        	        if  (HASEXCEPTION())
3333
        	        {
3334
        	            goto ruleparseCommandEx;
3335
        	        }
3336
3337
3338
        	        {
3339
3340
41
        	                  CommandSequence* seq = new CommandSequence();
3341
        	                  // assert that all distinct constants are distinct
3342
82
        	                  cvc5::api::Term aexpr = PARSER_STATE->getAssertionDistinctConstants();
3343
41
        	                  if( !aexpr.isNull() )
3344
        	                  {
3345
3
        	                    seq->addCommand(new AssertCommand(aexpr));
3346
        	                  }
3347
3348
82
        	                  std::string filename = PARSER_STATE->getInput()->getInputStreamName();
3349
41
        	                  size_t i = filename.find_last_of('/');
3350
41
        	                  if(i != std::string::npos) {
3351
        	                    filename = filename.substr(i + 1);
3352
        	                  }
3353
41
        	                  if(filename.substr(filename.length() - 2) == ".p") {
3354
41
        	                    filename = filename.substr(0, filename.length() - 2);
3355
        	                  }
3356
41
        	                  seq->addCommand(new SetInfoCommand("filename", filename));
3357
41
        	                  if(PARSER_STATE->hasConjecture()) {
3358
22
        	                    seq->addCommand(new QueryCommand(SOLVER->mkFalse()));
3359
        	                  } else {
3360
19
        	                    seq->addCommand(new CheckSatCommand());
3361
        	                  }
3362
41
        	                  PARSER_STATE->preemptCommand(seq);
3363
41
        	                  cmd = NULL;
3364
3365
41
        	        }
3366
3367
3368
        	    }
3369
41
        	    break;
3370
3371
            }
3372
        }
3373
    }
3374
3375
    // This is where rules clean up and exit
3376
    //
3377
1733
    goto ruleparseCommandEx; /* Prevent compiler warnings */
3378
1733
    ruleparseCommandEx: ;
3379
3380
1733
            if (HASEXCEPTION())
3381
            {
3382
                PREPORTERROR();
3383
                PRECOVER();
3384
            }
3385
3466
    return cmd;
3386
}
3387
/* $ANTLR end parseCommand */
3388
3389
/**
3390
 * $ANTLR start formulaRole
3391
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:274:1: formulaRole[cvc5::parser::Tptp::FormulaRole& role] : LOWER_WORD ;
3392
 */
3393
static void
3394
1311
formulaRole(pTptpParser ctx, cvc5::parser::Tptp::FormulaRole& role)
3395
{
3396
    pANTLR3_COMMON_TOKEN    LOWER_WORD1;
3397
3398
    /* Initialize rule variables
3399
     */
3400
3401
1311
    LOWER_WORD1       = NULL;
3402
3403
    {
3404
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:275:3: ( LOWER_WORD )
3405
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:275:5: LOWER_WORD
3406
        {
3407
1311
            LOWER_WORD1 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_formulaRole508);
3408
1311
            if  (HASEXCEPTION())
3409
            {
3410
                goto ruleformulaRoleEx;
3411
            }
3412
3413
3414
            {
3415
3416
2622
                      std::string r = AntlrInput::tokenText(LOWER_WORD1);
3417
1311
                      if      (r == "axiom")              role = Tptp::FR_AXIOM;
3418
191
                      else if (r == "hypothesis")         role = Tptp::FR_HYPOTHESIS;
3419
174
                      else if (r == "definition")         role = Tptp::FR_DEFINITION;
3420
58
                      else if (r == "assumption")         role = Tptp::FR_ASSUMPTION;
3421
55
                      else if (r == "lemma")              role = Tptp::FR_LEMMA;
3422
52
                      else if (r == "theorem")            role = Tptp::FR_THEOREM;
3423
49
                      else if (r == "negated_conjecture") role = Tptp::FR_NEGATED_CONJECTURE;
3424
31
                      else if (r == "conjecture")         role = Tptp::FR_CONJECTURE;
3425
9
                      else if (r == "unknown")            role = Tptp::FR_UNKNOWN;
3426
6
                      else if (r == "plain")              role = Tptp::FR_PLAIN;
3427
                      else if (r == "fi_domain")          role = Tptp::FR_FI_DOMAIN;
3428
                      else if (r == "fi_functor")         role = Tptp::FR_FI_FUNCTORS;
3429
                      else if (r == "fi_predicate")       role = Tptp::FR_FI_PREDICATES;
3430
                      else if (r == "type")               role = Tptp::FR_TYPE;
3431
                      else PARSER_STATE->parseError("Invalid formula role: " + r);
3432
3433
            }
3434
3435
3436
        }
3437
3438
    }
3439
3440
    // This is where rules clean up and exit
3441
    //
3442
1311
    goto ruleformulaRoleEx; /* Prevent compiler warnings */
3443
1311
    ruleformulaRoleEx: ;
3444
3445
1311
            if (HASEXCEPTION())
3446
            {
3447
                PREPORTERROR();
3448
                PRECOVER();
3449
            }
3450
1311
    return ;
3451
}
3452
/* $ANTLR end formulaRole */
3453
3454
/**
3455
 * $ANTLR start cnfFormula
3456
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:302:1: cnfFormula[cvc5::api::Term& expr] : ( LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK | cnfDisjunction[expr] );
3457
 */
3458
static void
3459
85
cnfFormula(pTptpParser ctx, cvc5::api::Term& expr)
3460
{
3461
    /* Initialize rule variables
3462
     */
3463
3464
    {
3465
        {
3466
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:303:3: ( LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK | cnfDisjunction[expr] )
3467
3468
            ANTLR3_UINT32 alt15;
3469
3470
85
            alt15=2;
3471
3472
85
            switch ( LA(1) )
3473
            {
3474
28
            case LPAREN_TOK:
3475
            	{
3476
28
            		alt15=1;
3477
            	}
3478
28
                break;
3479
57
            case AND_TOK:
3480
            case CNF_TOK:
3481
            case DISTINCT_OBJECT:
3482
            case FALSE_TOK:
3483
            case FOF_TOK:
3484
            case IMPLIES_TOK:
3485
            case INCLUDE_TOK:
3486
            case LOWER_WORD:
3487
            case LOWER_WORD_SINGLE_QUOTED:
3488
            case NOT_TOK:
3489
            case NUMBER:
3490
            case OR_TOK:
3491
            case SINGLE_QUOTED:
3492
            case TFF_TOK:
3493
            case THF_TOK:
3494
            case TRUE_TOK:
3495
            case TYPE_TOK:
3496
            case UPPER_WORD:
3497
            case 63:
3498
            case 64:
3499
            case 65:
3500
            case 66:
3501
            case 67:
3502
            case 68:
3503
            case 69:
3504
            case 70:
3505
            case 72:
3506
            case 73:
3507
            case 74:
3508
            case 76:
3509
            case 78:
3510
            case 79:
3511
            case 80:
3512
            case 81:
3513
            case 82:
3514
            case 83:
3515
            case 84:
3516
            case 85:
3517
            case 86:
3518
            case 87:
3519
            case 88:
3520
            case 90:
3521
            case 91:
3522
            case 92:
3523
            case 93:
3524
            case 94:
3525
            	{
3526
57
            		alt15=2;
3527
            	}
3528
57
                break;
3529
3530
            default:
3531
                CONSTRUCTEX();
3532
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3533
                EXCEPTION->message      = (void *)"";
3534
                EXCEPTION->decisionNum  = 15;
3535
                EXCEPTION->state        = 0;
3536
3537
3538
                goto rulecnfFormulaEx;
3539
3540
            }
3541
3542
85
            switch (alt15)
3543
            {
3544
28
        	case 1:
3545
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:303:5: LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK
3546
        	    {
3547
28
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_cnfFormula536);
3548
28
        	        if  (HASEXCEPTION())
3549
        	        {
3550
        	            goto rulecnfFormulaEx;
3551
        	        }
3552
3553
3554
28
        	        FOLLOWPUSH(FOLLOW_cnfDisjunction_in_cnfFormula538);
3555
28
        	        cnfDisjunction(ctx, expr);
3556
3557
28
        	        FOLLOWPOP();
3558
28
        	        if  (HASEXCEPTION())
3559
        	        {
3560
        	            goto rulecnfFormulaEx;
3561
        	        }
3562
3563
3564
28
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_cnfFormula541);
3565
28
        	        if  (HASEXCEPTION())
3566
        	        {
3567
        	            goto rulecnfFormulaEx;
3568
        	        }
3569
3570
3571
        	    }
3572
28
        	    break;
3573
57
        	case 2:
3574
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:304:5: cnfDisjunction[expr]
3575
        	    {
3576
57
        	        FOLLOWPUSH(FOLLOW_cnfDisjunction_in_cnfFormula547);
3577
57
        	        cnfDisjunction(ctx, expr);
3578
3579
57
        	        FOLLOWPOP();
3580
57
        	        if  (HASEXCEPTION())
3581
        	        {
3582
        	            goto rulecnfFormulaEx;
3583
        	        }
3584
3585
3586
        	    }
3587
57
        	    break;
3588
3589
            }
3590
        }
3591
    }
3592
3593
    // This is where rules clean up and exit
3594
    //
3595
85
    goto rulecnfFormulaEx; /* Prevent compiler warnings */
3596
85
    rulecnfFormulaEx: ;
3597
3598
85
            if (HASEXCEPTION())
3599
            {
3600
                PREPORTERROR();
3601
                PRECOVER();
3602
            }
3603
85
    return ;
3604
}
3605
/* $ANTLR end cnfFormula */
3606
3607
/**
3608
 * $ANTLR start cnfDisjunction
3609
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:307:1: cnfDisjunction[cvc5::api::Term& expr] : cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )* ;
3610
 */
3611
static void
3612
85
cnfDisjunction(pTptpParser ctx, cvc5::api::Term& expr)
3613
{
3614
3615
170
      std::vector<api::Term> args;
3616
3617
    /* Initialize rule variables
3618
     */
3619
3620
    {
3621
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:311:3: ( cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )* )
3622
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:311:5: cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )*
3623
        {
3624
85
            FOLLOWPUSH(FOLLOW_cnfLiteral_in_cnfDisjunction565);
3625
85
            cnfLiteral(ctx, expr);
3626
3627
85
            FOLLOWPOP();
3628
85
            if  (HASEXCEPTION())
3629
            {
3630
                goto rulecnfDisjunctionEx;
3631
            }
3632
3633
3634
            {
3635
85
                 args.push_back(expr);
3636
            }
3637
3638
3639
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:312:5: ( OR_TOK cnfLiteral[expr] )*
3640
3641
            for (;;)
3642
            {
3643
164
                int alt16=2;
3644
164
                switch ( LA(1) )
3645
                {
3646
79
                case OR_TOK:
3647
                	{
3648
79
                		alt16=1;
3649
                	}
3650
79
                    break;
3651
3652
                }
3653
3654
164
                switch (alt16)
3655
                {
3656
79
            	case 1:
3657
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:312:7: OR_TOK cnfLiteral[expr]
3658
            	    {
3659
79
            	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_cnfDisjunction576);
3660
79
            	        if  (HASEXCEPTION())
3661
            	        {
3662
            	            goto rulecnfDisjunctionEx;
3663
            	        }
3664
3665
3666
79
            	        FOLLOWPUSH(FOLLOW_cnfLiteral_in_cnfDisjunction578);
3667
79
            	        cnfLiteral(ctx, expr);
3668
3669
79
            	        FOLLOWPOP();
3670
79
            	        if  (HASEXCEPTION())
3671
            	        {
3672
            	            goto rulecnfDisjunctionEx;
3673
            	        }
3674
3675
3676
            	        {
3677
79
            	             args.push_back(expr);
3678
            	        }
3679
3680
3681
            	    }
3682
79
            	    break;
3683
3684
85
            	default:
3685
85
            	    goto loop16;	/* break out of the loop */
3686
            	    break;
3687
                }
3688
79
            }
3689
85
            loop16: ; /* Jump out to here if this rule does not match */
3690
3691
3692
            {
3693
85
                 if(args.size() > 1) {
3694
45
                        expr = MK_TERM(api::OR, args);
3695
                      } // else its already in the expr
3696
3697
            }
3698
3699
3700
        }
3701
3702
    }
3703
3704
    // This is where rules clean up and exit
3705
    //
3706
85
    goto rulecnfDisjunctionEx; /* Prevent compiler warnings */
3707
85
    rulecnfDisjunctionEx: ;
3708
3709
85
            if (HASEXCEPTION())
3710
            {
3711
                PREPORTERROR();
3712
                PRECOVER();
3713
            }
3714
170
    return ;
3715
}
3716
/* $ANTLR end cnfDisjunction */
3717
3718
/**
3719
 * $ANTLR start cnfLiteral
3720
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:319:1: cnfLiteral[cvc5::api::Term& expr] : ( atomicFormula[expr] | NOT_TOK atomicFormula[expr] );
3721
 */
3722
static void
3723
164
cnfLiteral(pTptpParser ctx, cvc5::api::Term& expr)
3724
{
3725
    /* Initialize rule variables
3726
     */
3727
3728
    {
3729
        {
3730
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:320:3: ( atomicFormula[expr] | NOT_TOK atomicFormula[expr] )
3731
3732
            ANTLR3_UINT32 alt17;
3733
3734
164
            alt17=2;
3735
3736
164
            switch ( LA(1) )
3737
            {
3738
119
            case AND_TOK:
3739
            case CNF_TOK:
3740
            case DISTINCT_OBJECT:
3741
            case FALSE_TOK:
3742
            case FOF_TOK:
3743
            case IMPLIES_TOK:
3744
            case INCLUDE_TOK:
3745
            case LOWER_WORD:
3746
            case LOWER_WORD_SINGLE_QUOTED:
3747
            case NUMBER:
3748
            case OR_TOK:
3749
            case SINGLE_QUOTED:
3750
            case TFF_TOK:
3751
            case THF_TOK:
3752
            case TRUE_TOK:
3753
            case TYPE_TOK:
3754
            case UPPER_WORD:
3755
            case 63:
3756
            case 64:
3757
            case 65:
3758
            case 66:
3759
            case 67:
3760
            case 68:
3761
            case 69:
3762
            case 70:
3763
            case 72:
3764
            case 73:
3765
            case 74:
3766
            case 76:
3767
            case 78:
3768
            case 79:
3769
            case 80:
3770
            case 81:
3771
            case 82:
3772
            case 83:
3773
            case 84:
3774
            case 85:
3775
            case 86:
3776
            case 87:
3777
            case 88:
3778
            case 90:
3779
            case 91:
3780
            case 92:
3781
            case 93:
3782
            case 94:
3783
            	{
3784
119
            		alt17=1;
3785
            	}
3786
119
                break;
3787
45
            case NOT_TOK:
3788
            	{
3789
45
            		alt17=2;
3790
            	}
3791
45
                break;
3792
3793
            default:
3794
                CONSTRUCTEX();
3795
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3796
                EXCEPTION->message      = (void *)"";
3797
                EXCEPTION->decisionNum  = 17;
3798
                EXCEPTION->state        = 0;
3799
3800
3801
                goto rulecnfLiteralEx;
3802
3803
            }
3804
3805
164
            switch (alt17)
3806
            {
3807
119
        	case 1:
3808
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:320:5: atomicFormula[expr]
3809
        	    {
3810
119
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_cnfLiteral602);
3811
119
        	        atomicFormula(ctx, expr);
3812
3813
119
        	        FOLLOWPOP();
3814
119
        	        if  (HASEXCEPTION())
3815
        	        {
3816
        	            goto rulecnfLiteralEx;
3817
        	        }
3818
3819
3820
        	    }
3821
119
        	    break;
3822
45
        	case 2:
3823
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:321:5: NOT_TOK atomicFormula[expr]
3824
        	    {
3825
45
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_cnfLiteral609);
3826
45
        	        if  (HASEXCEPTION())
3827
        	        {
3828
        	            goto rulecnfLiteralEx;
3829
        	        }
3830
3831
3832
45
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_cnfLiteral611);
3833
45
        	        atomicFormula(ctx, expr);
3834
3835
45
        	        FOLLOWPOP();
3836
45
        	        if  (HASEXCEPTION())
3837
        	        {
3838
        	            goto rulecnfLiteralEx;
3839
        	        }
3840
3841
3842
        	        {
3843
45
        	             expr = MK_TERM(api::NOT, expr);
3844
        	        }
3845
3846
3847
        	    }
3848
45
        	    break;
3849
3850
            }
3851
        }
3852
    }
3853
3854
    // This is where rules clean up and exit
3855
    //
3856
164
    goto rulecnfLiteralEx; /* Prevent compiler warnings */
3857
164
    rulecnfLiteralEx: ;
3858
3859
164
            if (HASEXCEPTION())
3860
            {
3861
                PREPORTERROR();
3862
                PRECOVER();
3863
            }
3864
164
    return ;
3865
}
3866
/* $ANTLR end cnfLiteral */
3867
3868
/**
3869
 * $ANTLR start atomicFormula
3870
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:324:1: atomicFormula[cvc5::api::Term& expr] : ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ( equalOp[equal] term[expr2] |) | definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] ) | ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] ) ( equalOp[equal] term[expr2] )? | definedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK ) | definedProp[expr] );
3871
 */
3872
static void
3873
523
atomicFormula(pTptpParser ctx, cvc5::api::Term& expr)
3874
{
3875
3876
1046
      cvc5::api::Term expr2;
3877
1046
      std::string name;
3878
1046
      std::vector<cvc5::api::Term> args;
3879
      bool equal;
3880
1046
      ParseOp p;
3881
3882
    /* Initialize rule variables
3883
     */
3884
3885
    {
3886
        {
3887
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:332:3: ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ( equalOp[equal] term[expr2] |) | definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] ) | ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] ) ( equalOp[equal] term[expr2] )? | definedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK ) | definedProp[expr] )
3888
3889
            ANTLR3_UINT32 alt22;
3890
3891
523
            alt22=5;
3892
3893
523
            switch ( LA(1) )
3894
            {
3895
447
            case CNF_TOK:
3896
            case FOF_TOK:
3897
            case INCLUDE_TOK:
3898
            case LOWER_WORD:
3899
            case LOWER_WORD_SINGLE_QUOTED:
3900
            case SINGLE_QUOTED:
3901
            case TFF_TOK:
3902
            case THF_TOK:
3903
            case TYPE_TOK:
3904
            	{
3905
447
            		alt22=1;
3906
            	}
3907
447
                break;
3908
2
            case 63:
3909
            case 64:
3910
            case 66:
3911
            case 79:
3912
            case 80:
3913
            case 81:
3914
            case 82:
3915
            case 83:
3916
            case 84:
3917
            case 85:
3918
            case 86:
3919
            case 87:
3920
            case 88:
3921
            case 90:
3922
            case 91:
3923
            case 92:
3924
            case 93:
3925
            case 94:
3926
            	{
3927
2
            		alt22=2;
3928
            	}
3929
2
                break;
3930
37
            case DISTINCT_OBJECT:
3931
            case NUMBER:
3932
            case UPPER_WORD:
3933
            case 72:
3934
            case 76:
3935
            case 78:
3936
            	{
3937
37
            		alt22=3;
3938
            	}
3939
37
                break;
3940
25
            case AND_TOK:
3941
            case IMPLIES_TOK:
3942
            case OR_TOK:
3943
            case 65:
3944
            case 67:
3945
            case 68:
3946
            case 69:
3947
            case 70:
3948
            case 73:
3949
            case 74:
3950
            	{
3951
25
            		alt22=4;
3952
            	}
3953
25
                break;
3954
12
            case FALSE_TOK:
3955
            case TRUE_TOK:
3956
            	{
3957
12
            		alt22=5;
3958
            	}
3959
12
                break;
3960
3961
            default:
3962
                CONSTRUCTEX();
3963
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3964
                EXCEPTION->message      = (void *)"";
3965
                EXCEPTION->decisionNum  = 22;
3966
                EXCEPTION->state        = 0;
3967
3968
3969
                goto ruleatomicFormulaEx;
3970
3971
            }
3972
3973
523
            switch (alt22)
3974
            {
3975
447
        	case 1:
3976
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:332:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ( equalOp[equal] term[expr2] |)
3977
        	    {
3978
447
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_atomicFormula633);
3979
447
        	        atomicWord(ctx, p.d_name);
3980
3981
447
        	        FOLLOWPOP();
3982
447
        	        if  (HASEXCEPTION())
3983
        	        {
3984
        	            goto ruleatomicFormulaEx;
3985
        	        }
3986
3987
3988
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:332:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
3989
        	        {
3990
447
        	            int alt18=2;
3991
447
        	            switch ( LA(1) )
3992
        	            {
3993
370
        	                case LPAREN_TOK:
3994
        	                	{
3995
370
        	                		alt18=1;
3996
        	                	}
3997
370
        	                    break;
3998
        	            }
3999
4000
447
        	            switch (alt18)
4001
        	            {
4002
370
        	        	case 1:
4003
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:332:27: LPAREN_TOK arguments[args] RPAREN_TOK
4004
        	        	    {
4005
370
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula637);
4006
370
        	        	        if  (HASEXCEPTION())
4007
        	        	        {
4008
        	        	            goto ruleatomicFormulaEx;
4009
        	        	        }
4010
4011
4012
370
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula639);
4013
370
        	        	        arguments(ctx, args);
4014
4015
370
        	        	        FOLLOWPOP();
4016
370
        	        	        if  (HASEXCEPTION())
4017
        	        	        {
4018
        	        	            goto ruleatomicFormulaEx;
4019
        	        	        }
4020
4021
4022
370
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula642);
4023
370
        	        	        if  (HASEXCEPTION())
4024
        	        	        {
4025
        	        	            goto ruleatomicFormulaEx;
4026
        	        	        }
4027
4028
4029
        	        	    }
4030
370
        	        	    break;
4031
4032
        	            }
4033
        	        }
4034
4035
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:333:5: ( equalOp[equal] term[expr2] |)
4036
        	        {
4037
447
        	            int alt19=2;
4038
447
        	            switch ( LA(1) )
4039
        	            {
4040
28
        	            case DISEQUAL_TOK:
4041
        	            case EQUAL_TOK:
4042
        	            	{
4043
28
        	            		alt19=1;
4044
        	            	}
4045
28
        	                break;
4046
419
        	            case EOF:
4047
        	            case AND_TOK:
4048
        	            case COMMA_TOK:
4049
        	            case IFF_TOK:
4050
        	            case IMPLIES_TOK:
4051
        	            case OR_TOK:
4052
        	            case REVAND_TOK:
4053
        	            case REVIFF_TOK:
4054
        	            case REVIMPLIES_TOK:
4055
        	            case REVOR_TOK:
4056
        	            case RPAREN_TOK:
4057
        	            	{
4058
419
        	            		alt19=2;
4059
        	            	}
4060
419
        	                break;
4061
4062
        	            default:
4063
        	                CONSTRUCTEX();
4064
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4065
        	                EXCEPTION->message      = (void *)"";
4066
        	                EXCEPTION->decisionNum  = 19;
4067
        	                EXCEPTION->state        = 0;
4068
4069
4070
        	                goto ruleatomicFormulaEx;
4071
4072
        	            }
4073
4074
447
        	            switch (alt19)
4075
        	            {
4076
28
        	        	case 1:
4077
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:333:7: equalOp[equal] term[expr2]
4078
        	        	    {
4079
28
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula652);
4080
28
        	        	        equalOp(ctx, equal);
4081
4082
28
        	        	        FOLLOWPOP();
4083
28
        	        	        if  (HASEXCEPTION())
4084
        	        	        {
4085
        	        	            goto ruleatomicFormulaEx;
4086
        	        	        }
4087
4088
4089
28
        	        	        FOLLOWPUSH(FOLLOW_term_in_atomicFormula655);
4090
28
        	        	        term(ctx, expr2);
4091
4092
28
        	        	        FOLLOWPOP();
4093
28
        	        	        if  (HASEXCEPTION())
4094
        	        	        {
4095
        	        	            goto ruleatomicFormulaEx;
4096
        	        	        }
4097
4098
4099
        	        	        {
4100
        	        	             // equality/disequality between terms
4101
49
        	        	                    expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4102
21
        	        	                                        : PARSER_STATE->applyParseOp(p, args);
4103
28
        	        	                    args.clear();
4104
28
        	        	                    args.push_back(expr);
4105
28
        	        	                    args.push_back(expr2);
4106
56
        	        	                    ParseOp p1(api::EQUAL);
4107
28
        	        	                    expr = PARSER_STATE->applyParseOp(p1, args);
4108
28
        	        	                    if (!equal)
4109
        	        	                    {
4110
13
        	        	                      expr = MK_TERM(api::NOT, expr);
4111
        	        	                    }
4112
4113
28
        	        	        }
4114
4115
4116
        	        	    }
4117
28
        	        	    break;
4118
419
        	        	case 2:
4119
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:347:7:
4120
        	        	    {
4121
        	        	        {
4122
        	        	             // predicate
4123
419
        	        	                    p.d_type = SOLVER->getBooleanSort();
4124
768
        	        	                    expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4125
349
        	        	                                        : PARSER_STATE->applyParseOp(p, args);
4126
4127
        	        	        }
4128
4129
4130
        	        	    }
4131
419
        	        	    break;
4132
4133
        	            }
4134
        	        }
4135
4136
        	    }
4137
447
        	    break;
4138
2
        	case 2:
4139
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:353:5: definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )
4140
        	    {
4141
2
        	        FOLLOWPUSH(FOLLOW_definedFun_in_atomicFormula684);
4142
2
        	        definedFun(ctx, p);
4143
4144
2
        	        FOLLOWPOP();
4145
2
        	        if  (HASEXCEPTION())
4146
        	        {
4147
        	            goto ruleatomicFormulaEx;
4148
        	        }
4149
4150
4151
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:354:5: ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )
4152
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:355:6: LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2]
4153
        	        {
4154
2
        	             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula698);
4155
2
        	            if  (HASEXCEPTION())
4156
        	            {
4157
        	                goto ruleatomicFormulaEx;
4158
        	            }
4159
4160
4161
2
        	            FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula700);
4162
2
        	            arguments(ctx, args);
4163
4164
2
        	            FOLLOWPOP();
4165
2
        	            if  (HASEXCEPTION())
4166
        	            {
4167
        	                goto ruleatomicFormulaEx;
4168
        	            }
4169
4170
4171
2
        	             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula703);
4172
2
        	            if  (HASEXCEPTION())
4173
        	            {
4174
        	                goto ruleatomicFormulaEx;
4175
        	            }
4176
4177
4178
2
        	            FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula710);
4179
2
        	            equalOp(ctx, equal);
4180
4181
2
        	            FOLLOWPOP();
4182
2
        	            if  (HASEXCEPTION())
4183
        	            {
4184
        	                goto ruleatomicFormulaEx;
4185
        	            }
4186
4187
4188
2
        	            FOLLOWPUSH(FOLLOW_term_in_atomicFormula713);
4189
2
        	            term(ctx, expr2);
4190
4191
2
        	            FOLLOWPOP();
4192
2
        	            if  (HASEXCEPTION())
4193
        	            {
4194
        	                goto ruleatomicFormulaEx;
4195
        	            }
4196
4197
4198
        	            {
4199
4200
2
        	                       expr = PARSER_STATE->applyParseOp(p, args);
4201
2
        	                       args.clear();
4202
2
        	                       args.push_back(expr);
4203
2
        	                       args.push_back(expr2);
4204
4
        	                       ParseOp p1(api::EQUAL);
4205
2
        	                       expr = PARSER_STATE->applyParseOp(p1, args);
4206
2
        	                       if (!equal)
4207
        	                       {
4208
        	                         expr = MK_TERM(api::NOT, expr);
4209
        	                       }
4210
4211
        	            }
4212
4213
4214
2
        	        }
4215
4216
4217
        	    }
4218
2
        	    break;
4219
37
        	case 3:
4220
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:370:5: ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] ) ( equalOp[equal] term[expr2] )?
4221
        	    {
4222
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:370:5: ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] )
4223
        	        {
4224
37
        	            int alt20=3;
4225
37
        	            switch ( LA(1) )
4226
        	            {
4227
37
        	            case DISTINCT_OBJECT:
4228
        	            case NUMBER:
4229
        	            case UPPER_WORD:
4230
        	            	{
4231
37
        	            		alt20=1;
4232
        	            	}
4233
37
        	                break;
4234
        	            case 76:
4235
        	            case 78:
4236
        	            	{
4237
        	            		alt20=2;
4238
        	            	}
4239
        	                break;
4240
        	            case 72:
4241
        	            	{
4242
        	            		alt20=3;
4243
        	            	}
4244
        	                break;
4245
4246
        	            default:
4247
        	                CONSTRUCTEX();
4248
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4249
        	                EXCEPTION->message      = (void *)"";
4250
        	                EXCEPTION->decisionNum  = 20;
4251
        	                EXCEPTION->state        = 0;
4252
4253
4254
        	                goto ruleatomicFormulaEx;
4255
4256
        	            }
4257
4258
37
        	            switch (alt20)
4259
        	            {
4260
37
        	        	case 1:
4261
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:370:6: simpleTerm[expr]
4262
        	        	    {
4263
37
        	        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_atomicFormula734);
4264
37
        	        	        simpleTerm(ctx, expr);
4265
4266
37
        	        	        FOLLOWPOP();
4267
37
        	        	        if  (HASEXCEPTION())
4268
        	        	        {
4269
        	        	            goto ruleatomicFormulaEx;
4270
        	        	        }
4271
4272
4273
        	        	    }
4274
37
        	        	    break;
4275
        	        	case 2:
4276
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:370:25: letTerm[expr]
4277
        	        	    {
4278
        	        	        FOLLOWPUSH(FOLLOW_letTerm_in_atomicFormula739);
4279
        	        	        letTerm(ctx, expr);
4280
4281
        	        	        FOLLOWPOP();
4282
        	        	        if  (HASEXCEPTION())
4283
        	        	        {
4284
        	        	            goto ruleatomicFormulaEx;
4285
        	        	        }
4286
4287
4288
        	        	    }
4289
        	        	    break;
4290
        	        	case 3:
4291
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:370:41: conditionalTerm[expr]
4292
        	        	    {
4293
        	        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_atomicFormula744);
4294
        	        	        conditionalTerm(ctx, expr);
4295
4296
        	        	        FOLLOWPOP();
4297
        	        	        if  (HASEXCEPTION())
4298
        	        	        {
4299
        	        	            goto ruleatomicFormulaEx;
4300
        	        	        }
4301
4302
4303
        	        	    }
4304
        	        	    break;
4305
4306
        	            }
4307
        	        }
4308
4309
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:371:5: ( equalOp[equal] term[expr2] )?
4310
        	        {
4311
37
        	            int alt21=2;
4312
37
        	            switch ( LA(1) )
4313
        	            {
4314
37
        	                case DISEQUAL_TOK:
4315
        	                case EQUAL_TOK:
4316
        	                	{
4317
37
        	                		alt21=1;
4318
        	                	}
4319
37
        	                    break;
4320
        	            }
4321
4322
37
        	            switch (alt21)
4323
        	            {
4324
37
        	        	case 1:
4325
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:372:7: equalOp[equal] term[expr2]
4326
        	        	    {
4327
37
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula760);
4328
37
        	        	        equalOp(ctx, equal);
4329
4330
37
        	        	        FOLLOWPOP();
4331
37
        	        	        if  (HASEXCEPTION())
4332
        	        	        {
4333
        	        	            goto ruleatomicFormulaEx;
4334
        	        	        }
4335
4336
4337
37
        	        	        FOLLOWPUSH(FOLLOW_term_in_atomicFormula763);
4338
37
        	        	        term(ctx, expr2);
4339
4340
37
        	        	        FOLLOWPOP();
4341
37
        	        	        if  (HASEXCEPTION())
4342
        	        	        {
4343
        	        	            goto ruleatomicFormulaEx;
4344
        	        	        }
4345
4346
4347
        	        	        {
4348
        	        	             // equality/disequality between terms
4349
37
        	        	                    args.push_back(expr);
4350
37
        	        	                    args.push_back(expr2);
4351
37
        	        	                    p.d_kind = api::EQUAL;
4352
37
        	        	                    expr = PARSER_STATE->applyParseOp(p, args);
4353
37
        	        	                    if (!equal)
4354
        	        	                    {
4355
10
        	        	                      expr = MK_TERM(api::NOT, expr);
4356
        	        	                    }
4357
4358
        	        	        }
4359
4360
4361
        	        	    }
4362
37
        	        	    break;
4363
4364
        	            }
4365
        	        }
4366
4367
        	    }
4368
37
        	    break;
4369
25
        	case 4:
4370
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:384:5: definedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )
4371
        	    {
4372
25
        	        FOLLOWPUSH(FOLLOW_definedPred_in_atomicFormula785);
4373
25
        	        definedPred(ctx, p);
4374
4375
25
        	        FOLLOWPOP();
4376
25
        	        if  (HASEXCEPTION())
4377
        	        {
4378
        	            goto ruleatomicFormulaEx;
4379
        	        }
4380
4381
4382
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:384:20: ( LPAREN_TOK arguments[args] RPAREN_TOK )
4383
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:384:21: LPAREN_TOK arguments[args] RPAREN_TOK
4384
        	        {
4385
25
        	             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula789);
4386
25
        	            if  (HASEXCEPTION())
4387
        	            {
4388
        	                goto ruleatomicFormulaEx;
4389
        	            }
4390
4391
4392
25
        	            FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula791);
4393
25
        	            arguments(ctx, args);
4394
4395
25
        	            FOLLOWPOP();
4396
25
        	            if  (HASEXCEPTION())
4397
        	            {
4398
        	                goto ruleatomicFormulaEx;
4399
        	            }
4400
4401
4402
25
        	             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula794);
4403
25
        	            if  (HASEXCEPTION())
4404
        	            {
4405
        	                goto ruleatomicFormulaEx;
4406
        	            }
4407
4408
4409
        	        }
4410
4411
4412
        	        {
4413
4414
25
        	                  p.d_type = SOLVER->getBooleanSort();
4415
25
        	                  expr = PARSER_STATE->applyParseOp(p, args);
4416
4417
        	        }
4418
4419
4420
        	    }
4421
25
        	    break;
4422
12
        	case 5:
4423
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:389:5: definedProp[expr]
4424
        	    {
4425
12
        	        FOLLOWPUSH(FOLLOW_definedProp_in_atomicFormula807);
4426
12
        	        definedProp(ctx, expr);
4427
4428
12
        	        FOLLOWPOP();
4429
12
        	        if  (HASEXCEPTION())
4430
        	        {
4431
        	            goto ruleatomicFormulaEx;
4432
        	        }
4433
4434
4435
        	    }
4436
12
        	    break;
4437
4438
            }
4439
        }
4440
    }
4441
4442
    // This is where rules clean up and exit
4443
    //
4444
523
    goto ruleatomicFormulaEx; /* Prevent compiler warnings */
4445
523
    ruleatomicFormulaEx: ;
4446
4447
523
            if (HASEXCEPTION())
4448
            {
4449
                PREPORTERROR();
4450
                PRECOVER();
4451
            }
4452
1046
    return ;
4453
}
4454
/* $ANTLR end atomicFormula */
4455
4456
/**
4457
 * $ANTLR start thfAtomicFormula
4458
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:392:1: thfAtomicFormula[cvc5::ParseOp& p] : ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? | definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )? | thfSimpleTerm[p.d_expr] | letTerm[p.d_expr] | conditionalTerm[p.d_expr] | thfDefinedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )? | definedProp[p.d_expr] );
4459
 */
4460
static void
4461
5069
thfAtomicFormula(pTptpParser ctx, cvc5::ParseOp& p)
4462
{
4463
4464
10138
      cvc5::api::Term expr2;
4465
10138
      std::string name;
4466
10138
      std::vector<cvc5::api::Term> args;
4467
      bool equal;
4468
4469
    /* Initialize rule variables
4470
     */
4471
4472
    {
4473
        {
4474
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:399:3: ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? | definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )? | thfSimpleTerm[p.d_expr] | letTerm[p.d_expr] | conditionalTerm[p.d_expr] | thfDefinedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )? | definedProp[p.d_expr] )
4475
4476
            ANTLR3_UINT32 alt26;
4477
4478
5069
            alt26=7;
4479
4480
5069
            switch ( LA(1) )
4481
            {
4482
4989
            case CNF_TOK:
4483
            case FOF_TOK:
4484
            case INCLUDE_TOK:
4485
            case LOWER_WORD:
4486
            case LOWER_WORD_SINGLE_QUOTED:
4487
            case SINGLE_QUOTED:
4488
            case TFF_TOK:
4489
            case THF_TOK:
4490
            case TYPE_TOK:
4491
            	{
4492
4989
            		alt26=1;
4493
            	}
4494
4989
                break;
4495
            case 63:
4496
            case 64:
4497
            case 66:
4498
            case 79:
4499
            case 80:
4500
            case 81:
4501
            case 82:
4502
            case 83:
4503
            case 84:
4504
            case 85:
4505
            case 86:
4506
            case 87:
4507
            case 88:
4508
            case 90:
4509
            case 91:
4510
            case 92:
4511
            case 93:
4512
            case 94:
4513
            	{
4514
            		alt26=2;
4515
            	}
4516
                break;
4517
            case DISTINCT_OBJECT:
4518
            case NUMBER:
4519
            	{
4520
            		alt26=3;
4521
            	}
4522
                break;
4523
            case 76:
4524
            case 78:
4525
            	{
4526
            		alt26=4;
4527
            	}
4528
                break;
4529
            case 72:
4530
            	{
4531
            		alt26=5;
4532
            	}
4533
                break;
4534
68
            case LPAREN_TOK:
4535
            case 65:
4536
            case 67:
4537
            case 68:
4538
            case 69:
4539
            case 70:
4540
            case 73:
4541
            case 74:
4542
            	{
4543
68
            		alt26=6;
4544
            	}
4545
68
                break;
4546
12
            case FALSE_TOK:
4547
            case TRUE_TOK:
4548
            	{
4549
12
            		alt26=7;
4550
            	}
4551
12
                break;
4552
4553
            default:
4554
                CONSTRUCTEX();
4555
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4556
                EXCEPTION->message      = (void *)"";
4557
                EXCEPTION->decisionNum  = 26;
4558
                EXCEPTION->state        = 0;
4559
4560
4561
                goto rulethfAtomicFormulaEx;
4562
4563
            }
4564
4565
5069
            switch (alt26)
4566
            {
4567
4989
        	case 1:
4568
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:399:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4569
        	    {
4570
4989
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_thfAtomicFormula827);
4571
4989
        	        atomicWord(ctx, p.d_name);
4572
4573
4989
        	        FOLLOWPOP();
4574
4989
        	        if  (HASEXCEPTION())
4575
        	        {
4576
        	            goto rulethfAtomicFormulaEx;
4577
        	        }
4578
4579
4580
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:399:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4581
        	        {
4582
4989
        	            int alt23=2;
4583
4989
        	            switch ( LA(1) )
4584
        	            {
4585
        	                case LPAREN_TOK:
4586
        	                	{
4587
        	                		alt23=1;
4588
        	                	}
4589
        	                    break;
4590
        	            }
4591
4592
4989
        	            switch (alt23)
4593
        	            {
4594
        	        	case 1:
4595
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:399:27: LPAREN_TOK arguments[args] RPAREN_TOK
4596
        	        	    {
4597
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula831);
4598
        	        	        if  (HASEXCEPTION())
4599
        	        	        {
4600
        	        	            goto rulethfAtomicFormulaEx;
4601
        	        	        }
4602
4603
4604
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula833);
4605
        	        	        arguments(ctx, args);
4606
4607
        	        	        FOLLOWPOP();
4608
        	        	        if  (HASEXCEPTION())
4609
        	        	        {
4610
        	        	            goto rulethfAtomicFormulaEx;
4611
        	        	        }
4612
4613
4614
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula836);
4615
        	        	        if  (HASEXCEPTION())
4616
        	        	        {
4617
        	        	            goto rulethfAtomicFormulaEx;
4618
        	        	        }
4619
4620
4621
        	        	    }
4622
        	        	    break;
4623
4624
        	            }
4625
        	        }
4626
4627
        	        {
4628
4629
9978
        	                  p.d_expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4630
4989
        	                                          : PARSER_STATE->applyParseOp(p, args);
4631
4632
        	        }
4633
4634
4635
        	    }
4636
4989
        	    break;
4637
        	case 2:
4638
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:404:5: definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )?
4639
        	    {
4640
        	        FOLLOWPUSH(FOLLOW_definedFun_in_thfAtomicFormula850);
4641
        	        definedFun(ctx, p);
4642
4643
        	        FOLLOWPOP();
4644
        	        if  (HASEXCEPTION())
4645
        	        {
4646
        	            goto rulethfAtomicFormulaEx;
4647
        	        }
4648
4649
4650
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:405:5: ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )?
4651
        	        {
4652
        	            int alt24=2;
4653
        	            switch ( LA(1) )
4654
        	            {
4655
        	                case LPAREN_TOK:
4656
        	                	{
4657
        	                		alt24=1;
4658
        	                	}
4659
        	                    break;
4660
        	            }
4661
4662
        	            switch (alt24)
4663
        	            {
4664
        	        	case 1:
4665
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:406:7: LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2]
4666
        	        	    {
4667
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula865);
4668
        	        	        if  (HASEXCEPTION())
4669
        	        	        {
4670
        	        	            goto rulethfAtomicFormulaEx;
4671
        	        	        }
4672
4673
4674
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula867);
4675
        	        	        arguments(ctx, args);
4676
4677
        	        	        FOLLOWPOP();
4678
        	        	        if  (HASEXCEPTION())
4679
        	        	        {
4680
        	        	            goto rulethfAtomicFormulaEx;
4681
        	        	        }
4682
4683
4684
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula870);
4685
        	        	        if  (HASEXCEPTION())
4686
        	        	        {
4687
        	        	            goto rulethfAtomicFormulaEx;
4688
        	        	        }
4689
4690
4691
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_thfAtomicFormula878);
4692
        	        	        equalOp(ctx, equal);
4693
4694
        	        	        FOLLOWPOP();
4695
        	        	        if  (HASEXCEPTION())
4696
        	        	        {
4697
        	        	            goto rulethfAtomicFormulaEx;
4698
        	        	        }
4699
4700
4701
        	        	        FOLLOWPUSH(FOLLOW_term_in_thfAtomicFormula881);
4702
        	        	        term(ctx, expr2);
4703
4704
        	        	        FOLLOWPOP();
4705
        	        	        if  (HASEXCEPTION())
4706
        	        	        {
4707
        	        	            goto rulethfAtomicFormulaEx;
4708
        	        	        }
4709
4710
4711
        	        	        {
4712
4713
        	        	                    p.d_expr = PARSER_STATE->applyParseOp(p, args);
4714
        	        	                    args.clear();
4715
        	        	                    args.push_back(p.d_expr);
4716
        	        	                    args.push_back(expr2);
4717
        	        	                    ParseOp p1(api::EQUAL);
4718
        	        	                    p.d_expr = PARSER_STATE->applyParseOp(p1, args);
4719
        	        	                    if (!equal)
4720
        	        	                    {
4721
        	        	                      p.d_expr = MK_TERM(api::NOT, p.d_expr);
4722
        	        	                    }
4723
4724
        	        	        }
4725
4726
4727
        	        	    }
4728
        	        	    break;
4729
4730
        	            }
4731
        	        }
4732
4733
        	    }
4734
        	    break;
4735
        	case 3:
4736
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:421:5: thfSimpleTerm[p.d_expr]
4737
        	    {
4738
        	        FOLLOWPUSH(FOLLOW_thfSimpleTerm_in_thfAtomicFormula903);
4739
        	        thfSimpleTerm(ctx, p.d_expr);
4740
4741
        	        FOLLOWPOP();
4742
        	        if  (HASEXCEPTION())
4743
        	        {
4744
        	            goto rulethfAtomicFormulaEx;
4745
        	        }
4746
4747
4748
        	    }
4749
        	    break;
4750
        	case 4:
4751
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:422:5: letTerm[p.d_expr]
4752
        	    {
4753
        	        FOLLOWPUSH(FOLLOW_letTerm_in_thfAtomicFormula910);
4754
        	        letTerm(ctx, p.d_expr);
4755
4756
        	        FOLLOWPOP();
4757
        	        if  (HASEXCEPTION())
4758
        	        {
4759
        	            goto rulethfAtomicFormulaEx;
4760
        	        }
4761
4762
4763
        	    }
4764
        	    break;
4765
        	case 5:
4766
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:423:5: conditionalTerm[p.d_expr]
4767
        	    {
4768
        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_thfAtomicFormula917);
4769
        	        conditionalTerm(ctx, p.d_expr);
4770
4771
        	        FOLLOWPOP();
4772
        	        if  (HASEXCEPTION())
4773
        	        {
4774
        	            goto rulethfAtomicFormulaEx;
4775
        	        }
4776
4777
4778
        	    }
4779
        	    break;
4780
68
        	case 6:
4781
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:424:5: thfDefinedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4782
        	    {
4783
68
        	        FOLLOWPUSH(FOLLOW_thfDefinedPred_in_thfAtomicFormula924);
4784
68
        	        thfDefinedPred(ctx, p);
4785
4786
68
        	        FOLLOWPOP();
4787
68
        	        if  (HASEXCEPTION())
4788
        	        {
4789
        	            goto rulethfAtomicFormulaEx;
4790
        	        }
4791
4792
4793
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:424:23: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4794
        	        {
4795
68
        	            int alt25=2;
4796
68
        	            switch ( LA(1) )
4797
        	            {
4798
        	                case LPAREN_TOK:
4799
        	                	{
4800
        	                		alt25=1;
4801
        	                	}
4802
        	                    break;
4803
        	            }
4804
4805
68
        	            switch (alt25)
4806
        	            {
4807
        	        	case 1:
4808
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:424:24: LPAREN_TOK arguments[args] RPAREN_TOK
4809
        	        	    {
4810
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula928);
4811
        	        	        if  (HASEXCEPTION())
4812
        	        	        {
4813
        	        	            goto rulethfAtomicFormulaEx;
4814
        	        	        }
4815
4816
4817
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula930);
4818
        	        	        arguments(ctx, args);
4819
4820
        	        	        FOLLOWPOP();
4821
        	        	        if  (HASEXCEPTION())
4822
        	        	        {
4823
        	        	            goto rulethfAtomicFormulaEx;
4824
        	        	        }
4825
4826
4827
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula933);
4828
        	        	        if  (HASEXCEPTION())
4829
        	        	        {
4830
        	        	            goto rulethfAtomicFormulaEx;
4831
        	        	        }
4832
4833
4834
        	        	    }
4835
        	        	    break;
4836
4837
        	            }
4838
        	        }
4839
4840
        	        {
4841
4842
68
        	                  p.d_type = SOLVER->getBooleanSort();
4843
68
        	                  if (!args.empty())
4844
        	                  {
4845
        	                    p.d_expr = PARSER_STATE->applyParseOp(p, args);
4846
        	                  }
4847
4848
        	        }
4849
4850
4851
        	    }
4852
68
        	    break;
4853
12
        	case 7:
4854
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:432:5: definedProp[p.d_expr]
4855
        	    {
4856
12
        	        FOLLOWPUSH(FOLLOW_definedProp_in_thfAtomicFormula947);
4857
12
        	        definedProp(ctx, p.d_expr);
4858
4859
12
        	        FOLLOWPOP();
4860
12
        	        if  (HASEXCEPTION())
4861
        	        {
4862
        	            goto rulethfAtomicFormulaEx;
4863
        	        }
4864
4865
4866
        	    }
4867
12
        	    break;
4868
4869
            }
4870
        }
4871
    }
4872
4873
    // This is where rules clean up and exit
4874
    //
4875
5069
    goto rulethfAtomicFormulaEx; /* Prevent compiler warnings */
4876
5069
    rulethfAtomicFormulaEx: ;
4877
4878
5069
            if (HASEXCEPTION())
4879
            {
4880
                PREPORTERROR();
4881
                PRECOVER();
4882
            }
4883
10138
    return ;
4884
}
4885
/* $ANTLR end thfAtomicFormula */
4886
4887
/**
4888
 * $ANTLR start definedProp
4889
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:438:1: definedProp[cvc5::api::Term& expr] : ( TRUE_TOK | FALSE_TOK );
4890
 */
4891
static void
4892
24
definedProp(pTptpParser ctx, cvc5::api::Term& expr)
4893
{
4894
    /* Initialize rule variables
4895
     */
4896
4897
    {
4898
        {
4899
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:439:3: ( TRUE_TOK | FALSE_TOK )
4900
4901
            ANTLR3_UINT32 alt27;
4902
4903
24
            alt27=2;
4904
4905
24
            switch ( LA(1) )
4906
            {
4907
7
            case TRUE_TOK:
4908
            	{
4909
7
            		alt27=1;
4910
            	}
4911
7
                break;
4912
17
            case FALSE_TOK:
4913
            	{
4914
17
            		alt27=2;
4915
            	}
4916
17
                break;
4917
4918
            default:
4919
                CONSTRUCTEX();
4920
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4921
                EXCEPTION->message      = (void *)"";
4922
                EXCEPTION->decisionNum  = 27;
4923
                EXCEPTION->state        = 0;
4924
4925
4926
                goto ruledefinedPropEx;
4927
4928
            }
4929
4930
24
            switch (alt27)
4931
            {
4932
7
        	case 1:
4933
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:439:5: TRUE_TOK
4934
        	    {
4935
7
        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_definedProp965);
4936
7
        	        if  (HASEXCEPTION())
4937
        	        {
4938
        	            goto ruledefinedPropEx;
4939
        	        }
4940
4941
4942
        	        {
4943
7
        	             expr = SOLVER->mkTrue();
4944
        	        }
4945
4946
4947
        	    }
4948
7
        	    break;
4949
17
        	case 2:
4950
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:440:5: FALSE_TOK
4951
        	    {
4952
17
        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_definedProp973);
4953
17
        	        if  (HASEXCEPTION())
4954
        	        {
4955
        	            goto ruledefinedPropEx;
4956
        	        }
4957
4958
4959
        	        {
4960
17
        	             expr = SOLVER->mkFalse();
4961
        	        }
4962
4963
4964
        	    }
4965
17
        	    break;
4966
4967
            }
4968
        }
4969
    }
4970
4971
    // This is where rules clean up and exit
4972
    //
4973
24
    goto ruledefinedPropEx; /* Prevent compiler warnings */
4974
24
    ruledefinedPropEx: ;
4975
4976
24
            if (HASEXCEPTION())
4977
            {
4978
                PREPORTERROR();
4979
                PRECOVER();
4980
            }
4981
24
    return ;
4982
}
4983
/* $ANTLR end definedProp */
4984
4985
/**
4986
 * $ANTLR start definedPred
4987
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:443:1: definedPred[cvc5::ParseOp& p] : ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | AND_TOK | IMPLIES_TOK | OR_TOK );
4988
 */
4989
static void
4990
25
definedPred(pTptpParser ctx, cvc5::ParseOp& p)
4991
{
4992
    /* Initialize rule variables
4993
     */
4994
4995
    {
4996
        {
4997
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:444:3: ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | AND_TOK | IMPLIES_TOK | OR_TOK )
4998
4999
            ANTLR3_UINT32 alt28;
5000
5001
25
            alt28=10;
5002
5003
25
            switch ( LA(1) )
5004
            {
5005
8
            case 73:
5006
            	{
5007
8
            		alt28=1;
5008
            	}
5009
8
                break;
5010
3
            case 74:
5011
            	{
5012
3
            		alt28=2;
5013
            	}
5014
3
                break;
5015
4
            case 67:
5016
            	{
5017
4
            		alt28=3;
5018
            	}
5019
4
                break;
5020
4
            case 68:
5021
            	{
5022
4
            		alt28=4;
5023
            	}
5024
4
                break;
5025
3
            case 70:
5026
            	{
5027
3
            		alt28=5;
5028
            	}
5029
3
                break;
5030
3
            case 69:
5031
            	{
5032
3
            		alt28=6;
5033
            	}
5034
3
                break;
5035
            case 65:
5036
            	{
5037
            		alt28=7;
5038
            	}
5039
                break;
5040
            case AND_TOK:
5041
            	{
5042
            		alt28=8;
5043
            	}
5044
                break;
5045
            case IMPLIES_TOK:
5046
            	{
5047
            		alt28=9;
5048
            	}
5049
                break;
5050
            case OR_TOK:
5051
            	{
5052
            		alt28=10;
5053
            	}
5054
                break;
5055
5056
            default:
5057
                CONSTRUCTEX();
5058
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5059
                EXCEPTION->message      = (void *)"";
5060
                EXCEPTION->decisionNum  = 28;
5061
                EXCEPTION->state        = 0;
5062
5063
5064
                goto ruledefinedPredEx;
5065
5066
            }
5067
5068
25
            switch (alt28)
5069
            {
5070
8
        	case 1:
5071
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:444:5: '$less'
5072
        	    {
5073
8
        	         MATCHT(73, &FOLLOW_73_in_definedPred990);
5074
8
        	        if  (HASEXCEPTION())
5075
        	        {
5076
        	            goto ruledefinedPredEx;
5077
        	        }
5078
5079
5080
        	        {
5081
5082
8
        	                  p.d_kind = api::LT;
5083
5084
        	        }
5085
5086
5087
        	    }
5088
8
        	    break;
5089
3
        	case 2:
5090
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:448:5: '$lesseq'
5091
        	    {
5092
3
        	         MATCHT(74, &FOLLOW_74_in_definedPred1002);
5093
3
        	        if  (HASEXCEPTION())
5094
        	        {
5095
        	            goto ruledefinedPredEx;
5096
        	        }
5097
5098
5099
        	        {
5100
5101
3
        	                  p.d_kind = api::LEQ;
5102
5103
        	        }
5104
5105
5106
        	    }
5107
3
        	    break;
5108
4
        	case 3:
5109
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:452:5: '$greater'
5110
        	    {
5111
4
        	         MATCHT(67, &FOLLOW_67_in_definedPred1014);
5112
4
        	        if  (HASEXCEPTION())
5113
        	        {
5114
        	            goto ruledefinedPredEx;
5115
        	        }
5116
5117
5118
        	        {
5119
5120
4
        	                  p.d_kind = api::GT;
5121
5122
        	        }
5123
5124
5125
        	    }
5126
4
        	    break;
5127
4
        	case 4:
5128
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:456:5: '$greatereq'
5129
        	    {
5130
4
        	         MATCHT(68, &FOLLOW_68_in_definedPred1026);
5131
4
        	        if  (HASEXCEPTION())
5132
        	        {
5133
        	            goto ruledefinedPredEx;
5134
        	        }
5135
5136
5137
        	        {
5138
5139
4
        	                  p.d_kind = api::GEQ;
5140
5141
        	        }
5142
5143
5144
        	    }
5145
4
        	    break;
5146
3
        	case 5:
5147
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:460:5: '$is_rat'
5148
        	    {
5149
3
        	         MATCHT(70, &FOLLOW_70_in_definedPred1038);
5150
3
        	        if  (HASEXCEPTION())
5151
        	        {
5152
        	            goto ruledefinedPredEx;
5153
        	        }
5154
5155
5156
        	        {
5157
5158
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5159
6
        	                  api::Term q = SOLVER->mkVar(SOLVER->getIntegerSort(), "Q");
5160
6
        	                  api::Term qr = MK_TERM(api::TO_REAL, q);
5161
6
        	                  api::Term r = SOLVER->mkVar(SOLVER->getIntegerSort(), "R");
5162
6
        	                  api::Term rr = MK_TERM(api::TO_REAL, r);
5163
        	                  api::Term body =
5164
3
        	                      MK_TERM(api::AND,
5165
9
        	                              MK_TERM(api::NOT,
5166
6
        	                                      MK_TERM(api::EQUAL, r, SOLVER->mkInteger(0))),
5167
12
        	                              MK_TERM(api::EQUAL, qr, MK_TERM(api::MULT, n, rr)));
5168
6
        	                  api::Term bvl = MK_TERM(api::BOUND_VAR_LIST, q, r);
5169
3
        	                  body = MK_TERM(api::EXISTS, bvl, body);
5170
6
        	                  api::Term lbvl = MK_TERM(api::BOUND_VAR_LIST, n);
5171
3
        	                  p.d_kind = api::LAMBDA;
5172
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, lbvl, body);
5173
5174
3
        	        }
5175
5176
5177
        	    }
5178
3
        	    break;
5179
3
        	case 6:
5180
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:481:5: '$is_int'
5181
        	    {
5182
3
        	         MATCHT(69, &FOLLOW_69_in_definedPred1065);
5183
3
        	        if  (HASEXCEPTION())
5184
        	        {
5185
        	            goto ruledefinedPredEx;
5186
        	        }
5187
5188
5189
        	        {
5190
5191
3
        	                  p.d_kind = api::IS_INTEGER;
5192
5193
        	        }
5194
5195
5196
        	    }
5197
3
        	    break;
5198
        	case 7:
5199
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:485:5: '$distinct'
5200
        	    {
5201
        	         MATCHT(65, &FOLLOW_65_in_definedPred1077);
5202
        	        if  (HASEXCEPTION())
5203
        	        {
5204
        	            goto ruledefinedPredEx;
5205
        	        }
5206
5207
5208
        	        {
5209
5210
        	                  p.d_kind = api::DISTINCT;
5211
5212
        	        }
5213
5214
5215
        	    }
5216
        	    break;
5217
        	case 8:
5218
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:489:5: AND_TOK
5219
        	    {
5220
        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_definedPred1089);
5221
        	        if  (HASEXCEPTION())
5222
        	        {
5223
        	            goto ruledefinedPredEx;
5224
        	        }
5225
5226
5227
        	        {
5228
5229
        	                  p.d_kind = api::AND;
5230
5231
        	        }
5232
5233
5234
        	    }
5235
        	    break;
5236
        	case 9:
5237
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:493:5: IMPLIES_TOK
5238
        	    {
5239
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_definedPred1101);
5240
        	        if  (HASEXCEPTION())
5241
        	        {
5242
        	            goto ruledefinedPredEx;
5243
        	        }
5244
5245
5246
        	        {
5247
5248
        	                  p.d_kind = api::IMPLIES;
5249
5250
        	        }
5251
5252
5253
        	    }
5254
        	    break;
5255
        	case 10:
5256
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:497:5: OR_TOK
5257
        	    {
5258
        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_definedPred1113);
5259
        	        if  (HASEXCEPTION())
5260
        	        {
5261
        	            goto ruledefinedPredEx;
5262
        	        }
5263
5264
5265
        	        {
5266
5267
        	                  p.d_kind = api::OR;
5268
5269
        	        }
5270
5271
5272
        	    }
5273
        	    break;
5274
5275
            }
5276
        }
5277
    }
5278
5279
    // This is where rules clean up and exit
5280
    //
5281
25
    goto ruledefinedPredEx; /* Prevent compiler warnings */
5282
25
    ruledefinedPredEx: ;
5283
5284
25
            if (HASEXCEPTION())
5285
            {
5286
                PREPORTERROR();
5287
                PRECOVER();
5288
            }
5289
25
    return ;
5290
}
5291
/* $ANTLR end definedPred */
5292
5293
/**
5294
 * $ANTLR start thfDefinedPred
5295
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:503:1: thfDefinedPred[cvc5::ParseOp& p] : ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK );
5296
 */
5297
static void
5298
68
thfDefinedPred(pTptpParser ctx, cvc5::ParseOp& p)
5299
{
5300
    /* Initialize rule variables
5301
     */
5302
5303
    {
5304
        {
5305
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:504:3: ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK )
5306
5307
            ANTLR3_UINT32 alt30;
5308
5309
68
            alt30=8;
5310
5311
68
            switch ( LA(1) )
5312
            {
5313
            case 73:
5314
            	{
5315
            		alt30=1;
5316
            	}
5317
                break;
5318
            case 74:
5319
            	{
5320
            		alt30=2;
5321
            	}
5322
                break;
5323
            case 67:
5324
            	{
5325
            		alt30=3;
5326
            	}
5327
                break;
5328
            case 68:
5329
            	{
5330
            		alt30=4;
5331
            	}
5332
                break;
5333
            case 70:
5334
            	{
5335
            		alt30=5;
5336
            	}
5337
                break;
5338
            case 69:
5339
            	{
5340
            		alt30=6;
5341
            	}
5342
                break;
5343
            case 65:
5344
            	{
5345
            		alt30=7;
5346
            	}
5347
                break;
5348
68
            case LPAREN_TOK:
5349
            	{
5350
68
            		alt30=8;
5351
            	}
5352
68
                break;
5353
5354
            default:
5355
                CONSTRUCTEX();
5356
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5357
                EXCEPTION->message      = (void *)"";
5358
                EXCEPTION->decisionNum  = 30;
5359
                EXCEPTION->state        = 0;
5360
5361
5362
                goto rulethfDefinedPredEx;
5363
5364
            }
5365
5366
68
            switch (alt30)
5367
            {
5368
        	case 1:
5369
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:504:5: '$less'
5370
        	    {
5371
        	         MATCHT(73, &FOLLOW_73_in_thfDefinedPred1133);
5372
        	        if  (HASEXCEPTION())
5373
        	        {
5374
        	            goto rulethfDefinedPredEx;
5375
        	        }
5376
5377
5378
        	        {
5379
5380
        	                   p.d_kind = api::LT;
5381
5382
        	        }
5383
5384
5385
        	    }
5386
        	    break;
5387
        	case 2:
5388
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:508:5: '$lesseq'
5389
        	    {
5390
        	         MATCHT(74, &FOLLOW_74_in_thfDefinedPred1146);
5391
        	        if  (HASEXCEPTION())
5392
        	        {
5393
        	            goto rulethfDefinedPredEx;
5394
        	        }
5395
5396
5397
        	        {
5398
5399
        	                  p.d_kind = api::LEQ;
5400
5401
        	        }
5402
5403
5404
        	    }
5405
        	    break;
5406
        	case 3:
5407
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:512:5: '$greater'
5408
        	    {
5409
        	         MATCHT(67, &FOLLOW_67_in_thfDefinedPred1158);
5410
        	        if  (HASEXCEPTION())
5411
        	        {
5412
        	            goto rulethfDefinedPredEx;
5413
        	        }
5414
5415
5416
        	        {
5417
5418
        	                  p.d_kind = api::GT;
5419
5420
        	        }
5421
5422
5423
        	    }
5424
        	    break;
5425
        	case 4:
5426
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:516:5: '$greatereq'
5427
        	    {
5428
        	         MATCHT(68, &FOLLOW_68_in_thfDefinedPred1170);
5429
        	        if  (HASEXCEPTION())
5430
        	        {
5431
        	            goto rulethfDefinedPredEx;
5432
        	        }
5433
5434
5435
        	        {
5436
5437
        	                  p.d_kind = api::GEQ;
5438
5439
        	        }
5440
5441
5442
        	    }
5443
        	    break;
5444
        	case 5:
5445
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:520:5: '$is_rat'
5446
        	    {
5447
        	         MATCHT(70, &FOLLOW_70_in_thfDefinedPred1182);
5448
        	        if  (HASEXCEPTION())
5449
        	        {
5450
        	            goto rulethfDefinedPredEx;
5451
        	        }
5452
5453
5454
        	        {
5455
5456
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5457
        	                  api::Term q = SOLVER->mkVar(SOLVER->getIntegerSort(), "Q");
5458
        	                  api::Term qr = MK_TERM(api::TO_REAL, q);
5459
        	                  api::Term r = SOLVER->mkVar(SOLVER->getIntegerSort(), "R");
5460
        	                  api::Term rr = MK_TERM(api::TO_REAL, r);
5461
        	                  api::Term body = MK_TERM(
5462
        	                      api::AND,
5463
        	                      MK_TERM(api::NOT,
5464
        	                              MK_TERM(api::EQUAL, r, SOLVER->mkInteger(0))),
5465
        	                      MK_TERM(api::EQUAL, qr, MK_TERM(api::MULT, n, rr)));
5466
        	                  api::Term bvl = MK_TERM(api::BOUND_VAR_LIST, q, r);
5467
        	                  body = MK_TERM(api::EXISTS, bvl, body);
5468
        	                  api::Term lbvl = MK_TERM(api::BOUND_VAR_LIST, n);
5469
        	                  p.d_kind = api::LAMBDA;
5470
        	                  p.d_expr = MK_TERM(api::LAMBDA, lbvl, body);
5471
5472
        	        }
5473
5474
5475
        	    }
5476
        	    break;
5477
        	case 6:
5478
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:541:5: '$is_int'
5479
        	    {
5480
        	         MATCHT(69, &FOLLOW_69_in_thfDefinedPred1209);
5481
        	        if  (HASEXCEPTION())
5482
        	        {
5483
        	            goto rulethfDefinedPredEx;
5484
        	        }
5485
5486
5487
        	        {
5488
5489
        	                  p.d_kind = api::IS_INTEGER;
5490
5491
        	        }
5492
5493
5494
        	    }
5495
        	    break;
5496
        	case 7:
5497
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:545:5: '$distinct'
5498
        	    {
5499
        	         MATCHT(65, &FOLLOW_65_in_thfDefinedPred1221);
5500
        	        if  (HASEXCEPTION())
5501
        	        {
5502
        	            goto rulethfDefinedPredEx;
5503
        	        }
5504
5505
5506
        	        {
5507
5508
        	                  p.d_kind = api::DISTINCT;
5509
5510
        	        }
5511
5512
5513
        	    }
5514
        	    break;
5515
68
        	case 8:
5516
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:549:5: LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK
5517
        	    {
5518
68
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfDefinedPred1233);
5519
68
        	        if  (HASEXCEPTION())
5520
        	        {
5521
        	            goto rulethfDefinedPredEx;
5522
        	        }
5523
5524
5525
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:550:5: ( AND_TOK | OR_TOK | IMPLIES_TOK )
5526
        	        {
5527
68
        	            int alt29=3;
5528
68
        	            switch ( LA(1) )
5529
        	            {
5530
42
        	            case AND_TOK:
5531
        	            	{
5532
42
        	            		alt29=1;
5533
        	            	}
5534
42
        	                break;
5535
20
        	            case OR_TOK:
5536
        	            	{
5537
20
        	            		alt29=2;
5538
        	            	}
5539
20
        	                break;
5540
6
        	            case IMPLIES_TOK:
5541
        	            	{
5542
6
        	            		alt29=3;
5543
        	            	}
5544
6
        	                break;
5545
5546
        	            default:
5547
        	                CONSTRUCTEX();
5548
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5549
        	                EXCEPTION->message      = (void *)"";
5550
        	                EXCEPTION->decisionNum  = 29;
5551
        	                EXCEPTION->state        = 0;
5552
5553
5554
        	                goto rulethfDefinedPredEx;
5555
5556
        	            }
5557
5558
68
        	            switch (alt29)
5559
        	            {
5560
42
        	        	case 1:
5561
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:551:7: AND_TOK
5562
        	        	    {
5563
42
        	        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_thfDefinedPred1247);
5564
42
        	        	        if  (HASEXCEPTION())
5565
        	        	        {
5566
        	        	            goto rulethfDefinedPredEx;
5567
        	        	        }
5568
5569
5570
        	        	        {
5571
5572
42
        	        	                    p.d_kind = api::AND;
5573
5574
        	        	        }
5575
5576
5577
        	        	    }
5578
42
        	        	    break;
5579
20
        	        	case 2:
5580
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:555:7: OR_TOK
5581
        	        	    {
5582
20
        	        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_thfDefinedPred1263);
5583
20
        	        	        if  (HASEXCEPTION())
5584
        	        	        {
5585
        	        	            goto rulethfDefinedPredEx;
5586
        	        	        }
5587
5588
5589
        	        	        {
5590
5591
20
        	        	                    p.d_kind = api::OR;
5592
5593
        	        	        }
5594
5595
5596
        	        	    }
5597
20
        	        	    break;
5598
6
        	        	case 3:
5599
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:559:7: IMPLIES_TOK
5600
        	        	    {
5601
6
        	        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279);
5602
6
        	        	        if  (HASEXCEPTION())
5603
        	        	        {
5604
        	        	            goto rulethfDefinedPredEx;
5605
        	        	        }
5606
5607
5608
        	        	        {
5609
5610
6
        	        	                    p.d_kind = api::IMPLIES;
5611
5612
        	        	        }
5613
5614
5615
        	        	    }
5616
6
        	        	    break;
5617
5618
        	            }
5619
        	        }
5620
5621
68
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfDefinedPred1299);
5622
68
        	        if  (HASEXCEPTION())
5623
        	        {
5624
        	            goto rulethfDefinedPredEx;
5625
68
        	        }
5626
5627
5628
        	    }
5629
68
        	    break;
5630
5631
            }
5632
        }
5633
    }
5634
5635
    // This is where rules clean up and exit
5636
    //
5637
68
    goto rulethfDefinedPredEx; /* Prevent compiler warnings */
5638
68
    rulethfDefinedPredEx: ;
5639
5640
68
            if (HASEXCEPTION())
5641
            {
5642
                PREPORTERROR();
5643
                PRECOVER();
5644
            }
5645
68
    return ;
5646
}
5647
/* $ANTLR end thfDefinedPred */
5648
5649
/**
5650
 * $ANTLR start definedFun
5651
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:567:1: definedFun[cvc5::ParseOp& p] : ( '$uminus' | '$sum' | '$difference' | '$product' | '$quotient' | ( '$quotient_e' | '$remainder_e' ) | ( '$quotient_t' | '$remainder_t' ) | ( '$quotient_f' | '$remainder_f' ) | '$floor' | '$ceiling' | '$truncate' | '$round' | '$to_int' | '$to_rat' | '$to_real' );
5652
 */
5653
static void
5654
57
definedFun(pTptpParser ctx, cvc5::ParseOp& p)
5655
{
5656
5657
57
      bool remainder = false;
5658
5659
    /* Initialize rule variables
5660
     */
5661
5662
    {
5663
        {
5664
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:571:3: ( '$uminus' | '$sum' | '$difference' | '$product' | '$quotient' | ( '$quotient_e' | '$remainder_e' ) | ( '$quotient_t' | '$remainder_t' ) | ( '$quotient_f' | '$remainder_f' ) | '$floor' | '$ceiling' | '$truncate' | '$round' | '$to_int' | '$to_rat' | '$to_real' )
5665
5666
            ANTLR3_UINT32 alt34;
5667
5668
57
            alt34=15;
5669
5670
57
            switch ( LA(1) )
5671
            {
5672
3
            case 94:
5673
            	{
5674
3
            		alt34=1;
5675
            	}
5676
3
                break;
5677
6
            case 88:
5678
            	{
5679
6
            		alt34=2;
5680
            	}
5681
6
                break;
5682
3
            case 64:
5683
            	{
5684
3
            		alt34=3;
5685
            	}
5686
3
                break;
5687
3
            case 79:
5688
            	{
5689
3
            		alt34=4;
5690
            	}
5691
3
                break;
5692
3
            case 80:
5693
            	{
5694
3
            		alt34=5;
5695
            	}
5696
3
                break;
5697
6
            case 81:
5698
            case 84:
5699
            	{
5700
6
            		alt34=6;
5701
            	}
5702
6
                break;
5703
6
            case 83:
5704
            case 86:
5705
            	{
5706
6
            		alt34=7;
5707
            	}
5708
6
                break;
5709
6
            case 82:
5710
            case 85:
5711
            	{
5712
6
            		alt34=8;
5713
            	}
5714
6
                break;
5715
3
            case 66:
5716
            	{
5717
3
            		alt34=9;
5718
            	}
5719
3
                break;
5720
3
            case 63:
5721
            	{
5722
3
            		alt34=10;
5723
            	}
5724
3
                break;
5725
3
            case 93:
5726
            	{
5727
3
            		alt34=11;
5728
            	}
5729
3
                break;
5730
            case 87:
5731
            	{
5732
            		alt34=12;
5733
            	}
5734
                break;
5735
4
            case 90:
5736
            	{
5737
4
            		alt34=13;
5738
            	}
5739
4
                break;
5740
4
            case 91:
5741
            	{
5742
4
            		alt34=14;
5743
            	}
5744
4
                break;
5745
4
            case 92:
5746
            	{
5747
4
            		alt34=15;
5748
            	}
5749
4
                break;
5750
5751
            default:
5752
                CONSTRUCTEX();
5753
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5754
                EXCEPTION->message      = (void *)"";
5755
                EXCEPTION->decisionNum  = 34;
5756
                EXCEPTION->state        = 0;
5757
5758
5759
                goto ruledefinedFunEx;
5760
5761
            }
5762
5763
57
            switch (alt34)
5764
            {
5765
3
        	case 1:
5766
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:571:5: '$uminus'
5767
        	    {
5768
3
        	         MATCHT(94, &FOLLOW_94_in_definedFun1318);
5769
3
        	        if  (HASEXCEPTION())
5770
        	        {
5771
        	            goto ruledefinedFunEx;
5772
        	        }
5773
5774
5775
        	        {
5776
5777
3
        	                  p.d_kind = api::UMINUS;
5778
5779
        	        }
5780
5781
5782
        	    }
5783
3
        	    break;
5784
6
        	case 2:
5785
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:575:5: '$sum'
5786
        	    {
5787
6
        	         MATCHT(88, &FOLLOW_88_in_definedFun1330);
5788
6
        	        if  (HASEXCEPTION())
5789
        	        {
5790
        	            goto ruledefinedFunEx;
5791
        	        }
5792
5793
5794
        	        {
5795
5796
6
        	                  p.d_kind = api::PLUS;
5797
5798
        	        }
5799
5800
5801
        	    }
5802
6
        	    break;
5803
3
        	case 3:
5804
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:579:5: '$difference'
5805
        	    {
5806
3
        	         MATCHT(64, &FOLLOW_64_in_definedFun1342);
5807
3
        	        if  (HASEXCEPTION())
5808
        	        {
5809
        	            goto ruledefinedFunEx;
5810
        	        }
5811
5812
5813
        	        {
5814
5815
3
        	                  p.d_kind = api::MINUS;
5816
5817
        	        }
5818
5819
5820
        	    }
5821
3
        	    break;
5822
3
        	case 4:
5823
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:583:5: '$product'
5824
        	    {
5825
3
        	         MATCHT(79, &FOLLOW_79_in_definedFun1354);
5826
3
        	        if  (HASEXCEPTION())
5827
        	        {
5828
        	            goto ruledefinedFunEx;
5829
        	        }
5830
5831
5832
        	        {
5833
5834
3
        	                  p.d_kind = api::MULT;
5835
5836
        	        }
5837
5838
5839
        	    }
5840
3
        	    break;
5841
3
        	case 5:
5842
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:587:5: '$quotient'
5843
        	    {
5844
3
        	         MATCHT(80, &FOLLOW_80_in_definedFun1366);
5845
3
        	        if  (HASEXCEPTION())
5846
        	        {
5847
        	            goto ruledefinedFunEx;
5848
        	        }
5849
5850
5851
        	        {
5852
5853
3
        	                  p.d_kind = api::DIVISION;
5854
5855
        	        }
5856
5857
5858
        	    }
5859
3
        	    break;
5860
6
        	case 6:
5861
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:591:5: ( '$quotient_e' | '$remainder_e' )
5862
        	    {
5863
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:591:5: ( '$quotient_e' | '$remainder_e' )
5864
        	        {
5865
6
        	            int alt31=2;
5866
6
        	            switch ( LA(1) )
5867
        	            {
5868
3
        	            case 81:
5869
        	            	{
5870
3
        	            		alt31=1;
5871
        	            	}
5872
3
        	                break;
5873
3
        	            case 84:
5874
        	            	{
5875
3
        	            		alt31=2;
5876
        	            	}
5877
3
        	                break;
5878
5879
        	            default:
5880
        	                CONSTRUCTEX();
5881
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5882
        	                EXCEPTION->message      = (void *)"";
5883
        	                EXCEPTION->decisionNum  = 31;
5884
        	                EXCEPTION->state        = 0;
5885
5886
5887
        	                goto ruledefinedFunEx;
5888
5889
        	            }
5890
5891
6
        	            switch (alt31)
5892
        	            {
5893
3
        	        	case 1:
5894
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:591:7: '$quotient_e'
5895
        	        	    {
5896
3
        	        	         MATCHT(81, &FOLLOW_81_in_definedFun1380);
5897
3
        	        	        if  (HASEXCEPTION())
5898
        	        	        {
5899
        	        	            goto ruledefinedFunEx;
5900
        	        	        }
5901
5902
5903
        	        	        {
5904
3
        	        	             remainder = false;
5905
        	        	        }
5906
5907
5908
        	        	    }
5909
3
        	        	    break;
5910
3
        	        	case 2:
5911
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:592:7: '$remainder_e'
5912
        	        	    {
5913
3
        	        	         MATCHT(84, &FOLLOW_84_in_definedFun1390);
5914
3
        	        	        if  (HASEXCEPTION())
5915
        	        	        {
5916
        	        	            goto ruledefinedFunEx;
5917
        	        	        }
5918
5919
5920
        	        	        {
5921
3
        	        	             remainder = true;
5922
        	        	        }
5923
5924
5925
        	        	    }
5926
3
        	        	    break;
5927
5928
        	            }
5929
        	        }
5930
5931
        	        {
5932
5933
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5934
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
5935
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
5936
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
5937
12
        	                  expr = MK_TERM(api::ITE,
5938
12
        	                                 MK_TERM(api::GEQ, d, SOLVER->mkReal(0)),
5939
12
        	                                 MK_TERM(api::TO_INTEGER, expr),
5940
18
        	                                 MK_TERM(api::UMINUS,
5941
18
        	                                         MK_TERM(api::TO_INTEGER,
5942
12
        	                                                 MK_TERM(api::UMINUS, expr))));
5943
6
        	                  if (remainder)
5944
        	                  {
5945
6
        	                    expr = MK_TERM(
5946
        	                        api::TO_INTEGER,
5947
6
        	                        MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
5948
        	                  }
5949
6
        	                  p.d_kind = api::LAMBDA;
5950
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
5951
5952
6
        	        }
5953
5954
5955
        	    }
5956
6
        	    break;
5957
6
        	case 7:
5958
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:614:5: ( '$quotient_t' | '$remainder_t' )
5959
        	    {
5960
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:614:5: ( '$quotient_t' | '$remainder_t' )
5961
        	        {
5962
6
        	            int alt32=2;
5963
6
        	            switch ( LA(1) )
5964
        	            {
5965
3
        	            case 83:
5966
        	            	{
5967
3
        	            		alt32=1;
5968
        	            	}
5969
3
        	                break;
5970
3
        	            case 86:
5971
        	            	{
5972
3
        	            		alt32=2;
5973
        	            	}
5974
3
        	                break;
5975
5976
        	            default:
5977
        	                CONSTRUCTEX();
5978
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5979
        	                EXCEPTION->message      = (void *)"";
5980
        	                EXCEPTION->decisionNum  = 32;
5981
        	                EXCEPTION->state        = 0;
5982
5983
5984
        	                goto ruledefinedFunEx;
5985
5986
        	            }
5987
5988
6
        	            switch (alt32)
5989
        	            {
5990
3
        	        	case 1:
5991
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:614:7: '$quotient_t'
5992
        	        	    {
5993
3
        	        	         MATCHT(83, &FOLLOW_83_in_definedFun1412);
5994
3
        	        	        if  (HASEXCEPTION())
5995
        	        	        {
5996
        	        	            goto ruledefinedFunEx;
5997
        	        	        }
5998
5999
6000
        	        	        {
6001
3
        	        	             remainder = false;
6002
        	        	        }
6003
6004
6005
        	        	    }
6006
3
        	        	    break;
6007
3
        	        	case 2:
6008
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:615:7: '$remainder_t'
6009
        	        	    {
6010
3
        	        	         MATCHT(86, &FOLLOW_86_in_definedFun1422);
6011
3
        	        	        if  (HASEXCEPTION())
6012
        	        	        {
6013
        	        	            goto ruledefinedFunEx;
6014
        	        	        }
6015
6016
6017
        	        	        {
6018
3
        	        	             remainder = true;
6019
        	        	        }
6020
6021
6022
        	        	    }
6023
3
        	        	    break;
6024
6025
        	            }
6026
        	        }
6027
6028
        	        {
6029
6030
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6031
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
6032
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
6033
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
6034
12
        	                  expr = MK_TERM(api::ITE,
6035
12
        	                                 MK_TERM(api::GEQ, expr, SOLVER->mkReal(0)),
6036
12
        	                                 MK_TERM(api::TO_INTEGER, expr),
6037
18
        	                                 MK_TERM(api::UMINUS,
6038
18
        	                                         MK_TERM(api::TO_INTEGER,
6039
12
        	                                                 MK_TERM(api::UMINUS, expr))));
6040
6
        	                  if (remainder)
6041
        	                  {
6042
6
        	                    expr = MK_TERM(
6043
        	                        api::TO_INTEGER,
6044
6
        	                        MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
6045
        	                  }
6046
6
        	                  p.d_kind = api::LAMBDA;
6047
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6048
6049
6
        	        }
6050
6051
6052
        	    }
6053
6
        	    break;
6054
6
        	case 8:
6055
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:637:5: ( '$quotient_f' | '$remainder_f' )
6056
        	    {
6057
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:637:5: ( '$quotient_f' | '$remainder_f' )
6058
        	        {
6059
6
        	            int alt33=2;
6060
6
        	            switch ( LA(1) )
6061
        	            {
6062
3
        	            case 82:
6063
        	            	{
6064
3
        	            		alt33=1;
6065
        	            	}
6066
3
        	                break;
6067
3
        	            case 85:
6068
        	            	{
6069
3
        	            		alt33=2;
6070
        	            	}
6071
3
        	                break;
6072
6073
        	            default:
6074
        	                CONSTRUCTEX();
6075
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6076
        	                EXCEPTION->message      = (void *)"";
6077
        	                EXCEPTION->decisionNum  = 33;
6078
        	                EXCEPTION->state        = 0;
6079
6080
6081
        	                goto ruledefinedFunEx;
6082
6083
        	            }
6084
6085
6
        	            switch (alt33)
6086
        	            {
6087
3
        	        	case 1:
6088
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:637:7: '$quotient_f'
6089
        	        	    {
6090
3
        	        	         MATCHT(82, &FOLLOW_82_in_definedFun1444);
6091
3
        	        	        if  (HASEXCEPTION())
6092
        	        	        {
6093
        	        	            goto ruledefinedFunEx;
6094
        	        	        }
6095
6096
6097
        	        	        {
6098
3
        	        	             remainder = false;
6099
        	        	        }
6100
6101
6102
        	        	    }
6103
3
        	        	    break;
6104
3
        	        	case 2:
6105
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:638:7: '$remainder_f'
6106
        	        	    {
6107
3
        	        	         MATCHT(85, &FOLLOW_85_in_definedFun1454);
6108
3
        	        	        if  (HASEXCEPTION())
6109
        	        	        {
6110
        	        	            goto ruledefinedFunEx;
6111
        	        	        }
6112
6113
6114
        	        	        {
6115
3
        	        	             remainder = true;
6116
        	        	        }
6117
6118
6119
        	        	    }
6120
3
        	        	    break;
6121
6122
        	            }
6123
        	        }
6124
6125
        	        {
6126
6127
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6128
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
6129
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
6130
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
6131
6
        	                  expr = MK_TERM(api::TO_INTEGER, expr);
6132
6
        	                  if (remainder)
6133
        	                  {
6134
6
        	                    expr = MK_TERM(api::TO_INTEGER,
6135
6
        	                                   MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
6136
        	                  }
6137
6
        	                  p.d_kind = api::LAMBDA;
6138
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6139
6140
6
        	        }
6141
6142
6143
        	    }
6144
6
        	    break;
6145
3
        	case 9:
6146
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:654:5: '$floor'
6147
        	    {
6148
3
        	         MATCHT(66, &FOLLOW_66_in_definedFun1474);
6149
3
        	        if  (HASEXCEPTION())
6150
        	        {
6151
        	            goto ruledefinedFunEx;
6152
        	        }
6153
6154
6155
        	        {
6156
6157
3
        	                  p.d_kind = api::TO_INTEGER;
6158
6159
        	        }
6160
6161
6162
        	    }
6163
3
        	    break;
6164
3
        	case 10:
6165
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:658:5: '$ceiling'
6166
        	    {
6167
3
        	         MATCHT(63, &FOLLOW_63_in_definedFun1486);
6168
3
        	        if  (HASEXCEPTION())
6169
        	        {
6170
        	            goto ruledefinedFunEx;
6171
        	        }
6172
6173
6174
        	        {
6175
6176
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6177
6
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6178
3
        	                  api::Term expr = MK_TERM(api::UMINUS,
6179
6
        	                                      MK_TERM(api::TO_INTEGER, MK_TERM(api::UMINUS, n)));
6180
3
        	                  p.d_kind = api::LAMBDA;
6181
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6182
6183
3
        	        }
6184
6185
6186
        	    }
6187
3
        	    break;
6188
3
        	case 11:
6189
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:667:5: '$truncate'
6190
        	    {
6191
3
        	         MATCHT(93, &FOLLOW_93_in_definedFun1498);
6192
3
        	        if  (HASEXCEPTION())
6193
        	        {
6194
        	            goto ruledefinedFunEx;
6195
        	        }
6196
6197
6198
        	        {
6199
6200
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6201
6
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6202
        	                  api::Term expr =
6203
3
        	                      MK_TERM(api::ITE,
6204
6
        	                              MK_TERM(api::GEQ, n, SOLVER->mkReal(0)),
6205
6
        	                              MK_TERM(api::TO_INTEGER, n),
6206
9
        	                              MK_TERM(api::UMINUS,
6207
15
        	                                      MK_TERM(api::TO_INTEGER, MK_TERM(api::UMINUS, n))));
6208
3
        	                  p.d_kind = api::LAMBDA;
6209
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6210
6211
3
        	        }
6212
6213
6214
        	    }
6215
3
        	    break;
6216
        	case 12:
6217
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:680:5: '$round'
6218
        	    {
6219
        	         MATCHT(87, &FOLLOW_87_in_definedFun1510);
6220
        	        if  (HASEXCEPTION())
6221
        	        {
6222
        	            goto ruledefinedFunEx;
6223
        	        }
6224
6225
6226
        	        {
6227
6228
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6229
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6230
        	                  api::Term decPart = MK_TERM(api::MINUS, n, MK_TERM(api::TO_INTEGER, n));
6231
        	                  api::Term expr = MK_TERM(
6232
        	                      api::ITE,
6233
        	                      MK_TERM(api::LT, decPart, SOLVER->mkReal(1, 2)),
6234
        	                      // if decPart < 0.5, round down
6235
        	                      MK_TERM(api::TO_INTEGER, n),
6236
        	                      MK_TERM(api::ITE,
6237
        	                              MK_TERM(api::GT, decPart, SOLVER->mkReal(1, 2)),
6238
        	                              // if decPart > 0.5, round up
6239
        	                              MK_TERM(api::TO_INTEGER,
6240
        	                                      MK_TERM(api::PLUS, n, SOLVER->mkReal(1))),
6241
        	                              // if decPart == 0.5, round to nearest even integer:
6242
        	                              // result is: to_int(n/2 + .5) * 2
6243
        	                              MK_TERM(api::MULT,
6244
        	                                      MK_TERM(api::TO_INTEGER,
6245
        	                                              MK_TERM(api::PLUS,
6246
        	                                                      MK_TERM(api::DIVISION,
6247
        	                                                              n,
6248
        	                                                              SOLVER->mkReal(2)),
6249
        	                                                      SOLVER->mkReal(1, 2))),
6250
        	                                      SOLVER->mkInteger(2))));
6251
        	                  p.d_kind = api::LAMBDA;
6252
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6253
6254
        	        }
6255
6256
6257
        	    }
6258
        	    break;
6259
4
        	case 13:
6260
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:708:5: '$to_int'
6261
        	    {
6262
4
        	         MATCHT(90, &FOLLOW_90_in_definedFun1522);
6263
4
        	        if  (HASEXCEPTION())
6264
        	        {
6265
        	            goto ruledefinedFunEx;
6266
        	        }
6267
6268
6269
        	        {
6270
6271
4
        	                  p.d_kind = api::TO_INTEGER;
6272
6273
        	        }
6274
6275
6276
        	    }
6277
4
        	    break;
6278
4
        	case 14:
6279
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:712:5: '$to_rat'
6280
        	    {
6281
4
        	         MATCHT(91, &FOLLOW_91_in_definedFun1534);
6282
4
        	        if  (HASEXCEPTION())
6283
        	        {
6284
        	            goto ruledefinedFunEx;
6285
        	        }
6286
6287
6288
        	        {
6289
6290
4
        	                  p.d_kind = api::TO_REAL;
6291
6292
        	        }
6293
6294
6295
        	    }
6296
4
        	    break;
6297
4
        	case 15:
6298
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:716:5: '$to_real'
6299
        	    {
6300
4
        	         MATCHT(92, &FOLLOW_92_in_definedFun1546);
6301
4
        	        if  (HASEXCEPTION())
6302
        	        {
6303
        	            goto ruledefinedFunEx;
6304
        	        }
6305
6306
6307
        	        {
6308
6309
4
        	                  p.d_kind = api::TO_REAL;
6310
6311
        	        }
6312
6313
6314
        	    }
6315
4
        	    break;
6316
6317
            }
6318
        }
6319
    }
6320
6321
    // This is where rules clean up and exit
6322
    //
6323
57
    goto ruledefinedFunEx; /* Prevent compiler warnings */
6324
57
    ruledefinedFunEx: ;
6325
6326
57
            if (HASEXCEPTION())
6327
            {
6328
                PREPORTERROR();
6329
                PRECOVER();
6330
            }
6331
57
    return ;
6332
}
6333
/* $ANTLR end definedFun */
6334
6335
/**
6336
 * $ANTLR start equalOp
6337
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:725:1: equalOp[bool& equal] : ( EQUAL_TOK | DISEQUAL_TOK );
6338
 */
6339
static void
6340
1026
equalOp(pTptpParser ctx, bool& equal)
6341
{
6342
    /* Initialize rule variables
6343
     */
6344
6345
    {
6346
        {
6347
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:726:3: ( EQUAL_TOK | DISEQUAL_TOK )
6348
6349
            ANTLR3_UINT32 alt35;
6350
6351
1026
            alt35=2;
6352
6353
1026
            switch ( LA(1) )
6354
            {
6355
896
            case EQUAL_TOK:
6356
            	{
6357
896
            		alt35=1;
6358
            	}
6359
896
                break;
6360
130
            case DISEQUAL_TOK:
6361
            	{
6362
130
            		alt35=2;
6363
            	}
6364
130
                break;
6365
6366
            default:
6367
                CONSTRUCTEX();
6368
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6369
                EXCEPTION->message      = (void *)"";
6370
                EXCEPTION->decisionNum  = 35;
6371
                EXCEPTION->state        = 0;
6372
6373
6374
                goto ruleequalOpEx;
6375
6376
            }
6377
6378
1026
            switch (alt35)
6379
            {
6380
896
        	case 1:
6381
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:726:5: EQUAL_TOK
6382
        	    {
6383
896
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_equalOp1569);
6384
896
        	        if  (HASEXCEPTION())
6385
        	        {
6386
        	            goto ruleequalOpEx;
6387
        	        }
6388
6389
6390
        	        {
6391
896
        	             equal = true;
6392
        	        }
6393
6394
6395
        	    }
6396
896
        	    break;
6397
130
        	case 2:
6398
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:727:5: DISEQUAL_TOK
6399
        	    {
6400
130
        	         MATCHT(DISEQUAL_TOK, &FOLLOW_DISEQUAL_TOK_in_equalOp1580);
6401
130
        	        if  (HASEXCEPTION())
6402
        	        {
6403
        	            goto ruleequalOpEx;
6404
        	        }
6405
6406
6407
        	        {
6408
130
        	             equal = false;
6409
        	        }
6410
6411
6412
        	    }
6413
130
        	    break;
6414
6415
            }
6416
        }
6417
    }
6418
6419
    // This is where rules clean up and exit
6420
    //
6421
1026
    goto ruleequalOpEx; /* Prevent compiler warnings */
6422
1026
    ruleequalOpEx: ;
6423
6424
1026
            if (HASEXCEPTION())
6425
            {
6426
                PREPORTERROR();
6427
                PRECOVER();
6428
            }
6429
1026
    return ;
6430
}
6431
/* $ANTLR end equalOp */
6432
6433
/**
6434
 * $ANTLR start term
6435
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:730:1: term[cvc5::api::Term& expr] : ( functionTerm[expr] | conditionalTerm[expr] | simpleTerm[expr] | letTerm[expr] );
6436
 */
6437
static void
6438
917
term(pTptpParser ctx, cvc5::api::Term& expr)
6439
{
6440
    /* Initialize rule variables
6441
     */
6442
6443
    {
6444
        {
6445
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:731:3: ( functionTerm[expr] | conditionalTerm[expr] | simpleTerm[expr] | letTerm[expr] )
6446
6447
            ANTLR3_UINT32 alt36;
6448
6449
917
            alt36=4;
6450
6451
917
            switch ( LA(1) )
6452
            {
6453
360
            case CNF_TOK:
6454
            case FOF_TOK:
6455
            case INCLUDE_TOK:
6456
            case LOWER_WORD:
6457
            case LOWER_WORD_SINGLE_QUOTED:
6458
            case SINGLE_QUOTED:
6459
            case TFF_TOK:
6460
            case THF_TOK:
6461
            case TYPE_TOK:
6462
            case 63:
6463
            case 64:
6464
            case 66:
6465
            case 79:
6466
            case 80:
6467
            case 81:
6468
            case 82:
6469
            case 83:
6470
            case 84:
6471
            case 85:
6472
            case 86:
6473
            case 87:
6474
            case 88:
6475
            case 90:
6476
            case 91:
6477
            case 92:
6478
            case 93:
6479
            case 94:
6480
            	{
6481
360
            		alt36=1;
6482
            	}
6483
360
                break;
6484
2
            case 72:
6485
            	{
6486
2
            		alt36=2;
6487
            	}
6488
2
                break;
6489
553
            case DISTINCT_OBJECT:
6490
            case NUMBER:
6491
            case UPPER_WORD:
6492
            	{
6493
553
            		alt36=3;
6494
            	}
6495
553
                break;
6496
2
            case 76:
6497
            case 78:
6498
            	{
6499
2
            		alt36=4;
6500
            	}
6501
2
                break;
6502
6503
            default:
6504
                CONSTRUCTEX();
6505
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6506
                EXCEPTION->message      = (void *)"";
6507
                EXCEPTION->decisionNum  = 36;
6508
                EXCEPTION->state        = 0;
6509
6510
6511
                goto ruletermEx;
6512
6513
            }
6514
6515
917
            switch (alt36)
6516
            {
6517
360
        	case 1:
6518
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:731:5: functionTerm[expr]
6519
        	    {
6520
360
        	        FOLLOWPUSH(FOLLOW_functionTerm_in_term1596);
6521
360
        	        functionTerm(ctx, expr);
6522
6523
360
        	        FOLLOWPOP();
6524
360
        	        if  (HASEXCEPTION())
6525
        	        {
6526
        	            goto ruletermEx;
6527
        	        }
6528
6529
6530
        	    }
6531
360
        	    break;
6532
2
        	case 2:
6533
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:732:5: conditionalTerm[expr]
6534
        	    {
6535
2
        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_term1603);
6536
2
        	        conditionalTerm(ctx, expr);
6537
6538
2
        	        FOLLOWPOP();
6539
2
        	        if  (HASEXCEPTION())
6540
        	        {
6541
        	            goto ruletermEx;
6542
        	        }
6543
6544
6545
        	    }
6546
2
        	    break;
6547
553
        	case 3:
6548
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:733:5: simpleTerm[expr]
6549
        	    {
6550
553
        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_term1610);
6551
553
        	        simpleTerm(ctx, expr);
6552
6553
553
        	        FOLLOWPOP();
6554
553
        	        if  (HASEXCEPTION())
6555
        	        {
6556
        	            goto ruletermEx;
6557
        	        }
6558
6559
6560
        	    }
6561
553
        	    break;
6562
2
        	case 4:
6563
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:734:5: letTerm[expr]
6564
        	    {
6565
2
        	        FOLLOWPUSH(FOLLOW_letTerm_in_term1617);
6566
2
        	        letTerm(ctx, expr);
6567
6568
2
        	        FOLLOWPOP();
6569
2
        	        if  (HASEXCEPTION())
6570
        	        {
6571
        	            goto ruletermEx;
6572
        	        }
6573
6574
6575
        	    }
6576
2
        	    break;
6577
6578
            }
6579
        }
6580
    }
6581
6582
    // This is where rules clean up and exit
6583
    //
6584
917
    goto ruletermEx; /* Prevent compiler warnings */
6585
917
    ruletermEx: ;
6586
6587
917
            if (HASEXCEPTION())
6588
            {
6589
                PREPORTERROR();
6590
                PRECOVER();
6591
            }
6592
917
    return ;
6593
}
6594
/* $ANTLR end term */
6595
6596
/**
6597
 * $ANTLR start letTerm
6598
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:737:1: letTerm[cvc5::api::Term& expr] : ( '$let_ft' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK | '$let_tt' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK );
6599
 */
6600
static void
6601
2
letTerm(pTptpParser ctx, cvc5::api::Term& expr)
6602
{
6603
6604
4
      cvc5::api::Term lhs, rhs;
6605
6606
    /* Initialize rule variables
6607
     */
6608
6609
    {
6610
        {
6611
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:741:3: ( '$let_ft' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK | '$let_tt' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK )
6612
6613
            ANTLR3_UINT32 alt37;
6614
6615
2
            alt37=2;
6616
6617
2
            switch ( LA(1) )
6618
            {
6619
1
            case 76:
6620
            	{
6621
1
            		alt37=1;
6622
            	}
6623
1
                break;
6624
1
            case 78:
6625
            	{
6626
1
            		alt37=2;
6627
            	}
6628
1
                break;
6629
6630
            default:
6631
                CONSTRUCTEX();
6632
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6633
                EXCEPTION->message      = (void *)"";
6634
                EXCEPTION->decisionNum  = 37;
6635
                EXCEPTION->state        = 0;
6636
6637
6638
                goto ruleletTermEx;
6639
6640
            }
6641
6642
2
            switch (alt37)
6643
            {
6644
1
        	case 1:
6645
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:741:5: '$let_ft' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK
6646
        	    {
6647
1
        	         MATCHT(76, &FOLLOW_76_in_letTerm1637);
6648
1
        	        if  (HASEXCEPTION())
6649
        	        {
6650
        	            goto ruleletTermEx;
6651
        	        }
6652
6653
6654
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_letTerm1639);
6655
1
        	        if  (HASEXCEPTION())
6656
        	        {
6657
        	            goto ruleletTermEx;
6658
        	        }
6659
6660
6661
        	        {
6662
1
        	             PARSER_STATE->pushScope();
6663
        	        }
6664
6665
6666
1
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaDefn_in_letTerm1647);
6667
1
        	        tffLetFormulaDefn(ctx, lhs, rhs);
6668
6669
1
        	        FOLLOWPOP();
6670
1
        	        if  (HASEXCEPTION())
6671
        	        {
6672
        	            goto ruleletTermEx;
6673
        	        }
6674
6675
6676
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_letTerm1650);
6677
1
        	        if  (HASEXCEPTION())
6678
        	        {
6679
        	            goto ruleletTermEx;
6680
        	        }
6681
6682
6683
1
        	        FOLLOWPUSH(FOLLOW_term_in_letTerm1656);
6684
1
        	        term(ctx, expr);
6685
6686
1
        	        FOLLOWPOP();
6687
1
        	        if  (HASEXCEPTION())
6688
        	        {
6689
        	            goto ruleletTermEx;
6690
        	        }
6691
6692
6693
        	        {
6694
1
        	             PARSER_STATE->popScope();
6695
1
        	                  expr = expr.substitute(lhs, rhs);
6696
6697
        	        }
6698
6699
6700
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_letTerm1669);
6701
1
        	        if  (HASEXCEPTION())
6702
        	        {
6703
        	            goto ruleletTermEx;
6704
        	        }
6705
6706
6707
        	    }
6708
1
        	    break;
6709
1
        	case 2:
6710
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:748:5: '$let_tt' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK
6711
        	    {
6712
1
        	         MATCHT(78, &FOLLOW_78_in_letTerm1675);
6713
1
        	        if  (HASEXCEPTION())
6714
        	        {
6715
        	            goto ruleletTermEx;
6716
        	        }
6717
6718
6719
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_letTerm1677);
6720
1
        	        if  (HASEXCEPTION())
6721
        	        {
6722
        	            goto ruleletTermEx;
6723
        	        }
6724
6725
6726
        	        {
6727
1
        	             PARSER_STATE->pushScope();
6728
        	        }
6729
6730
6731
1
        	        FOLLOWPUSH(FOLLOW_tffLetTermDefn_in_letTerm1685);
6732
1
        	        tffLetTermDefn(ctx, lhs, rhs);
6733
6734
1
        	        FOLLOWPOP();
6735
1
        	        if  (HASEXCEPTION())
6736
        	        {
6737
        	            goto ruleletTermEx;
6738
        	        }
6739
6740
6741
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_letTerm1688);
6742
1
        	        if  (HASEXCEPTION())
6743
        	        {
6744
        	            goto ruleletTermEx;
6745
        	        }
6746
6747
6748
1
        	        FOLLOWPUSH(FOLLOW_term_in_letTerm1694);
6749
1
        	        term(ctx, expr);
6750
6751
1
        	        FOLLOWPOP();
6752
1
        	        if  (HASEXCEPTION())
6753
        	        {
6754
        	            goto ruleletTermEx;
6755
        	        }
6756
6757
6758
        	        {
6759
1
        	             PARSER_STATE->popScope();
6760
1
        	                  expr = expr.substitute(lhs, rhs);
6761
6762
        	        }
6763
6764
6765
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_letTerm1707);
6766
1
        	        if  (HASEXCEPTION())
6767
        	        {
6768
        	            goto ruleletTermEx;
6769
        	        }
6770
6771
6772
        	    }
6773
1
        	    break;
6774
6775
            }
6776
        }
6777
    }
6778
6779
    // This is where rules clean up and exit
6780
    //
6781
2
    goto ruleletTermEx; /* Prevent compiler warnings */
6782
2
    ruleletTermEx: ;
6783
6784
2
            if (HASEXCEPTION())
6785
            {
6786
                PREPORTERROR();
6787
                PRECOVER();
6788
            }
6789
4
    return ;
6790
}
6791
/* $ANTLR end letTerm */
6792
6793
/**
6794
 * $ANTLR start simpleTerm
6795
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:758:1: simpleTerm[cvc5::api::Term& expr] : ( variable[expr] | NUMBER | DISTINCT_OBJECT );
6796
 */
6797
static void
6798
590
simpleTerm(pTptpParser ctx, cvc5::api::Term& expr)
6799
{
6800
    pANTLR3_COMMON_TOKEN    DISTINCT_OBJECT2;
6801
6802
    /* Initialize rule variables
6803
     */
6804
6805
590
    DISTINCT_OBJECT2       = NULL;
6806
6807
    {
6808
        {
6809
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:759:3: ( variable[expr] | NUMBER | DISTINCT_OBJECT )
6810
6811
            ANTLR3_UINT32 alt38;
6812
6813
590
            alt38=3;
6814
6815
590
            switch ( LA(1) )
6816
            {
6817
431
            case UPPER_WORD:
6818
            	{
6819
431
            		alt38=1;
6820
            	}
6821
431
                break;
6822
153
            case NUMBER:
6823
            	{
6824
153
            		alt38=2;
6825
            	}
6826
153
                break;
6827
6
            case DISTINCT_OBJECT:
6828
            	{
6829
6
            		alt38=3;
6830
            	}
6831
6
                break;
6832
6833
            default:
6834
                CONSTRUCTEX();
6835
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6836
                EXCEPTION->message      = (void *)"";
6837
                EXCEPTION->decisionNum  = 38;
6838
                EXCEPTION->state        = 0;
6839
6840
6841
                goto rulesimpleTermEx;
6842
6843
            }
6844
6845
590
            switch (alt38)
6846
            {
6847
431
        	case 1:
6848
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:759:5: variable[expr]
6849
        	    {
6850
431
        	        FOLLOWPUSH(FOLLOW_variable_in_simpleTerm1723);
6851
431
        	        variable(ctx, expr);
6852
6853
431
        	        FOLLOWPOP();
6854
431
        	        if  (HASEXCEPTION())
6855
        	        {
6856
        	            goto rulesimpleTermEx;
6857
        	        }
6858
6859
6860
        	    }
6861
431
        	    break;
6862
153
        	case 2:
6863
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:760:5: NUMBER
6864
        	    {
6865
153
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_simpleTerm1730);
6866
153
        	        if  (HASEXCEPTION())
6867
        	        {
6868
        	            goto rulesimpleTermEx;
6869
        	        }
6870
6871
6872
        	        {
6873
153
        	             expr = PARSER_STATE->d_tmp_expr;
6874
        	        }
6875
6876
6877
        	    }
6878
153
        	    break;
6879
6
        	case 3:
6880
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:761:5: DISTINCT_OBJECT
6881
        	    {
6882
6
        	        DISTINCT_OBJECT2 = (pANTLR3_COMMON_TOKEN) MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738);
6883
6
        	        if  (HASEXCEPTION())
6884
        	        {
6885
        	            goto rulesimpleTermEx;
6886
        	        }
6887
6888
6889
        	        {
6890
6
        	             expr = PARSER_STATE->convertStrToUnsorted(AntlrInput::tokenText(DISTINCT_OBJECT2));
6891
        	        }
6892
6893
6894
        	    }
6895
6
        	    break;
6896
6897
            }
6898
        }
6899
    }
6900
6901
    // This is where rules clean up and exit
6902
    //
6903
590
    goto rulesimpleTermEx; /* Prevent compiler warnings */
6904
590
    rulesimpleTermEx: ;
6905
6906
590
            if (HASEXCEPTION())
6907
            {
6908
                PREPORTERROR();
6909
                PRECOVER();
6910
            }
6911
590
    return ;
6912
}
6913
/* $ANTLR end simpleTerm */
6914
6915
/**
6916
 * $ANTLR start thfSimpleTerm
6917
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:765:1: thfSimpleTerm[cvc5::api::Term& expr] : ( NUMBER | DISTINCT_OBJECT );
6918
 */
6919
static void
6920
thfSimpleTerm(pTptpParser ctx, cvc5::api::Term& expr)
6921
{
6922
    pANTLR3_COMMON_TOKEN    DISTINCT_OBJECT3;
6923
6924
    /* Initialize rule variables
6925
     */
6926
6927
    DISTINCT_OBJECT3       = NULL;
6928
6929
    {
6930
        {
6931
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:766:3: ( NUMBER | DISTINCT_OBJECT )
6932
6933
            ANTLR3_UINT32 alt39;
6934
6935
            alt39=2;
6936
6937
            switch ( LA(1) )
6938
            {
6939
            case NUMBER:
6940
            	{
6941
            		alt39=1;
6942
            	}
6943
                break;
6944
            case DISTINCT_OBJECT:
6945
            	{
6946
            		alt39=2;
6947
            	}
6948
                break;
6949
6950
            default:
6951
                CONSTRUCTEX();
6952
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6953
                EXCEPTION->message      = (void *)"";
6954
                EXCEPTION->decisionNum  = 39;
6955
                EXCEPTION->state        = 0;
6956
6957
6958
                goto rulethfSimpleTermEx;
6959
6960
            }
6961
6962
            switch (alt39)
6963
            {
6964
        	case 1:
6965
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:766:5: NUMBER
6966
        	    {
6967
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_thfSimpleTerm1756);
6968
        	        if  (HASEXCEPTION())
6969
        	        {
6970
        	            goto rulethfSimpleTermEx;
6971
        	        }
6972
6973
6974
        	        {
6975
        	             expr = PARSER_STATE->d_tmp_expr;
6976
        	        }
6977
6978
6979
        	    }
6980
        	    break;
6981
        	case 2:
6982
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:767:5: DISTINCT_OBJECT
6983
        	    {
6984
        	        DISTINCT_OBJECT3 = (pANTLR3_COMMON_TOKEN) MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764);
6985
        	        if  (HASEXCEPTION())
6986
        	        {
6987
        	            goto rulethfSimpleTermEx;
6988
        	        }
6989
6990
6991
        	        {
6992
6993
        	                  expr = PARSER_STATE->convertStrToUnsorted(
6994
        	                      AntlrInput::tokenText(DISTINCT_OBJECT3));
6995
6996
        	        }
6997
6998
6999
        	    }
7000
        	    break;
7001
7002
            }
7003
        }
7004
    }
7005
7006
    // This is where rules clean up and exit
7007
    //
7008
    goto rulethfSimpleTermEx; /* Prevent compiler warnings */
7009
    rulethfSimpleTermEx: ;
7010
7011
            if (HASEXCEPTION())
7012
            {
7013
                PREPORTERROR();
7014
                PRECOVER();
7015
            }
7016
    return ;
7017
}
7018
/* $ANTLR end thfSimpleTerm */
7019
7020
/**
7021
 * $ANTLR start functionTerm
7022
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:774:1: functionTerm[cvc5::api::Term& expr] : ( plainTerm[expr] | definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK );
7023
 */
7024
static void
7025
360
functionTerm(pTptpParser ctx, cvc5::api::Term& expr)
7026
{
7027
7028
720
      std::vector<cvc5::api::Term> args;
7029
720
      ParseOp p;
7030
7031
    /* Initialize rule variables
7032
     */
7033
7034
    {
7035
        {
7036
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:779:3: ( plainTerm[expr] | definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK )
7037
7038
            ANTLR3_UINT32 alt40;
7039
7040
360
            alt40=2;
7041
7042
360
            switch ( LA(1) )
7043
            {
7044
305
            case CNF_TOK:
7045
            case FOF_TOK:
7046
            case INCLUDE_TOK:
7047
            case LOWER_WORD:
7048
            case LOWER_WORD_SINGLE_QUOTED:
7049
            case SINGLE_QUOTED:
7050
            case TFF_TOK:
7051
            case THF_TOK:
7052
            case TYPE_TOK:
7053
            	{
7054
305
            		alt40=1;
7055
            	}
7056
305
                break;
7057
55
            case 63:
7058
            case 64:
7059
            case 66:
7060
            case 79:
7061
            case 80:
7062
            case 81:
7063
            case 82:
7064
            case 83:
7065
            case 84:
7066
            case 85:
7067
            case 86:
7068
            case 87:
7069
            case 88:
7070
            case 90:
7071
            case 91:
7072
            case 92:
7073
            case 93:
7074
            case 94:
7075
            	{
7076
55
            		alt40=2;
7077
            	}
7078
55
                break;
7079
7080
            default:
7081
                CONSTRUCTEX();
7082
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7083
                EXCEPTION->message      = (void *)"";
7084
                EXCEPTION->decisionNum  = 40;
7085
                EXCEPTION->state        = 0;
7086
7087
7088
                goto rulefunctionTermEx;
7089
7090
            }
7091
7092
360
            switch (alt40)
7093
            {
7094
305
        	case 1:
7095
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:779:5: plainTerm[expr]
7096
        	    {
7097
305
        	        FOLLOWPUSH(FOLLOW_plainTerm_in_functionTerm1789);
7098
305
        	        plainTerm(ctx, expr);
7099
7100
305
        	        FOLLOWPOP();
7101
305
        	        if  (HASEXCEPTION())
7102
        	        {
7103
        	            goto rulefunctionTermEx;
7104
        	        }
7105
7106
7107
        	    }
7108
305
        	    break;
7109
55
        	case 2:
7110
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:780:5: definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK
7111
        	    {
7112
55
        	        FOLLOWPUSH(FOLLOW_definedFun_in_functionTerm1796);
7113
55
        	        definedFun(ctx, p);
7114
7115
55
        	        FOLLOWPOP();
7116
55
        	        if  (HASEXCEPTION())
7117
        	        {
7118
        	            goto rulefunctionTermEx;
7119
        	        }
7120
7121
7122
55
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_functionTerm1799);
7123
55
        	        if  (HASEXCEPTION())
7124
        	        {
7125
        	            goto rulefunctionTermEx;
7126
        	        }
7127
7128
7129
55
        	        FOLLOWPUSH(FOLLOW_arguments_in_functionTerm1801);
7130
55
        	        arguments(ctx, args);
7131
7132
55
        	        FOLLOWPOP();
7133
55
        	        if  (HASEXCEPTION())
7134
        	        {
7135
        	            goto rulefunctionTermEx;
7136
        	        }
7137
7138
7139
55
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_functionTerm1804);
7140
55
        	        if  (HASEXCEPTION())
7141
        	        {
7142
        	            goto rulefunctionTermEx;
7143
        	        }
7144
7145
7146
        	        {
7147
7148
55
        	                  expr = PARSER_STATE->applyParseOp(p, args);
7149
7150
        	        }
7151
7152
7153
        	    }
7154
55
        	    break;
7155
7156
            }
7157
        }
7158
    }
7159
7160
    // This is where rules clean up and exit
7161
    //
7162
360
    goto rulefunctionTermEx; /* Prevent compiler warnings */
7163
360
    rulefunctionTermEx: ;
7164
7165
360
            if (HASEXCEPTION())
7166
            {
7167
                PREPORTERROR();
7168
                PRECOVER();
7169
            }
7170
720
    return ;
7171
}
7172
/* $ANTLR end functionTerm */
7173
7174
/**
7175
 * $ANTLR start conditionalTerm
7176
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:786:1: conditionalTerm[cvc5::api::Term& expr] : '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK ;
7177
 */
7178
static void
7179
2
conditionalTerm(pTptpParser ctx, cvc5::api::Term& expr)
7180
{
7181
7182
4
      cvc5::api::Term expr2, expr3;
7183
7184
    /* Initialize rule variables
7185
     */
7186
7187
    {
7188
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:790:3: ( '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK )
7189
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:790:5: '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK
7190
        {
7191
2
             MATCHT(72, &FOLLOW_72_in_conditionalTerm1829);
7192
2
            if  (HASEXCEPTION())
7193
            {
7194
                goto ruleconditionalTermEx;
7195
            }
7196
7197
7198
2
             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_conditionalTerm1831);
7199
2
            if  (HASEXCEPTION())
7200
            {
7201
                goto ruleconditionalTermEx;
7202
            }
7203
7204
7205
2
            FOLLOWPUSH(FOLLOW_tffLogicFormula_in_conditionalTerm1833);
7206
2
            tffLogicFormula(ctx, expr);
7207
7208
2
            FOLLOWPOP();
7209
2
            if  (HASEXCEPTION())
7210
            {
7211
                goto ruleconditionalTermEx;
7212
            }
7213
7214
7215
2
             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_conditionalTerm1836);
7216
2
            if  (HASEXCEPTION())
7217
            {
7218
                goto ruleconditionalTermEx;
7219
            }
7220
7221
7222
2
            FOLLOWPUSH(FOLLOW_term_in_conditionalTerm1838);
7223
2
            term(ctx, expr2);
7224
7225
2
            FOLLOWPOP();
7226
2
            if  (HASEXCEPTION())
7227
            {
7228
                goto ruleconditionalTermEx;
7229
            }
7230
7231
7232
2
             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_conditionalTerm1841);
7233
2
            if  (HASEXCEPTION())
7234
            {
7235
                goto ruleconditionalTermEx;
7236
            }
7237
7238
7239
2
            FOLLOWPUSH(FOLLOW_term_in_conditionalTerm1843);
7240
2
            term(ctx, expr3);
7241
7242
2
            FOLLOWPOP();
7243
2
            if  (HASEXCEPTION())
7244
            {
7245
                goto ruleconditionalTermEx;
7246
            }
7247
7248
7249
2
             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_conditionalTerm1846);
7250
2
            if  (HASEXCEPTION())
7251
            {
7252
                goto ruleconditionalTermEx;
7253
            }
7254
7255
7256
            {
7257
2
                 expr = MK_TERM(api::ITE, expr, expr2, expr3);
7258
            }
7259
7260
7261
        }
7262
7263
    }
7264
7265
    // This is where rules clean up and exit
7266
    //
7267
2
    goto ruleconditionalTermEx; /* Prevent compiler warnings */
7268
2
    ruleconditionalTermEx: ;
7269
7270
2
            if (HASEXCEPTION())
7271
            {
7272
                PREPORTERROR();
7273
                PRECOVER();
7274
            }
7275
4
    return ;
7276
}
7277
/* $ANTLR end conditionalTerm */
7278
7279
/**
7280
 * $ANTLR start plainTerm
7281
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:794:1: plainTerm[cvc5::api::Term& expr] : atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ;
7282
 */
7283
static void
7284
305
plainTerm(pTptpParser ctx, cvc5::api::Term& expr)
7285
{
7286
7287
610
      std::string name;
7288
610
      std::vector<api::Term> args;
7289
610
      ParseOp p;
7290
7291
    /* Initialize rule variables
7292
     */
7293
7294
    {
7295
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:800:3: ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? )
7296
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:800:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
7297
        {
7298
305
            FOLLOWPUSH(FOLLOW_atomicWord_in_plainTerm1871);
7299
305
            atomicWord(ctx, p.d_name);
7300
7301
305
            FOLLOWPOP();
7302
305
            if  (HASEXCEPTION())
7303
            {
7304
                goto ruleplainTermEx;
7305
            }
7306
7307
7308
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:800:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
7309
            {
7310
305
                int alt41=2;
7311
305
                switch ( LA(1) )
7312
                {
7313
135
                    case LPAREN_TOK:
7314
                    	{
7315
135
                    		alt41=1;
7316
                    	}
7317
135
                        break;
7318
                }
7319
7320
305
                switch (alt41)
7321
                {
7322
135
            	case 1:
7323
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:800:27: LPAREN_TOK arguments[args] RPAREN_TOK
7324
            	    {
7325
135
            	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_plainTerm1875);
7326
135
            	        if  (HASEXCEPTION())
7327
            	        {
7328
            	            goto ruleplainTermEx;
7329
            	        }
7330
7331
7332
135
            	        FOLLOWPUSH(FOLLOW_arguments_in_plainTerm1877);
7333
135
            	        arguments(ctx, args);
7334
7335
135
            	        FOLLOWPOP();
7336
135
            	        if  (HASEXCEPTION())
7337
            	        {
7338
            	            goto ruleplainTermEx;
7339
            	        }
7340
7341
7342
135
            	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_plainTerm1880);
7343
135
            	        if  (HASEXCEPTION())
7344
            	        {
7345
            	            goto ruleplainTermEx;
7346
            	        }
7347
7348
7349
            	    }
7350
135
            	    break;
7351
7352
                }
7353
            }
7354
7355
            {
7356
7357
440
                      expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
7358
135
                                          : PARSER_STATE->applyParseOp(p, args);
7359
7360
            }
7361
7362
7363
        }
7364
7365
    }
7366
7367
    // This is where rules clean up and exit
7368
    //
7369
305
    goto ruleplainTermEx; /* Prevent compiler warnings */
7370
305
    ruleplainTermEx: ;
7371
7372
305
            if (HASEXCEPTION())
7373
            {
7374
                PREPORTERROR();
7375
                PRECOVER();
7376
            }
7377
610
    return ;
7378
}
7379
/* $ANTLR end plainTerm */
7380
7381
/**
7382
 * $ANTLR start arguments
7383
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:807:1: arguments[std::vector<cvc5::api::Term>& args] : term[expr] ( COMMA_TOK term[expr] )* ;
7384
 */
7385
static void
7386
587
arguments(pTptpParser ctx, std::vector<cvc5::api::Term>& args)
7387
{
7388
7389
1174
      cvc5::api::Term expr;
7390
7391
    /* Initialize rule variables
7392
     */
7393
7394
    {
7395
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:811:3: ( term[expr] ( COMMA_TOK term[expr] )* )
7396
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:812:3: term[expr] ( COMMA_TOK term[expr] )*
7397
        {
7398
587
            FOLLOWPUSH(FOLLOW_term_in_arguments1909);
7399
587
            term(ctx, expr);
7400
7401
587
            FOLLOWPOP();
7402
587
            if  (HASEXCEPTION())
7403
            {
7404
                goto ruleargumentsEx;
7405
            }
7406
7407
7408
            {
7409
587
                 args.push_back(expr);
7410
            }
7411
7412
7413
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:812:40: ( COMMA_TOK term[expr] )*
7414
7415
            for (;;)
7416
            {
7417
842
                int alt42=2;
7418
842
                switch ( LA(1) )
7419
                {
7420
255
                case COMMA_TOK:
7421
                	{
7422
255
                		alt42=1;
7423
                	}
7424
255
                    break;
7425
7426
                }
7427
7428
842
                switch (alt42)
7429
                {
7430
255
            	case 1:
7431
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:812:42: COMMA_TOK term[expr]
7432
            	    {
7433
255
            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_arguments1916);
7434
255
            	        if  (HASEXCEPTION())
7435
            	        {
7436
            	            goto ruleargumentsEx;
7437
            	        }
7438
7439
7440
255
            	        FOLLOWPUSH(FOLLOW_term_in_arguments1918);
7441
255
            	        term(ctx, expr);
7442
7443
255
            	        FOLLOWPOP();
7444
255
            	        if  (HASEXCEPTION())
7445
            	        {
7446
            	            goto ruleargumentsEx;
7447
            	        }
7448
7449
7450
            	        {
7451
255
            	             args.push_back(expr);
7452
            	        }
7453
7454
7455
            	    }
7456
255
            	    break;
7457
7458
587
            	default:
7459
587
            	    goto loop42;	/* break out of the loop */
7460
            	    break;
7461
                }
7462
255
            }
7463
587
            loop42: ; /* Jump out to here if this rule does not match */
7464
7465
7466
        }
7467
7468
    }
7469
7470
    // This is where rules clean up and exit
7471
    //
7472
587
    goto ruleargumentsEx; /* Prevent compiler warnings */
7473
587
    ruleargumentsEx: ;
7474
7475
587
            if (HASEXCEPTION())
7476
            {
7477
                PREPORTERROR();
7478
                PRECOVER();
7479
            }
7480
1174
    return ;
7481
}
7482
/* $ANTLR end arguments */
7483
7484
/**
7485
 * $ANTLR start variable
7486
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:815:1: variable[cvc5::api::Term& expr] : UPPER_WORD ;
7487
 */
7488
static void
7489
6163
variable(pTptpParser ctx, cvc5::api::Term& expr)
7490
{
7491
    pANTLR3_COMMON_TOKEN    UPPER_WORD4;
7492
7493
    /* Initialize rule variables
7494
     */
7495
7496
6163
    UPPER_WORD4       = NULL;
7497
7498
    {
7499
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:816:3: ( UPPER_WORD )
7500
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:816:5: UPPER_WORD
7501
        {
7502
6163
            UPPER_WORD4 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_variable1938);
7503
6163
            if  (HASEXCEPTION())
7504
            {
7505
                goto rulevariableEx;
7506
            }
7507
7508
7509
            {
7510
7511
12326
                      std::string name = AntlrInput::tokenText(UPPER_WORD4);
7512
6163
                      if(!PARSER_STATE->cnf() || PARSER_STATE->isDeclared(name)) {
7513
6104
                        expr = PARSER_STATE->getVariable(name);
7514
                      } else {
7515
59
                        expr = PARSER_STATE->bindBoundVar(name, PARSER_STATE->d_unsorted);
7516
59
                        if(PARSER_STATE->cnf()) PARSER_STATE->addFreeVar(expr);
7517
                      }
7518
7519
            }
7520
7521
7522
        }
7523
7524
    }
7525
7526
    // This is where rules clean up and exit
7527
    //
7528
6163
    goto rulevariableEx; /* Prevent compiler warnings */
7529
6163
    rulevariableEx: ;
7530
7531
6163
            if (HASEXCEPTION())
7532
            {
7533
                PREPORTERROR();
7534
                PRECOVER();
7535
            }
7536
6163
    return ;
7537
}
7538
/* $ANTLR end variable */
7539
7540
/**
7541
 * $ANTLR start fofFormula
7542
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:830:1: fofFormula[cvc5::api::Term& expr] : fofLogicFormula[expr] ;
7543
 */
7544
static void
7545
75
fofFormula(pTptpParser ctx, cvc5::api::Term& expr)
7546
{
7547
    /* Initialize rule variables
7548
     */
7549
7550
    {
7551
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:830:35: ( fofLogicFormula[expr] )
7552
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:830:37: fofLogicFormula[expr]
7553
        {
7554
75
            FOLLOWPUSH(FOLLOW_fofLogicFormula_in_fofFormula1962);
7555
75
            fofLogicFormula(ctx, expr);
7556
7557
75
            FOLLOWPOP();
7558
75
            if  (HASEXCEPTION())
7559
            {
7560
                goto rulefofFormulaEx;
7561
            }
7562
7563
7564
        }
7565
7566
    }
7567
7568
    // This is where rules clean up and exit
7569
    //
7570
75
    goto rulefofFormulaEx; /* Prevent compiler warnings */
7571
75
    rulefofFormulaEx: ;
7572
7573
75
            if (HASEXCEPTION())
7574
            {
7575
                PREPORTERROR();
7576
                PRECOVER();
7577
            }
7578
75
    return ;
7579
}
7580
/* $ANTLR end fofFormula */
7581
7582
/**
7583
 * $ANTLR start fofLogicFormula
7584
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:832:1: fofLogicFormula[cvc5::api::Term& expr] : fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )? ;
7585
 */
7586
static void
7587
207
fofLogicFormula(pTptpParser ctx, cvc5::api::Term& expr)
7588
{
7589
7590
      tptp::NonAssoc na;
7591
414
      std::vector< cvc5::api::Term > args;
7592
414
      cvc5::api::Term expr2;
7593
7594
    /* Initialize rule variables
7595
     */
7596
7597
    {
7598
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:838:3: ( fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )? )
7599
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:838:5: fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )?
7600
        {
7601
207
            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980);
7602
207
            fofUnitaryFormula(ctx, expr);
7603
7604
207
            FOLLOWPOP();
7605
207
            if  (HASEXCEPTION())
7606
            {
7607
                goto rulefofLogicFormulaEx;
7608
            }
7609
7610
7611
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:839:5: ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )?
7612
            {
7613
207
                int alt45=4;
7614
207
                switch ( LA(1) )
7615
                {
7616
36
                    case IFF_TOK:
7617
                    case IMPLIES_TOK:
7618
                    case REVAND_TOK:
7619
                    case REVIFF_TOK:
7620
                    case REVIMPLIES_TOK:
7621
                    case REVOR_TOK:
7622
                    	{
7623
36
                    		alt45=1;
7624
                    	}
7625
36
                        break;
7626
26
                    case AND_TOK:
7627
                    	{
7628
26
                    		alt45=2;
7629
                    	}
7630
26
                        break;
7631
11
                    case OR_TOK:
7632
                    	{
7633
11
                    		alt45=3;
7634
                    	}
7635
11
                        break;
7636
                }
7637
7638
207
                switch (alt45)
7639
                {
7640
36
            	case 1:
7641
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:840:7: ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] )
7642
            	    {
7643
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:840:7: ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] )
7644
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:840:9: fofBinaryNonAssoc[na] fofUnitaryFormula[expr2]
7645
            	        {
7646
36
            	            FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998);
7647
36
            	            fofBinaryNonAssoc(ctx, na);
7648
7649
36
            	            FOLLOWPOP();
7650
36
            	            if  (HASEXCEPTION())
7651
            	            {
7652
            	                goto rulefofLogicFormulaEx;
7653
            	            }
7654
7655
7656
36
            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001);
7657
36
            	            fofUnitaryFormula(ctx, expr2);
7658
7659
36
            	            FOLLOWPOP();
7660
36
            	            if  (HASEXCEPTION())
7661
            	            {
7662
            	                goto rulefofLogicFormulaEx;
7663
            	            }
7664
7665
7666
            	            {
7667
36
            	                 switch(na) {
7668
6
            	                           case tptp::NA_IFF:
7669
6
            	                             expr = MK_TERM(api::EQUAL,expr,expr2);
7670
6
            	                             break;
7671
1
            	                           case tptp::NA_REVIFF:
7672
1
            	                             expr = MK_TERM(api::XOR,expr,expr2);
7673
1
            	                             break;
7674
26
            	                           case tptp::NA_IMPLIES:
7675
26
            	                             expr = MK_TERM(api::IMPLIES,expr,expr2);
7676
26
            	                             break;
7677
1
            	                           case tptp::NA_REVIMPLIES:
7678
1
            	                             expr = MK_TERM(api::IMPLIES,expr2,expr);
7679
1
            	                             break;
7680
1
            	                           case tptp::NA_REVOR:
7681
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::OR,expr,expr2));
7682
1
            	                             break;
7683
1
            	                           case tptp::NA_REVAND:
7684
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::AND,expr,expr2));
7685
1
            	                             break;
7686
            	                          }
7687
7688
            	            }
7689
7690
7691
            	        }
7692
7693
7694
            	    }
7695
36
            	    break;
7696
26
            	case 2:
7697
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:864:7: ( ( AND_TOK fofUnitaryFormula[expr] )+ )
7698
            	    {
7699
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:864:7: ( ( AND_TOK fofUnitaryFormula[expr] )+ )
7700
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:864:9: ( AND_TOK fofUnitaryFormula[expr] )+
7701
            	        {
7702
            	            {
7703
26
            	                 args.push_back(expr);
7704
            	            }
7705
7706
7707
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:865:9: ( AND_TOK fofUnitaryFormula[expr] )+
7708
            	            {
7709
26
            	                int cnt43=0;
7710
7711
            	                for (;;)
7712
            	                {
7713
52
            	                    int alt43=2;
7714
52
            	            	switch ( LA(1) )
7715
            	            	{
7716
26
            	            	case AND_TOK:
7717
            	            		{
7718
26
            	            			alt43=1;
7719
            	            		}
7720
26
            	            	    break;
7721
7722
            	            	}
7723
7724
52
            	            	switch (alt43)
7725
            	            	{
7726
26
            	            	    case 1:
7727
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:865:11: AND_TOK fofUnitaryFormula[expr]
7728
            	            	        {
7729
26
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_fofLogicFormula2049);
7730
26
            	            	            if  (HASEXCEPTION())
7731
            	            	            {
7732
            	            	                goto rulefofLogicFormulaEx;
7733
            	            	            }
7734
7735
7736
26
            	            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051);
7737
26
            	            	            fofUnitaryFormula(ctx, expr);
7738
7739
26
            	            	            FOLLOWPOP();
7740
26
            	            	            if  (HASEXCEPTION())
7741
            	            	            {
7742
            	            	                goto rulefofLogicFormulaEx;
7743
            	            	            }
7744
7745
7746
            	            	            {
7747
26
            	            	                 args.push_back(expr);
7748
            	            	            }
7749
7750
7751
            	            	        }
7752
26
            	            	        break;
7753
7754
26
            	            	    default:
7755
7756
26
            	            		if ( cnt43 >= 1 )
7757
            	            		{
7758
26
            	            		    goto loop43;
7759
            	            		}
7760
            	            		/* mismatchedSetEx()
7761
            	            		 */
7762
            	            		CONSTRUCTEX();
7763
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
7764
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
7765
7766
7767
            	            		goto rulefofLogicFormulaEx;
7768
            	            	}
7769
26
            	            	cnt43++;
7770
26
            	                }
7771
26
            	                loop43: ;	/* Jump to here if this rule does not match */
7772
            	            }
7773
7774
            	            {
7775
26
            	                 expr = MK_TERM(api::AND, args);
7776
            	            }
7777
7778
7779
            	        }
7780
7781
7782
            	    }
7783
26
            	    break;
7784
11
            	case 3:
7785
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:869:7: ( ( OR_TOK fofUnitaryFormula[expr] )+ )
7786
            	    {
7787
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:869:7: ( ( OR_TOK fofUnitaryFormula[expr] )+ )
7788
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:869:9: ( OR_TOK fofUnitaryFormula[expr] )+
7789
            	        {
7790
            	            {
7791
11
            	                 args.push_back(expr);
7792
            	            }
7793
7794
7795
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:870:9: ( OR_TOK fofUnitaryFormula[expr] )+
7796
            	            {
7797
11
            	                int cnt44=0;
7798
7799
            	                for (;;)
7800
            	                {
7801
36
            	                    int alt44=2;
7802
36
            	            	switch ( LA(1) )
7803
            	            	{
7804
25
            	            	case OR_TOK:
7805
            	            		{
7806
25
            	            			alt44=1;
7807
            	            		}
7808
25
            	            	    break;
7809
7810
            	            	}
7811
7812
36
            	            	switch (alt44)
7813
            	            	{
7814
25
            	            	    case 1:
7815
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:870:11: OR_TOK fofUnitaryFormula[expr]
7816
            	            	        {
7817
25
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_fofLogicFormula2104);
7818
25
            	            	            if  (HASEXCEPTION())
7819
            	            	            {
7820
            	            	                goto rulefofLogicFormulaEx;
7821
            	            	            }
7822
7823
7824
25
            	            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106);
7825
25
            	            	            fofUnitaryFormula(ctx, expr);
7826
7827
25
            	            	            FOLLOWPOP();
7828
25
            	            	            if  (HASEXCEPTION())
7829
            	            	            {
7830
            	            	                goto rulefofLogicFormulaEx;
7831
            	            	            }
7832
7833
7834
            	            	            {
7835
25
            	            	                 args.push_back(expr);
7836
            	            	            }
7837
7838
7839
            	            	        }
7840
25
            	            	        break;
7841
7842
11
            	            	    default:
7843
7844
11
            	            		if ( cnt44 >= 1 )
7845
            	            		{
7846
11
            	            		    goto loop44;
7847
            	            		}
7848
            	            		/* mismatchedSetEx()
7849
            	            		 */
7850
            	            		CONSTRUCTEX();
7851
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
7852
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
7853
7854
7855
            	            		goto rulefofLogicFormulaEx;
7856
            	            	}
7857
25
            	            	cnt44++;
7858
25
            	                }
7859
11
            	                loop44: ;	/* Jump to here if this rule does not match */
7860
            	            }
7861
7862
            	            {
7863
11
            	                 expr = MK_TERM(api::OR, args);
7864
            	            }
7865
7866
7867
            	        }
7868
7869
7870
            	    }
7871
11
            	    break;
7872
7873
                }
7874
            }
7875
7876
        }
7877
7878
    }
7879
7880
    // This is where rules clean up and exit
7881
    //
7882
207
    goto rulefofLogicFormulaEx; /* Prevent compiler warnings */
7883
207
    rulefofLogicFormulaEx: ;
7884
7885
207
            if (HASEXCEPTION())
7886
            {
7887
                PREPORTERROR();
7888
                PRECOVER();
7889
            }
7890
414
    return ;
7891
}
7892
/* $ANTLR end fofLogicFormula */
7893
7894
/**
7895
 * $ANTLR start fofUnitaryFormula
7896
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:876:1: fofUnitaryFormula[cvc5::api::Term& expr] : ( atomicFormula[expr] | LPAREN_TOK fofLogicFormula[expr] RPAREN_TOK | NOT_TOK fofUnitaryFormula[expr] | folQuantifier[kind] LBRACK_TOK ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* ) RBRACK_TOK COLON_TOK fofUnitaryFormula[expr] );
7897
 */
7898
static void
7899
366
fofUnitaryFormula(pTptpParser ctx, cvc5::api::Term& expr)
7900
{
7901
7902
      api::Kind kind;
7903
732
      std::vector< cvc5::api::Term > bv;
7904
7905
    /* Initialize rule variables
7906
     */
7907
7908
    {
7909
        {
7910
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:881:3: ( atomicFormula[expr] | LPAREN_TOK fofLogicFormula[expr] RPAREN_TOK | NOT_TOK fofUnitaryFormula[expr] | folQuantifier[kind] LBRACK_TOK ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* ) RBRACK_TOK COLON_TOK fofUnitaryFormula[expr] )
7911
7912
            ANTLR3_UINT32 alt47;
7913
7914
366
            alt47=4;
7915
7916
366
            switch ( LA(1) )
7917
            {
7918
162
            case AND_TOK:
7919
            case CNF_TOK:
7920
            case DISTINCT_OBJECT:
7921
            case FALSE_TOK:
7922
            case FOF_TOK:
7923
            case IMPLIES_TOK:
7924
            case INCLUDE_TOK:
7925
            case LOWER_WORD:
7926
            case LOWER_WORD_SINGLE_QUOTED:
7927
            case NUMBER:
7928
            case OR_TOK:
7929
            case SINGLE_QUOTED:
7930
            case TFF_TOK:
7931
            case THF_TOK:
7932
            case TRUE_TOK:
7933
            case TYPE_TOK:
7934
            case UPPER_WORD:
7935
            case 63:
7936
            case 64:
7937
            case 65:
7938
            case 66:
7939
            case 67:
7940
            case 68:
7941
            case 69:
7942
            case 70:
7943
            case 72:
7944
            case 73:
7945
            case 74:
7946
            case 76:
7947
            case 78:
7948
            case 79:
7949
            case 80:
7950
            case 81:
7951
            case 82:
7952
            case 83:
7953
            case 84:
7954
            case 85:
7955
            case 86:
7956
            case 87:
7957
            case 88:
7958
            case 90:
7959
            case 91:
7960
            case 92:
7961
            case 93:
7962
            case 94:
7963
            	{
7964
162
            		alt47=1;
7965
            	}
7966
162
                break;
7967
132
            case LPAREN_TOK:
7968
            	{
7969
132
            		alt47=2;
7970
            	}
7971
132
                break;
7972
17
            case NOT_TOK:
7973
            	{
7974
17
            		alt47=3;
7975
            	}
7976
17
                break;
7977
55
            case EXISTS_TOK:
7978
            case FORALL_TOK:
7979
            	{
7980
55
            		alt47=4;
7981
            	}
7982
55
                break;
7983
7984
            default:
7985
                CONSTRUCTEX();
7986
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7987
                EXCEPTION->message      = (void *)"";
7988
                EXCEPTION->decisionNum  = 47;
7989
                EXCEPTION->state        = 0;
7990
7991
7992
                goto rulefofUnitaryFormulaEx;
7993
7994
            }
7995
7996
366
            switch (alt47)
7997
            {
7998
162
        	case 1:
7999
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:881:5: atomicFormula[expr]
8000
        	    {
8001
162
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_fofUnitaryFormula2156);
8002
162
        	        atomicFormula(ctx, expr);
8003
8004
162
        	        FOLLOWPOP();
8005
162
        	        if  (HASEXCEPTION())
8006
        	        {
8007
        	            goto rulefofUnitaryFormulaEx;
8008
        	        }
8009
8010
8011
        	    }
8012
162
        	    break;
8013
132
        	case 2:
8014
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:882:5: LPAREN_TOK fofLogicFormula[expr] RPAREN_TOK
8015
        	    {
8016
132
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163);
8017
132
        	        if  (HASEXCEPTION())
8018
        	        {
8019
        	            goto rulefofUnitaryFormulaEx;
8020
        	        }
8021
8022
8023
132
        	        FOLLOWPUSH(FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165);
8024
132
        	        fofLogicFormula(ctx, expr);
8025
8026
132
        	        FOLLOWPOP();
8027
132
        	        if  (HASEXCEPTION())
8028
        	        {
8029
        	            goto rulefofUnitaryFormulaEx;
8030
        	        }
8031
8032
8033
132
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168);
8034
132
        	        if  (HASEXCEPTION())
8035
        	        {
8036
        	            goto rulefofUnitaryFormulaEx;
8037
        	        }
8038
8039
8040
        	    }
8041
132
        	    break;
8042
17
        	case 3:
8043
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:883:5: NOT_TOK fofUnitaryFormula[expr]
8044
        	    {
8045
17
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_fofUnitaryFormula2174);
8046
17
        	        if  (HASEXCEPTION())
8047
        	        {
8048
        	            goto rulefofUnitaryFormulaEx;
8049
        	        }
8050
8051
8052
17
        	        FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176);
8053
17
        	        fofUnitaryFormula(ctx, expr);
8054
8055
17
        	        FOLLOWPOP();
8056
17
        	        if  (HASEXCEPTION())
8057
        	        {
8058
        	            goto rulefofUnitaryFormulaEx;
8059
        	        }
8060
8061
8062
        	        {
8063
17
        	             expr = MK_TERM(api::NOT,expr);
8064
        	        }
8065
8066
8067
        	    }
8068
17
        	    break;
8069
55
        	case 4:
8070
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:885:5: folQuantifier[kind] LBRACK_TOK ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* ) RBRACK_TOK COLON_TOK fofUnitaryFormula[expr]
8071
        	    {
8072
55
        	        FOLLOWPUSH(FOLLOW_folQuantifier_in_fofUnitaryFormula2190);
8073
55
        	        folQuantifier(ctx, kind);
8074
8075
55
        	        FOLLOWPOP();
8076
55
        	        if  (HASEXCEPTION())
8077
        	        {
8078
        	            goto rulefofUnitaryFormulaEx;
8079
        	        }
8080
8081
8082
55
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193);
8083
55
        	        if  (HASEXCEPTION())
8084
        	        {
8085
        	            goto rulefofUnitaryFormulaEx;
8086
        	        }
8087
8088
8089
        	        {
8090
55
        	            PARSER_STATE->pushScope();
8091
        	        }
8092
8093
8094
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:886:5: ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* )
8095
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:886:7: bindvariable[expr] ( COMMA_TOK bindvariable[expr] )*
8096
        	        {
8097
55
        	            FOLLOWPUSH(FOLLOW_bindvariable_in_fofUnitaryFormula2203);
8098
55
        	            bindvariable(ctx, expr);
8099
8100
55
        	            FOLLOWPOP();
8101
55
        	            if  (HASEXCEPTION())
8102
        	            {
8103
        	                goto rulefofUnitaryFormulaEx;
8104
        	            }
8105
8106
8107
        	            {
8108
55
        	                 bv.push_back(expr);
8109
        	            }
8110
8111
8112
        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:887:7: ( COMMA_TOK bindvariable[expr] )*
8113
8114
        	            for (;;)
8115
        	            {
8116
81
        	                int alt46=2;
8117
81
        	                switch ( LA(1) )
8118
        	                {
8119
26
        	                case COMMA_TOK:
8120
        	                	{
8121
26
        	                		alt46=1;
8122
        	                	}
8123
26
        	                    break;
8124
8125
        	                }
8126
8127
81
        	                switch (alt46)
8128
        	                {
8129
26
        	            	case 1:
8130
        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:887:9: COMMA_TOK bindvariable[expr]
8131
        	            	    {
8132
26
        	            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216);
8133
26
        	            	        if  (HASEXCEPTION())
8134
        	            	        {
8135
        	            	            goto rulefofUnitaryFormulaEx;
8136
        	            	        }
8137
8138
8139
26
        	            	        FOLLOWPUSH(FOLLOW_bindvariable_in_fofUnitaryFormula2218);
8140
26
        	            	        bindvariable(ctx, expr);
8141
8142
26
        	            	        FOLLOWPOP();
8143
26
        	            	        if  (HASEXCEPTION())
8144
        	            	        {
8145
        	            	            goto rulefofUnitaryFormulaEx;
8146
        	            	        }
8147
8148
8149
        	            	        {
8150
26
        	            	             bv.push_back(expr);
8151
        	            	        }
8152
8153
8154
        	            	    }
8155
26
        	            	    break;
8156
8157
55
        	            	default:
8158
55
        	            	    goto loop46;	/* break out of the loop */
8159
        	            	    break;
8160
        	                }
8161
26
        	            }
8162
55
        	            loop46: ; /* Jump out to here if this rule does not match */
8163
8164
8165
        	        }
8166
8167
8168
55
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228);
8169
55
        	        if  (HASEXCEPTION())
8170
        	        {
8171
        	            goto rulefofUnitaryFormulaEx;
8172
        	        }
8173
8174
8175
55
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_fofUnitaryFormula2234);
8176
55
        	        if  (HASEXCEPTION())
8177
        	        {
8178
        	            goto rulefofUnitaryFormulaEx;
8179
        	        }
8180
8181
8182
55
        	        FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236);
8183
55
        	        fofUnitaryFormula(ctx, expr);
8184
8185
55
        	        FOLLOWPOP();
8186
55
        	        if  (HASEXCEPTION())
8187
        	        {
8188
        	            goto rulefofUnitaryFormulaEx;
8189
        	        }
8190
8191
8192
        	        {
8193
55
        	             PARSER_STATE->popScope();
8194
55
        	                  expr = MK_TERM(kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
8195
8196
        	        }
8197
8198
8199
        	    }
8200
55
        	    break;
8201
8202
            }
8203
        }
8204
    }
8205
8206
    // This is where rules clean up and exit
8207
    //
8208
366
    goto rulefofUnitaryFormulaEx; /* Prevent compiler warnings */
8209
366
    rulefofUnitaryFormulaEx: ;
8210
8211
366
            if (HASEXCEPTION())
8212
            {
8213
                PREPORTERROR();
8214
                PRECOVER();
8215
            }
8216
732
    return ;
8217
}
8218
/* $ANTLR end fofUnitaryFormula */
8219
8220
/**
8221
 * $ANTLR start bindvariable
8222
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:894:1: bindvariable[cvc5::api::Term& expr] : UPPER_WORD ;
8223
 */
8224
static void
8225
81
bindvariable(pTptpParser ctx, cvc5::api::Term& expr)
8226
{
8227
    pANTLR3_COMMON_TOKEN    UPPER_WORD5;
8228
8229
    /* Initialize rule variables
8230
     */
8231
8232
81
    UPPER_WORD5       = NULL;
8233
8234
    {
8235
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:895:3: ( UPPER_WORD )
8236
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:895:5: UPPER_WORD
8237
        {
8238
81
            UPPER_WORD5 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_bindvariable2257);
8239
81
            if  (HASEXCEPTION())
8240
            {
8241
                goto rulebindvariableEx;
8242
            }
8243
8244
8245
            {
8246
162
                 std::string name = AntlrInput::tokenText(UPPER_WORD5);
8247
81
                      expr = PARSER_STATE->bindBoundVar(name, PARSER_STATE->d_unsorted);
8248
8249
            }
8250
8251
8252
        }
8253
8254
    }
8255
8256
    // This is where rules clean up and exit
8257
    //
8258
81
    goto rulebindvariableEx; /* Prevent compiler warnings */
8259
81
    rulebindvariableEx: ;
8260
8261
81
            if (HASEXCEPTION())
8262
            {
8263
                PREPORTERROR();
8264
                PRECOVER();
8265
            }
8266
81
    return ;
8267
}
8268
/* $ANTLR end bindvariable */
8269
8270
/**
8271
 * $ANTLR start fofBinaryNonAssoc
8272
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:901:1: fofBinaryNonAssoc[cvc5::parser::tptp::NonAssoc& na] : ( IFF_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | IMPLIES_TOK | REVIMPLIES_TOK );
8273
 */
8274
static void
8275
2109
fofBinaryNonAssoc(pTptpParser ctx, cvc5::parser::tptp::NonAssoc& na)
8276
{
8277
    /* Initialize rule variables
8278
     */
8279
8280
    {
8281
        {
8282
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:902:3: ( IFF_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | IMPLIES_TOK | REVIMPLIES_TOK )
8283
8284
            ANTLR3_UINT32 alt48;
8285
8286
2109
            alt48=6;
8287
8288
2109
            switch ( LA(1) )
8289
            {
8290
194
            case IFF_TOK:
8291
            	{
8292
194
            		alt48=1;
8293
            	}
8294
194
                break;
8295
2
            case REVIFF_TOK:
8296
            	{
8297
2
            		alt48=2;
8298
            	}
8299
2
                break;
8300
2
            case REVOR_TOK:
8301
            	{
8302
2
            		alt48=3;
8303
            	}
8304
2
                break;
8305
2
            case REVAND_TOK:
8306
            	{
8307
2
            		alt48=4;
8308
            	}
8309
2
                break;
8310
1907
            case IMPLIES_TOK:
8311
            	{
8312
1907
            		alt48=5;
8313
            	}
8314
1907
                break;
8315
2
            case REVIMPLIES_TOK:
8316
            	{
8317
2
            		alt48=6;
8318
            	}
8319
2
                break;
8320
8321
            default:
8322
                CONSTRUCTEX();
8323
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8324
                EXCEPTION->message      = (void *)"";
8325
                EXCEPTION->decisionNum  = 48;
8326
                EXCEPTION->state        = 0;
8327
8328
8329
                goto rulefofBinaryNonAssocEx;
8330
8331
            }
8332
8333
2109
            switch (alt48)
8334
            {
8335
194
        	case 1:
8336
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:902:5: IFF_TOK
8337
        	    {
8338
194
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277);
8339
194
        	        if  (HASEXCEPTION())
8340
        	        {
8341
        	            goto rulefofBinaryNonAssocEx;
8342
        	        }
8343
8344
8345
        	        {
8346
194
        	             na = tptp::NA_IFF;
8347
        	        }
8348
8349
8350
        	    }
8351
194
        	    break;
8352
2
        	case 2:
8353
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:903:5: REVIFF_TOK
8354
        	    {
8355
2
        	         MATCHT(REVIFF_TOK, &FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290);
8356
2
        	        if  (HASEXCEPTION())
8357
        	        {
8358
        	            goto rulefofBinaryNonAssocEx;
8359
        	        }
8360
8361
8362
        	        {
8363
2
        	             na = tptp::NA_REVIFF;
8364
        	        }
8365
8366
8367
        	    }
8368
2
        	    break;
8369
2
        	case 3:
8370
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:904:5: REVOR_TOK
8371
        	    {
8372
2
        	         MATCHT(REVOR_TOK, &FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300);
8373
2
        	        if  (HASEXCEPTION())
8374
        	        {
8375
        	            goto rulefofBinaryNonAssocEx;
8376
        	        }
8377
8378
8379
        	        {
8380
2
        	             na = tptp::NA_REVOR;
8381
        	        }
8382
8383
8384
        	    }
8385
2
        	    break;
8386
2
        	case 4:
8387
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:905:5: REVAND_TOK
8388
        	    {
8389
2
        	         MATCHT(REVAND_TOK, &FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311);
8390
2
        	        if  (HASEXCEPTION())
8391
        	        {
8392
        	            goto rulefofBinaryNonAssocEx;
8393
        	        }
8394
8395
8396
        	        {
8397
2
        	             na = tptp::NA_REVAND;
8398
        	        }
8399
8400
8401
        	    }
8402
2
        	    break;
8403
1907
        	case 5:
8404
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:906:5: IMPLIES_TOK
8405
        	    {
8406
1907
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321);
8407
1907
        	        if  (HASEXCEPTION())
8408
        	        {
8409
        	            goto rulefofBinaryNonAssocEx;
8410
        	        }
8411
8412
8413
        	        {
8414
1907
        	             na = tptp::NA_IMPLIES;
8415
        	        }
8416
8417
8418
        	    }
8419
1907
        	    break;
8420
2
        	case 6:
8421
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:907:5: REVIMPLIES_TOK
8422
        	    {
8423
2
        	         MATCHT(REVIMPLIES_TOK, &FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332);
8424
2
        	        if  (HASEXCEPTION())
8425
        	        {
8426
        	            goto rulefofBinaryNonAssocEx;
8427
        	        }
8428
8429
8430
        	        {
8431
2
        	             na = tptp::NA_REVIMPLIES;
8432
        	        }
8433
8434
8435
        	    }
8436
2
        	    break;
8437
8438
            }
8439
        }
8440
    }
8441
8442
    // This is where rules clean up and exit
8443
    //
8444
2109
    goto rulefofBinaryNonAssocEx; /* Prevent compiler warnings */
8445
2109
    rulefofBinaryNonAssocEx: ;
8446
8447
2109
            if (HASEXCEPTION())
8448
            {
8449
                PREPORTERROR();
8450
                PRECOVER();
8451
            }
8452
2109
    return ;
8453
}
8454
/* $ANTLR end fofBinaryNonAssoc */
8455
8456
/**
8457
 * $ANTLR start folQuantifier
8458
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:910:1: folQuantifier[cvc5::api::Kind& kind] : ( FORALL_TOK | EXISTS_TOK );
8459
 */
8460
static void
8461
119
folQuantifier(pTptpParser ctx, cvc5::api::Kind& kind)
8462
{
8463
    /* Initialize rule variables
8464
     */
8465
8466
    {
8467
        {
8468
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:911:3: ( FORALL_TOK | EXISTS_TOK )
8469
8470
            ANTLR3_UINT32 alt49;
8471
8472
119
            alt49=2;
8473
8474
119
            switch ( LA(1) )
8475
            {
8476
86
            case FORALL_TOK:
8477
            	{
8478
86
            		alt49=1;
8479
            	}
8480
86
                break;
8481
33
            case EXISTS_TOK:
8482
            	{
8483
33
            		alt49=2;
8484
            	}
8485
33
                break;
8486
8487
            default:
8488
                CONSTRUCTEX();
8489
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8490
                EXCEPTION->message      = (void *)"";
8491
                EXCEPTION->decisionNum  = 49;
8492
                EXCEPTION->state        = 0;
8493
8494
8495
                goto rulefolQuantifierEx;
8496
8497
            }
8498
8499
119
            switch (alt49)
8500
            {
8501
86
        	case 1:
8502
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:911:5: FORALL_TOK
8503
        	    {
8504
86
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_folQuantifier2348);
8505
86
        	        if  (HASEXCEPTION())
8506
        	        {
8507
        	            goto rulefolQuantifierEx;
8508
        	        }
8509
8510
8511
        	        {
8512
86
        	             kind = api::FORALL;
8513
        	        }
8514
8515
8516
        	    }
8517
86
        	    break;
8518
33
        	case 2:
8519
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:912:5: EXISTS_TOK
8520
        	    {
8521
33
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_folQuantifier2356);
8522
33
        	        if  (HASEXCEPTION())
8523
        	        {
8524
        	            goto rulefolQuantifierEx;
8525
        	        }
8526
8527
8528
        	        {
8529
33
        	             kind = api::EXISTS;
8530
        	        }
8531
8532
8533
        	    }
8534
33
        	    break;
8535
8536
            }
8537
        }
8538
    }
8539
8540
    // This is where rules clean up and exit
8541
    //
8542
119
    goto rulefolQuantifierEx; /* Prevent compiler warnings */
8543
119
    rulefolQuantifierEx: ;
8544
8545
119
            if (HASEXCEPTION())
8546
            {
8547
                PREPORTERROR();
8548
                PRECOVER();
8549
            }
8550
119
    return ;
8551
}
8552
/* $ANTLR end folQuantifier */
8553
8554
/**
8555
 * $ANTLR start thfQuantifier
8556
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:918:1: thfQuantifier[cvc5::api::Kind& kind] : ( FORALL_TOK | EXISTS_TOK | LAMBDA_TOK | CHOICE_TOK | DEF_DESC_TOK | ( TH1_UN_A | TH1_UN_E ) );
8557
 */
8558
static void
8559
1280
thfQuantifier(pTptpParser ctx, cvc5::api::Kind& kind)
8560
{
8561
    /* Initialize rule variables
8562
     */
8563
8564
    {
8565
        {
8566
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:919:3: ( FORALL_TOK | EXISTS_TOK | LAMBDA_TOK | CHOICE_TOK | DEF_DESC_TOK | ( TH1_UN_A | TH1_UN_E ) )
8567
8568
            ANTLR3_UINT32 alt50;
8569
8570
1280
            alt50=6;
8571
8572
1280
            switch ( LA(1) )
8573
            {
8574
1072
            case FORALL_TOK:
8575
            	{
8576
1072
            		alt50=1;
8577
            	}
8578
1072
                break;
8579
56
            case EXISTS_TOK:
8580
            	{
8581
56
            		alt50=2;
8582
            	}
8583
56
                break;
8584
152
            case LAMBDA_TOK:
8585
            	{
8586
152
            		alt50=3;
8587
            	}
8588
152
                break;
8589
            case CHOICE_TOK:
8590
            	{
8591
            		alt50=4;
8592
            	}
8593
                break;
8594
            case DEF_DESC_TOK:
8595
            	{
8596
            		alt50=5;
8597
            	}
8598
                break;
8599
            case TH1_UN_A:
8600
            case TH1_UN_E:
8601
            	{
8602
            		alt50=6;
8603
            	}
8604
                break;
8605
8606
            default:
8607
                CONSTRUCTEX();
8608
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8609
                EXCEPTION->message      = (void *)"";
8610
                EXCEPTION->decisionNum  = 50;
8611
                EXCEPTION->state        = 0;
8612
8613
8614
                goto rulethfQuantifierEx;
8615
8616
            }
8617
8618
1280
            switch (alt50)
8619
            {
8620
1072
        	case 1:
8621
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:919:5: FORALL_TOK
8622
        	    {
8623
1072
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_thfQuantifier2377);
8624
1072
        	        if  (HASEXCEPTION())
8625
        	        {
8626
        	            goto rulethfQuantifierEx;
8627
        	        }
8628
8629
8630
        	        {
8631
1072
        	             kind = api::FORALL;
8632
        	        }
8633
8634
8635
        	    }
8636
1072
        	    break;
8637
56
        	case 2:
8638
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:920:5: EXISTS_TOK
8639
        	    {
8640
56
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_thfQuantifier2385);
8641
56
        	        if  (HASEXCEPTION())
8642
        	        {
8643
        	            goto rulethfQuantifierEx;
8644
        	        }
8645
8646
8647
        	        {
8648
56
        	             kind = api::EXISTS;
8649
        	        }
8650
8651
8652
        	    }
8653
56
        	    break;
8654
152
        	case 3:
8655
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:921:5: LAMBDA_TOK
8656
        	    {
8657
152
        	         MATCHT(LAMBDA_TOK, &FOLLOW_LAMBDA_TOK_in_thfQuantifier2393);
8658
152
        	        if  (HASEXCEPTION())
8659
        	        {
8660
        	            goto rulethfQuantifierEx;
8661
        	        }
8662
8663
8664
        	        {
8665
152
        	             kind = api::LAMBDA;
8666
        	        }
8667
8668
8669
        	    }
8670
152
        	    break;
8671
        	case 4:
8672
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:922:5: CHOICE_TOK
8673
        	    {
8674
        	         MATCHT(CHOICE_TOK, &FOLLOW_CHOICE_TOK_in_thfQuantifier2401);
8675
        	        if  (HASEXCEPTION())
8676
        	        {
8677
        	            goto rulethfQuantifierEx;
8678
        	        }
8679
8680
8681
        	        {
8682
8683
        	                  UNSUPPORTED("Choice operator");
8684
8685
        	        }
8686
8687
8688
        	    }
8689
        	    break;
8690
        	case 5:
8691
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:926:5: DEF_DESC_TOK
8692
        	    {
8693
        	         MATCHT(DEF_DESC_TOK, &FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413);
8694
        	        if  (HASEXCEPTION())
8695
        	        {
8696
        	            goto rulethfQuantifierEx;
8697
        	        }
8698
8699
8700
        	        {
8701
8702
        	                  UNSUPPORTED("Description quantifier");
8703
8704
        	        }
8705
8706
8707
        	    }
8708
        	    break;
8709
        	case 6:
8710
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:930:5: ( TH1_UN_A | TH1_UN_E )
8711
        	    {
8712
        	        if ( ((LA(1) >= TH1_UN_A) && (LA(1) <= TH1_UN_E)) )
8713
        	        {
8714
        	            CONSUME();
8715
        	            PERRORRECOVERY=ANTLR3_FALSE;
8716
        	        }
8717
        	        else
8718
        	        {
8719
        	            CONSTRUCTEX();
8720
        	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
8721
        	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
8722
        	            EXCEPTION->expectingSet = NULL;
8723
8724
        	            goto rulethfQuantifierEx;
8725
        	        }
8726
8727
8728
        	        {
8729
8730
        	                  UNSUPPORTED("TH1 operator");
8731
8732
        	        }
8733
8734
8735
        	    }
8736
        	    break;
8737
8738
            }
8739
        }
8740
    }
8741
8742
    // This is where rules clean up and exit
8743
    //
8744
1280
    goto rulethfQuantifierEx; /* Prevent compiler warnings */
8745
1280
    rulethfQuantifierEx: ;
8746
8747
1280
            if (HASEXCEPTION())
8748
            {
8749
                PREPORTERROR();
8750
                PRECOVER();
8751
            }
8752
1280
    return ;
8753
}
8754
/* $ANTLR end thfQuantifier */
8755
8756
/**
8757
 * $ANTLR start thfAtomTyping
8758
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:936:1: thfAtomTyping[cvc5::Command*& cmd] : ( LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseThfType[type] ) );
8759
 */
8760
static void
8761
569
thfAtomTyping(pTptpParser ctx, cvc5::Command*& cmd)
8762
{
8763
8764
1138
      cvc5::api::Term expr;
8765
1138
      cvc5::api::Sort type;
8766
1138
      std::string name;
8767
8768
    /* Initialize rule variables
8769
     */
8770
8771
    {
8772
        {
8773
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:943:3: ( LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseThfType[type] ) )
8774
8775
            ANTLR3_UINT32 alt52;
8776
8777
569
            alt52=2;
8778
8779
569
            switch ( LA(1) )
8780
            {
8781
264
            case LPAREN_TOK:
8782
            	{
8783
264
            		alt52=1;
8784
            	}
8785
264
                break;
8786
305
            case CNF_TOK:
8787
            case FOF_TOK:
8788
            case INCLUDE_TOK:
8789
            case LOWER_WORD:
8790
            case LOWER_WORD_SINGLE_QUOTED:
8791
            case NUMBER:
8792
            case SINGLE_QUOTED:
8793
            case TFF_TOK:
8794
            case THF_TOK:
8795
            case TYPE_TOK:
8796
            	{
8797
305
            		alt52=2;
8798
            	}
8799
305
                break;
8800
8801
            default:
8802
                CONSTRUCTEX();
8803
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8804
                EXCEPTION->message      = (void *)"";
8805
                EXCEPTION->decisionNum  = 52;
8806
                EXCEPTION->state        = 0;
8807
8808
8809
                goto rulethfAtomTypingEx;
8810
8811
            }
8812
8813
569
            switch (alt52)
8814
            {
8815
264
        	case 1:
8816
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:943:5: LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK
8817
        	    {
8818
264
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomTyping2457);
8819
264
        	        if  (HASEXCEPTION())
8820
        	        {
8821
        	            goto rulethfAtomTypingEx;
8822
        	        }
8823
8824
8825
264
        	        FOLLOWPUSH(FOLLOW_thfAtomTyping_in_thfAtomTyping2459);
8826
264
        	        thfAtomTyping(ctx, cmd);
8827
8828
264
        	        FOLLOWPOP();
8829
264
        	        if  (HASEXCEPTION())
8830
        	        {
8831
        	            goto rulethfAtomTypingEx;
8832
        	        }
8833
8834
8835
264
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomTyping2462);
8836
264
        	        if  (HASEXCEPTION())
8837
        	        {
8838
        	            goto rulethfAtomTypingEx;
8839
        	        }
8840
8841
8842
        	    }
8843
264
        	    break;
8844
305
        	case 2:
8845
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:944:5: nameN[name] COLON_TOK ( '$tType' | parseThfType[type] )
8846
        	    {
8847
305
        	        FOLLOWPUSH(FOLLOW_nameN_in_thfAtomTyping2468);
8848
305
        	        nameN(ctx, name);
8849
8850
305
        	        FOLLOWPOP();
8851
305
        	        if  (HASEXCEPTION())
8852
        	        {
8853
        	            goto rulethfAtomTypingEx;
8854
        	        }
8855
8856
8857
305
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfAtomTyping2471);
8858
305
        	        if  (HASEXCEPTION())
8859
        	        {
8860
        	            goto rulethfAtomTypingEx;
8861
        	        }
8862
8863
8864
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:945:5: ( '$tType' | parseThfType[type] )
8865
        	        {
8866
305
        	            int alt51=2;
8867
305
        	            switch ( LA(1) )
8868
        	            {
8869
22
        	            case 89:
8870
        	            	{
8871
22
        	            		alt51=1;
8872
        	            	}
8873
22
        	                break;
8874
283
        	            case CNF_TOK:
8875
        	            case DEFINED_SYMBOL:
8876
        	            case FOF_TOK:
8877
        	            case INCLUDE_TOK:
8878
        	            case LBRACK_TOK:
8879
        	            case LOWER_WORD:
8880
        	            case LOWER_WORD_SINGLE_QUOTED:
8881
        	            case LPAREN_TOK:
8882
        	            case SINGLE_QUOTED:
8883
        	            case TFF_TOK:
8884
        	            case THF_TOK:
8885
        	            case TYPE_TOK:
8886
        	            	{
8887
283
        	            		alt51=2;
8888
        	            	}
8889
283
        	                break;
8890
8891
        	            default:
8892
        	                CONSTRUCTEX();
8893
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8894
        	                EXCEPTION->message      = (void *)"";
8895
        	                EXCEPTION->decisionNum  = 51;
8896
        	                EXCEPTION->state        = 0;
8897
8898
8899
        	                goto rulethfAtomTypingEx;
8900
8901
        	            }
8902
8903
305
        	            switch (alt51)
8904
        	            {
8905
22
        	        	case 1:
8906
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:945:7: '$tType'
8907
        	        	    {
8908
22
        	        	         MATCHT(89, &FOLLOW_89_in_thfAtomTyping2479);
8909
22
        	        	        if  (HASEXCEPTION())
8910
        	        	        {
8911
        	        	            goto rulethfAtomTypingEx;
8912
        	        	        }
8913
8914
8915
        	        	        {
8916
8917
22
        	        	                    if (PARSER_STATE->isDeclared(name, SYM_SORT))
8918
        	        	                    {
8919
        	        	                      // duplicate declaration is fine, they're compatible
8920
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
8921
        	        	                    }
8922
22
        	        	                    else if (PARSER_STATE->isDeclared(name, SYM_VARIABLE))
8923
        	        	                    {
8924
        	        	                      // error: cannot be both sort and constant
8925
        	        	                      PARSER_STATE->parseError(
8926
        	        	                          "Symbol `" + name
8927
        	        	                          + "' previously declared as a constant; cannot also be a sort");
8928
        	        	                    }
8929
        	        	                    else
8930
        	        	                    {
8931
        	        	                      // as yet, it's undeclared
8932
44
        	        	                      api::Sort atype = PARSER_STATE->mkSort(name);
8933
22
        	        	                      cmd = new DeclareSortCommand(name, 0, atype);
8934
        	        	                    }
8935
8936
        	        	        }
8937
8938
8939
        	        	    }
8940
22
        	        	    break;
8941
283
        	        	case 2:
8942
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:966:7: parseThfType[type]
8943
        	        	    {
8944
283
        	        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfAtomTyping2495);
8945
283
        	        	        parseThfType(ctx, type);
8946
8947
283
        	        	        FOLLOWPOP();
8948
283
        	        	        if  (HASEXCEPTION())
8949
        	        	        {
8950
        	        	            goto rulethfAtomTypingEx;
8951
        	        	        }
8952
8953
8954
        	        	        {
8955
8956
283
        	        	                    if (PARSER_STATE->isDeclared(name, SYM_SORT))
8957
        	        	                    {
8958
        	        	                      // error: cannot be both sort and constant
8959
        	        	                      PARSER_STATE->parseError("Symbol `" + name
8960
        	        	                                               + "' previously declared as a sort");
8961
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
8962
        	        	                    }
8963
283
        	        	                    else if (PARSER_STATE->isDeclared(name, SYM_VARIABLE))
8964
        	        	                    {
8965
        	        	                      if (type == PARSER_STATE->getVariable(name).getSort())
8966
        	        	                      {
8967
        	        	                        // duplicate declaration is fine, they're compatible
8968
        	        	                        cmd = new EmptyCommand("compatible redeclaration of constant "
8969
        	        	                                               + name);
8970
        	        	                      }
8971
        	        	                      else
8972
        	        	                      {
8973
        	        	                        // error: sorts incompatible
8974
        	        	                        PARSER_STATE->parseError(
8975
        	        	                            "Symbol `" + name
8976
        	        	                            + "' declared previously with a different sort");
8977
        	        	                      }
8978
        	        	                    }
8979
        	        	                    else
8980
        	        	                    {
8981
        	        	                      // as of yet, it's undeclared
8982
566
        	        	                      cvc5::api::Term freshExpr;
8983
283
        	        	                      if (type.isFunction())
8984
        	        	                      {
8985
140
        	        	                        freshExpr = PARSER_STATE->bindVar(name, type);
8986
        	        	                      }
8987
        	        	                      else
8988
        	        	                      {
8989
143
        	        	                        freshExpr = PARSER_STATE->bindVar(name, type);
8990
        	        	                      }
8991
283
        	        	                      cmd = new DeclareFunctionCommand(name, freshExpr, type);
8992
        	        	                    }
8993
8994
        	        	        }
8995
8996
8997
        	        	    }
8998
283
        	        	    break;
8999
9000
        	            }
9001
        	        }
9002
9003
        	    }
9004
305
        	    break;
9005
9006
            }
9007
        }
9008
    }
9009
9010
    // This is where rules clean up and exit
9011
    //
9012
569
    goto rulethfAtomTypingEx; /* Prevent compiler warnings */
9013
569
    rulethfAtomTypingEx: ;
9014
9015
569
            if (HASEXCEPTION())
9016
            {
9017
                PREPORTERROR();
9018
                PRECOVER();
9019
            }
9020
1138
    return ;
9021
}
9022
/* $ANTLR end thfAtomTyping */
9023
9024
/**
9025
 * $ANTLR start thfLogicFormula
9026
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1009:1: thfLogicFormula[cvc5::ParseOp& p] : thfUnitaryFormula[p] ( equalOp[equal] thfUnitaryFormula[p1] | fofBinaryNonAssoc[na] thfUnitaryFormula[p1] | ( ( AND_TOK thfUnitaryFormula[p] )+ ) | ( ( OR_TOK thfUnitaryFormula[p] )+ ) | ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+ )? ;
9027
 */
9028
static void
9029
9081
thfLogicFormula(pTptpParser ctx, cvc5::ParseOp& p)
9030
{
9031
9032
      tptp::NonAssoc na;
9033
18162
      std::vector<cvc5::api::Term> args;
9034
18162
      std::vector<ParseOp> p_args;
9035
18162
      cvc5::api::Term expr2;
9036
      bool equal;
9037
18162
      ParseOp p1;
9038
9039
    /* Initialize rule variables
9040
     */
9041
9042
    {
9043
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1020:3: ( thfUnitaryFormula[p] ( equalOp[equal] thfUnitaryFormula[p1] | fofBinaryNonAssoc[na] thfUnitaryFormula[p1] | ( ( AND_TOK thfUnitaryFormula[p] )+ ) | ( ( OR_TOK thfUnitaryFormula[p] )+ ) | ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+ )? )
9044
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1020:5: thfUnitaryFormula[p] ( equalOp[equal] thfUnitaryFormula[p1] | fofBinaryNonAssoc[na] thfUnitaryFormula[p1] | ( ( AND_TOK thfUnitaryFormula[p] )+ ) | ( ( OR_TOK thfUnitaryFormula[p] )+ ) | ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+ )?
9045
        {
9046
9081
            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535);
9047
9081
            thfUnitaryFormula(ctx, p);
9048
9049
9081
            FOLLOWPOP();
9050
9081
            if  (HASEXCEPTION())
9051
            {
9052
                goto rulethfLogicFormulaEx;
9053
            }
9054
9055
9056
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1021:5: ( equalOp[equal] thfUnitaryFormula[p1] | fofBinaryNonAssoc[na] thfUnitaryFormula[p1] | ( ( AND_TOK thfUnitaryFormula[p] )+ ) | ( ( OR_TOK thfUnitaryFormula[p] )+ ) | ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+ )?
9057
            {
9058
9081
                int alt57=6;
9059
9081
                switch ( LA(1) )
9060
                {
9061
959
                    case DISEQUAL_TOK:
9062
                    case EQUAL_TOK:
9063
                    	{
9064
959
                    		alt57=1;
9065
                    	}
9066
959
                        break;
9067
2055
                    case IFF_TOK:
9068
                    case IMPLIES_TOK:
9069
                    case REVAND_TOK:
9070
                    case REVIFF_TOK:
9071
                    case REVIMPLIES_TOK:
9072
                    case REVOR_TOK:
9073
                    	{
9074
2055
                    		alt57=2;
9075
                    	}
9076
2055
                        break;
9077
115
                    case AND_TOK:
9078
                    	{
9079
115
                    		alt57=3;
9080
                    	}
9081
115
                        break;
9082
41
                    case OR_TOK:
9083
                    	{
9084
41
                    		alt57=4;
9085
                    	}
9086
41
                        break;
9087
3883
                    case APP_TOK:
9088
                    	{
9089
3883
                    		alt57=5;
9090
                    	}
9091
3883
                        break;
9092
                }
9093
9094
9081
                switch (alt57)
9095
                {
9096
959
            	case 1:
9097
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1022:7: equalOp[equal] thfUnitaryFormula[p1]
9098
            	    {
9099
959
            	        FOLLOWPUSH(FOLLOW_equalOp_in_thfLogicFormula2551);
9100
959
            	        equalOp(ctx, equal);
9101
9102
959
            	        FOLLOWPOP();
9103
959
            	        if  (HASEXCEPTION())
9104
            	        {
9105
            	            goto rulethfLogicFormulaEx;
9106
            	        }
9107
9108
9109
959
            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560);
9110
959
            	        thfUnitaryFormula(ctx, p1);
9111
9112
959
            	        FOLLOWPOP();
9113
959
            	        if  (HASEXCEPTION())
9114
            	        {
9115
            	            goto rulethfLogicFormulaEx;
9116
            	        }
9117
9118
9119
            	        {
9120
9121
959
            	                    if (p.d_expr.isNull() && !p1.d_expr.isNull())
9122
            	                    {
9123
            	                      // make p.d_expr with a lambda of the same type as p1.d_expr
9124
            	                      p.d_expr =
9125
            	                          PARSER_STATE->mkLambdaWrapper(p.d_kind, p1.d_expr.getSort());
9126
            	                    }
9127
959
            	                    else if (p1.d_expr.isNull() && !p.d_expr.isNull())
9128
            	                    {
9129
            	                      // make p1.d_expr with a lambda of the same type as p.d_expr
9130
            	                      p1.d_expr =
9131
            	                          PARSER_STATE->mkLambdaWrapper(p1.d_kind, p.d_expr.getSort());
9132
            	                    }
9133
959
            	                    else if (p.d_expr.isNull() && p1.d_expr.isNull())
9134
            	                    {
9135
            	                      // Without a reference type it's not possible in general to know what
9136
            	                      // the lambda wrapping should be, so we fail in these cases
9137
            	                      UNSUPPORTED("Equality between theory functions");
9138
            	                    }
9139
959
            	                    args.push_back(p.d_expr);
9140
959
            	                    args.push_back(p1.d_expr);
9141
959
            	                    p.d_expr = MK_TERM(api::EQUAL, args);
9142
959
            	                    if (!equal)
9143
            	                    {
9144
107
            	                      p.d_expr = MK_TERM(api::NOT, p.d_expr);
9145
            	                    }
9146
9147
            	        }
9148
9149
9150
            	    }
9151
959
            	    break;
9152
2055
            	case 2:
9153
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1052:7: fofBinaryNonAssoc[na] thfUnitaryFormula[p1]
9154
            	    {
9155
2055
            	        FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584);
9156
2055
            	        fofBinaryNonAssoc(ctx, na);
9157
9158
2055
            	        FOLLOWPOP();
9159
2055
            	        if  (HASEXCEPTION())
9160
            	        {
9161
            	            goto rulethfLogicFormulaEx;
9162
            	        }
9163
9164
9165
2055
            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587);
9166
2055
            	        thfUnitaryFormula(ctx, p1);
9167
9168
2055
            	        FOLLOWPOP();
9169
2055
            	        if  (HASEXCEPTION())
9170
            	        {
9171
            	            goto rulethfLogicFormulaEx;
9172
            	        }
9173
9174
9175
            	        {
9176
9177
2055
            	                    if (p.d_expr.isNull() || p1.d_expr.isNull())
9178
            	                    {
9179
            	                      PARSER_STATE->parseError(
9180
            	                          "Non-associative operator must be applied to formulas");
9181
            	                    }
9182
2055
            	                    switch (na)
9183
            	                    {
9184
187
            	                      case tptp::NA_IFF:
9185
187
            	                        p.d_expr = MK_TERM(api::EQUAL, p.d_expr, p1.d_expr);
9186
187
            	                        break;
9187
            	                      case tptp::NA_REVIFF:
9188
            	                        p.d_expr = MK_TERM(api::XOR, p.d_expr, p1.d_expr);
9189
            	                        break;
9190
1868
            	                      case tptp::NA_IMPLIES:
9191
1868
            	                        p.d_expr = MK_TERM(api::IMPLIES, p.d_expr, p1.d_expr);
9192
1868
            	                        break;
9193
            	                      case tptp::NA_REVIMPLIES:
9194
            	                        p.d_expr = MK_TERM(api::IMPLIES, p1.d_expr, p.d_expr);
9195
            	                        break;
9196
            	                      case tptp::NA_REVOR:
9197
            	                        p.d_expr =
9198
            	                            MK_TERM(api::NOT, MK_TERM(api::OR, p.d_expr, p1.d_expr));
9199
            	                        break;
9200
            	                      case tptp::NA_REVAND:
9201
            	                        p.d_expr =
9202
            	                            MK_TERM(api::NOT, MK_TERM(api::AND, p.d_expr, p1.d_expr));
9203
            	                        break;
9204
            	                    }
9205
9206
            	        }
9207
9208
9209
            	    }
9210
2055
            	    break;
9211
115
            	case 3:
9212
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1084:7: ( ( AND_TOK thfUnitaryFormula[p] )+ )
9213
            	    {
9214
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1084:7: ( ( AND_TOK thfUnitaryFormula[p] )+ )
9215
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1085:9: ( AND_TOK thfUnitaryFormula[p] )+
9216
            	        {
9217
            	            {
9218
9219
115
            	                          if (p.d_expr.isNull())
9220
            	                          {
9221
            	                            PARSER_STATE->parseError("AND must be applied to a formula");
9222
            	                          }
9223
115
            	                          args.push_back(p.d_expr);
9224
115
            	                          p = ParseOp();
9225
9226
            	            }
9227
9228
9229
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1093:9: ( AND_TOK thfUnitaryFormula[p] )+
9230
            	            {
9231
115
            	                int cnt53=0;
9232
9233
            	                for (;;)
9234
            	                {
9235
246
            	                    int alt53=2;
9236
246
            	            	switch ( LA(1) )
9237
            	            	{
9238
131
            	            	case AND_TOK:
9239
            	            		{
9240
131
            	            			alt53=1;
9241
            	            		}
9242
131
            	            	    break;
9243
9244
            	            	}
9245
9246
246
            	            	switch (alt53)
9247
            	            	{
9248
131
            	            	    case 1:
9249
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1093:11: AND_TOK thfUnitaryFormula[p]
9250
            	            	        {
9251
131
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_thfLogicFormula2633);
9252
131
            	            	            if  (HASEXCEPTION())
9253
            	            	            {
9254
            	            	                goto rulethfLogicFormulaEx;
9255
            	            	            }
9256
9257
9258
131
            	            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635);
9259
131
            	            	            thfUnitaryFormula(ctx, p);
9260
9261
131
            	            	            FOLLOWPOP();
9262
131
            	            	            if  (HASEXCEPTION())
9263
            	            	            {
9264
            	            	                goto rulethfLogicFormulaEx;
9265
            	            	            }
9266
9267
9268
            	            	            {
9269
9270
131
            	            	                            if (p.d_expr.isNull())
9271
            	            	                            {
9272
            	            	                              PARSER_STATE->parseError("AND must be applied to a formula");
9273
            	            	                            }
9274
131
            	            	                            args.push_back(p.d_expr);
9275
131
            	            	                            p = ParseOp();
9276
9277
            	            	            }
9278
9279
9280
            	            	        }
9281
131
            	            	        break;
9282
9283
115
            	            	    default:
9284
9285
115
            	            		if ( cnt53 >= 1 )
9286
            	            		{
9287
115
            	            		    goto loop53;
9288
            	            		}
9289
            	            		/* mismatchedSetEx()
9290
            	            		 */
9291
            	            		CONSTRUCTEX();
9292
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9293
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9294
9295
9296
            	            		goto rulethfLogicFormulaEx;
9297
            	            	}
9298
131
            	            	cnt53++;
9299
131
            	                }
9300
115
            	                loop53: ;	/* Jump to here if this rule does not match */
9301
            	            }
9302
9303
            	            {
9304
9305
115
            	                          p.d_expr = MK_TERM(api::AND, args);
9306
9307
            	            }
9308
9309
9310
            	        }
9311
9312
9313
            	    }
9314
115
            	    break;
9315
41
            	case 4:
9316
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1108:7: ( ( OR_TOK thfUnitaryFormula[p] )+ )
9317
            	    {
9318
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1108:7: ( ( OR_TOK thfUnitaryFormula[p] )+ )
9319
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1109:9: ( OR_TOK thfUnitaryFormula[p] )+
9320
            	        {
9321
            	            {
9322
9323
41
            	                          if (p.d_expr.isNull())
9324
            	                          {
9325
            	                            PARSER_STATE->parseError("OR must be applied to a formula");
9326
            	                          }
9327
41
            	                          args.push_back(p.d_expr);
9328
41
            	                          p = ParseOp();
9329
9330
            	            }
9331
9332
9333
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1117:9: ( OR_TOK thfUnitaryFormula[p] )+
9334
            	            {
9335
41
            	                int cnt54=0;
9336
9337
            	                for (;;)
9338
            	                {
9339
83
            	                    int alt54=2;
9340
83
            	            	switch ( LA(1) )
9341
            	            	{
9342
42
            	            	case OR_TOK:
9343
            	            		{
9344
42
            	            			alt54=1;
9345
            	            		}
9346
42
            	            	    break;
9347
9348
            	            	}
9349
9350
83
            	            	switch (alt54)
9351
            	            	{
9352
42
            	            	    case 1:
9353
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1117:11: OR_TOK thfUnitaryFormula[p]
9354
            	            	        {
9355
42
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_thfLogicFormula2714);
9356
42
            	            	            if  (HASEXCEPTION())
9357
            	            	            {
9358
            	            	                goto rulethfLogicFormulaEx;
9359
            	            	            }
9360
9361
9362
42
            	            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716);
9363
42
            	            	            thfUnitaryFormula(ctx, p);
9364
9365
42
            	            	            FOLLOWPOP();
9366
42
            	            	            if  (HASEXCEPTION())
9367
            	            	            {
9368
            	            	                goto rulethfLogicFormulaEx;
9369
            	            	            }
9370
9371
9372
            	            	            {
9373
9374
42
            	            	                            if (p.d_expr.isNull())
9375
            	            	                            {
9376
            	            	                              PARSER_STATE->parseError("OR must be applied to a formula");
9377
            	            	                            }
9378
42
            	            	                            args.push_back(p.d_expr);
9379
42
            	            	                            p = ParseOp();
9380
9381
            	            	            }
9382
9383
9384
            	            	        }
9385
42
            	            	        break;
9386
9387
41
            	            	    default:
9388
9389
41
            	            		if ( cnt54 >= 1 )
9390
            	            		{
9391
41
            	            		    goto loop54;
9392
            	            		}
9393
            	            		/* mismatchedSetEx()
9394
            	            		 */
9395
            	            		CONSTRUCTEX();
9396
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9397
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9398
9399
9400
            	            		goto rulethfLogicFormulaEx;
9401
            	            	}
9402
42
            	            	cnt54++;
9403
42
            	                }
9404
41
            	                loop54: ;	/* Jump to here if this rule does not match */
9405
            	            }
9406
9407
            	            {
9408
9409
41
            	                          p.d_expr = MK_TERM(api::OR, args);
9410
9411
            	            }
9412
9413
9414
            	        }
9415
9416
9417
            	    }
9418
41
            	    break;
9419
3883
            	case 5:
9420
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1137:7: ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+
9421
            	    {
9422
            	        {
9423
9424
3883
            	                    p_args.push_back(p);
9425
3883
            	                    p = ParseOp();
9426
9427
            	        }
9428
9429
9430
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1141:7: ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+
9431
            	        {
9432
3883
            	            int cnt56=0;
9433
9434
            	            for (;;)
9435
            	            {
9436
10495
            	                int alt56=2;
9437
10495
            	        	switch ( LA(1) )
9438
            	        	{
9439
6612
            	        	case APP_TOK:
9440
            	        		{
9441
6612
            	        			alt56=1;
9442
            	        		}
9443
6612
            	        	    break;
9444
9445
            	        	}
9446
9447
10495
            	        	switch (alt56)
9448
            	        	{
9449
6612
            	        	    case 1:
9450
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1141:9: APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK )
9451
            	        	        {
9452
6612
            	        	             MATCHT(APP_TOK, &FOLLOW_APP_TOK_in_thfLogicFormula2818);
9453
6612
            	        	            if  (HASEXCEPTION())
9454
            	        	            {
9455
            	        	                goto rulethfLogicFormulaEx;
9456
            	        	            }
9457
9458
9459
            	        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1142:9: ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK )
9460
            	        	            {
9461
6612
            	        	                int alt55=2;
9462
6612
            	        	                switch ( LA(1) )
9463
            	        	                {
9464
6612
            	        	                case CHOICE_TOK:
9465
            	        	                case CNF_TOK:
9466
            	        	                case DEF_DESC_TOK:
9467
            	        	                case DISTINCT_OBJECT:
9468
            	        	                case EXISTS_TOK:
9469
            	        	                case FALSE_TOK:
9470
            	        	                case FOF_TOK:
9471
            	        	                case FORALL_TOK:
9472
            	        	                case INCLUDE_TOK:
9473
            	        	                case LAMBDA_TOK:
9474
            	        	                case LOWER_WORD:
9475
            	        	                case LOWER_WORD_SINGLE_QUOTED:
9476
            	        	                case LPAREN_TOK:
9477
            	        	                case NOT_TOK:
9478
            	        	                case NUMBER:
9479
            	        	                case SINGLE_QUOTED:
9480
            	        	                case TFF_TOK:
9481
            	        	                case TH1_UN_A:
9482
            	        	                case TH1_UN_E:
9483
            	        	                case THF_TOK:
9484
            	        	                case TRUE_TOK:
9485
            	        	                case TYPE_TOK:
9486
            	        	                case UPPER_WORD:
9487
            	        	                case 63:
9488
            	        	                case 64:
9489
            	        	                case 65:
9490
            	        	                case 66:
9491
            	        	                case 67:
9492
            	        	                case 68:
9493
            	        	                case 69:
9494
            	        	                case 70:
9495
            	        	                case 72:
9496
            	        	                case 73:
9497
            	        	                case 74:
9498
            	        	                case 76:
9499
            	        	                case 78:
9500
            	        	                case 79:
9501
            	        	                case 80:
9502
            	        	                case 81:
9503
            	        	                case 82:
9504
            	        	                case 83:
9505
            	        	                case 84:
9506
            	        	                case 85:
9507
            	        	                case 86:
9508
            	        	                case 87:
9509
            	        	                case 88:
9510
            	        	                case 90:
9511
            	        	                case 91:
9512
            	        	                case 92:
9513
            	        	                case 93:
9514
            	        	                case 94:
9515
            	        	                	{
9516
6612
            	        	                		alt55=1;
9517
            	        	                	}
9518
6612
            	        	                    break;
9519
            	        	                case LBRACK_TOK:
9520
            	        	                	{
9521
            	        	                		alt55=2;
9522
            	        	                	}
9523
            	        	                    break;
9524
9525
            	        	                default:
9526
            	        	                    CONSTRUCTEX();
9527
            	        	                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9528
            	        	                    EXCEPTION->message      = (void *)"";
9529
            	        	                    EXCEPTION->decisionNum  = 55;
9530
            	        	                    EXCEPTION->state        = 0;
9531
9532
9533
            	        	                    goto rulethfLogicFormulaEx;
9534
9535
            	        	                }
9536
9537
6612
            	        	                switch (alt55)
9538
            	        	                {
9539
6612
            	        	            	case 1:
9540
            	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1143:10: thfUnitaryFormula[p]
9541
            	        	            	    {
9542
6612
            	        	            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839);
9543
6612
            	        	            	        thfUnitaryFormula(ctx, p);
9544
9545
6612
            	        	            	        FOLLOWPOP();
9546
6612
            	        	            	        if  (HASEXCEPTION())
9547
            	        	            	        {
9548
            	        	            	            goto rulethfLogicFormulaEx;
9549
            	        	            	        }
9550
9551
9552
            	        	            	        {
9553
9554
6612
            	        	            	                       p_args.push_back(p);
9555
6612
            	        	            	                       p = ParseOp();
9556
9557
            	        	            	        }
9558
9559
9560
            	        	            	    }
9561
6612
            	        	            	    break;
9562
            	        	            	case 2:
9563
            	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1148:12: LBRACK_TOK thfTupleForm[args] RBRACK_TOK
9564
            	        	            	    {
9565
            	        	            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfLogicFormula2864);
9566
            	        	            	        if  (HASEXCEPTION())
9567
            	        	            	        {
9568
            	        	            	            goto rulethfLogicFormulaEx;
9569
            	        	            	        }
9570
9571
9572
            	        	            	        {
9573
            	        	            	             UNSUPPORTED("Tuple terms");
9574
            	        	            	        }
9575
9576
9577
            	        	            	        FOLLOWPUSH(FOLLOW_thfTupleForm_in_thfLogicFormula2890);
9578
            	        	            	        thfTupleForm(ctx, args);
9579
9580
            	        	            	        FOLLOWPOP();
9581
            	        	            	        if  (HASEXCEPTION())
9582
            	        	            	        {
9583
            	        	            	            goto rulethfLogicFormulaEx;
9584
            	        	            	        }
9585
9586
9587
            	        	            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfLogicFormula2904);
9588
            	        	            	        if  (HASEXCEPTION())
9589
            	        	            	        {
9590
            	        	            	            goto rulethfLogicFormulaEx;
9591
            	        	            	        }
9592
9593
9594
            	        	            	    }
9595
            	        	            	    break;
9596
9597
            	        	                }
9598
            	        	            }
9599
9600
            	        	        }
9601
6612
            	        	        break;
9602
9603
3883
            	        	    default:
9604
9605
3883
            	        		if ( cnt56 >= 1 )
9606
            	        		{
9607
3883
            	        		    goto loop56;
9608
            	        		}
9609
            	        		/* mismatchedSetEx()
9610
            	        		 */
9611
            	        		CONSTRUCTEX();
9612
            	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9613
            	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9614
9615
9616
            	        		goto rulethfLogicFormulaEx;
9617
            	        	}
9618
6612
            	        	cnt56++;
9619
6612
            	            }
9620
3883
            	            loop56: ;	/* Jump to here if this rule does not match */
9621
            	        }
9622
9623
            	        {
9624
9625
3883
            	                    if (p_args[0].d_expr.isNull())
9626
            	                    {
9627
218
            	                      for (unsigned i = 1, size = p_args.size(); i < size; ++i)
9628
            	                      {
9629
143
            	                        if (p_args[i].d_expr.isNull())
9630
            	                        {
9631
            	                          PARSER_STATE->parseError(
9632
            	                              "Application chains with defined symbol heads and at least "
9633
            	                              "one defined symbol as argument are unsupported.");
9634
            	                        }
9635
143
            	                        args.push_back(p_args[i].d_expr);
9636
            	                      }
9637
75
            	                      p.d_expr = PARSER_STATE->applyParseOp(p_args[0], args);
9638
            	                    }
9639
            	                    else
9640
            	                    {
9641
3808
            	                      p.d_expr = p_args[0].d_expr;
9642
            	                      // check if any argument is a defined function, e.g. "~", and create a
9643
            	                      // lambda wrapper then, e.g. (\lambda x. ~ x)
9644
10277
            	                      for (unsigned i = 1, size = p_args.size(); i < size; ++i)
9645
            	                      {
9646
12937
            	                        if (!p_args[i].d_expr.isNull())
9647
            	                        {
9648
6468
            	                          args.push_back(p_args[i].d_expr);
9649
6468
            	                          continue;
9650
            	                        }
9651
            	                        // create a lambda wrapper, e.g. (\lambda x. ~ x).
9652
            	                        //
9653
            	                        // The type is determined by the first element of the application
9654
            	                        // chain, which must be a function of type t1...tn -> t, so the
9655
            	                        // lambda must have type ti
9656
3
            	                        args.push_back(PARSER_STATE->mkLambdaWrapper(
9657
1
            	                            p_args[i].d_kind,
9658
2
            	                            p.d_expr.getSort()
9659
2
            	                                .getFunctionDomainSorts()[i - 1]));
9660
            	                      }
9661
10277
            	                      for (unsigned i = 0, size = args.size(); i < size; ++i)
9662
            	                      {
9663
6469
            	                        p.d_expr = MK_TERM(api::HO_APPLY, p.d_expr, args[i]);
9664
            	                      }
9665
            	                    }
9666
9667
            	        }
9668
9669
9670
            	    }
9671
3883
            	    break;
9672
9673
                }
9674
            }
9675
9676
        }
9677
9678
    }
9679
9680
    // This is where rules clean up and exit
9681
    //
9682
9081
    goto rulethfLogicFormulaEx; /* Prevent compiler warnings */
9683
9081
    rulethfLogicFormulaEx: ;
9684
9685
9081
            if (HASEXCEPTION())
9686
            {
9687
                PREPORTERROR();
9688
                PRECOVER();
9689
            }
9690
18162
    return ;
9691
}
9692
/* $ANTLR end thfLogicFormula */
9693
9694
/**
9695
 * $ANTLR start thfTupleForm
9696
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1200:1: thfTupleForm[std::vector<cvc5::api::Term>& args] : thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+ ;
9697
 */
9698
static void
9699
thfTupleForm(pTptpParser ctx, std::vector<cvc5::api::Term>& args)
9700
{
9701
9702
      ParseOp p;
9703
9704
    /* Initialize rule variables
9705
     */
9706
9707
    {
9708
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1204:3: ( thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+ )
9709
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1204:5: thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+
9710
        {
9711
            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfTupleForm2957);
9712
            thfUnitaryFormula(ctx, p);
9713
9714
            FOLLOWPOP();
9715
            if  (HASEXCEPTION())
9716
            {
9717
                goto rulethfTupleFormEx;
9718
            }
9719
9720
9721
            {
9722
9723
                     if (p.d_expr.isNull())
9724
                     {
9725
                       PARSER_STATE->parseError("TUPLE element must be a formula");
9726
                     }
9727
                     args.push_back(p.d_expr);
9728
9729
            }
9730
9731
9732
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1212:4: ( COMMA_TOK thfUnitaryFormula[p] )+
9733
            {
9734
                int cnt58=0;
9735
9736
                for (;;)
9737
                {
9738
                    int alt58=2;
9739
            	switch ( LA(1) )
9740
            	{
9741
            	case COMMA_TOK:
9742
            		{
9743
            			alt58=1;
9744
            		}
9745
            	    break;
9746
9747
            	}
9748
9749
            	switch (alt58)
9750
            	{
9751
            	    case 1:
9752
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1212:6: COMMA_TOK thfUnitaryFormula[p]
9753
            	        {
9754
            	             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_thfTupleForm2970);
9755
            	            if  (HASEXCEPTION())
9756
            	            {
9757
            	                goto rulethfTupleFormEx;
9758
            	            }
9759
9760
9761
            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfTupleForm2972);
9762
            	            thfUnitaryFormula(ctx, p);
9763
9764
            	            FOLLOWPOP();
9765
            	            if  (HASEXCEPTION())
9766
            	            {
9767
            	                goto rulethfTupleFormEx;
9768
            	            }
9769
9770
9771
            	            {
9772
9773
            	                       if (p.d_expr.isNull())
9774
            	                       {
9775
            	                         PARSER_STATE->parseError("TUPLE element must be a formula");
9776
            	                       }
9777
            	                       args.push_back(p.d_expr);
9778
9779
            	            }
9780
9781
9782
            	        }
9783
            	        break;
9784
9785
            	    default:
9786
9787
            		if ( cnt58 >= 1 )
9788
            		{
9789
            		    goto loop58;
9790
            		}
9791
            		/* mismatchedSetEx()
9792
            		 */
9793
            		CONSTRUCTEX();
9794
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9795
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9796
9797
9798
            		goto rulethfTupleFormEx;
9799
            	}
9800
            	cnt58++;
9801
                }
9802
                loop58: ;	/* Jump to here if this rule does not match */
9803
            }
9804
9805
        }
9806
9807
    }
9808
9809
    // This is where rules clean up and exit
9810
    //
9811
    goto rulethfTupleFormEx; /* Prevent compiler warnings */
9812
    rulethfTupleFormEx: ;
9813
9814
            if (HASEXCEPTION())
9815
            {
9816
                PREPORTERROR();
9817
                PRECOVER();
9818
            }
9819
    return ;
9820
}
9821
/* $ANTLR end thfTupleForm */
9822
9823
/**
9824
 * $ANTLR start thfUnitaryFormula
9825
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1223:1: thfUnitaryFormula[cvc5::ParseOp& p] : ( variable[p.d_expr] | thfAtomicFormula[p] | LPAREN_TOK thfLogicFormula[p] RPAREN_TOK | NOT_TOK ( thfUnitaryFormula[p1] )? | thfQuantifier[p.d_kind] LBRACK_TOK thfBindVariable[expr] ( COMMA_TOK thfBindVariable[expr] )* RBRACK_TOK COLON_TOK thfUnitaryFormula[p1] );
9826
 */
9827
static void
9828
20325
thfUnitaryFormula(pTptpParser ctx, cvc5::ParseOp& p)
9829
{
9830
9831
      api::Kind kind;
9832
40650
      std::vector< cvc5::api::Term > bv;
9833
40650
      cvc5::api::Term expr;
9834
      bool equal;
9835
40650
      ParseOp p1;
9836
9837
    /* Initialize rule variables
9838
     */
9839
9840
    {
9841
        {
9842
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1231:3: ( variable[p.d_expr] | thfAtomicFormula[p] | LPAREN_TOK thfLogicFormula[p] RPAREN_TOK | NOT_TOK ( thfUnitaryFormula[p1] )? | thfQuantifier[p.d_kind] LBRACK_TOK thfBindVariable[expr] ( COMMA_TOK thfBindVariable[expr] )* RBRACK_TOK COLON_TOK thfUnitaryFormula[p1] )
9843
9844
            ANTLR3_UINT32 alt61;
9845
9846
20325
            alt61=5;
9847
9848
20325
            switch ( LA(1) )
9849
            {
9850
5732
            case UPPER_WORD:
9851
            	{
9852
5732
            		alt61=1;
9853
            	}
9854
5732
                break;
9855
5001
            case CNF_TOK:
9856
            case DISTINCT_OBJECT:
9857
            case FALSE_TOK:
9858
            case FOF_TOK:
9859
            case INCLUDE_TOK:
9860
            case LOWER_WORD:
9861
            case LOWER_WORD_SINGLE_QUOTED:
9862
            case NUMBER:
9863
            case SINGLE_QUOTED:
9864
            case TFF_TOK:
9865
            case THF_TOK:
9866
            case TRUE_TOK:
9867
            case TYPE_TOK:
9868
            case 63:
9869
            case 64:
9870
            case 65:
9871
            case 66:
9872
            case 67:
9873
            case 68:
9874
            case 69:
9875
            case 70:
9876
            case 72:
9877
            case 73:
9878
            case 74:
9879
            case 76:
9880
            case 78:
9881
            case 79:
9882
            case 80:
9883
            case 81:
9884
            case 82:
9885
            case 83:
9886
            case 84:
9887
            case 85:
9888
            case 86:
9889
            case 87:
9890
            case 88:
9891
            case 90:
9892
            case 91:
9893
            case 92:
9894
            case 93:
9895
            case 94:
9896
            	{
9897
5001
            		alt61=2;
9898
            	}
9899
5001
                break;
9900
8139
            case LPAREN_TOK:
9901
            	{
9902
8139
            		switch ( LA(2) )
9903
            		{
9904
68
            		case AND_TOK:
9905
            		case IMPLIES_TOK:
9906
            		case OR_TOK:
9907
            			{
9908
68
            				alt61=2;
9909
            			}
9910
68
            		    break;
9911
8071
            		case CHOICE_TOK:
9912
            		case CNF_TOK:
9913
            		case DEF_DESC_TOK:
9914
            		case DISTINCT_OBJECT:
9915
            		case EXISTS_TOK:
9916
            		case FALSE_TOK:
9917
            		case FOF_TOK:
9918
            		case FORALL_TOK:
9919
            		case INCLUDE_TOK:
9920
            		case LAMBDA_TOK:
9921
            		case LOWER_WORD:
9922
            		case LOWER_WORD_SINGLE_QUOTED:
9923
            		case LPAREN_TOK:
9924
            		case NOT_TOK:
9925
            		case NUMBER:
9926
            		case SINGLE_QUOTED:
9927
            		case TFF_TOK:
9928
            		case TH1_UN_A:
9929
            		case TH1_UN_E:
9930
            		case THF_TOK:
9931
            		case TRUE_TOK:
9932
            		case TYPE_TOK:
9933
            		case UPPER_WORD:
9934
            		case 63:
9935
            		case 64:
9936
            		case 65:
9937
            		case 66:
9938
            		case 67:
9939
            		case 68:
9940
            		case 69:
9941
            		case 70:
9942
            		case 72:
9943
            		case 73:
9944
            		case 74:
9945
            		case 76:
9946
            		case 78:
9947
            		case 79:
9948
            		case 80:
9949
            		case 81:
9950
            		case 82:
9951
            		case 83:
9952
            		case 84:
9953
            		case 85:
9954
            		case 86:
9955
            		case 87:
9956
            		case 88:
9957
            		case 90:
9958
            		case 91:
9959
            		case 92:
9960
            		case 93:
9961
            		case 94:
9962
            			{
9963
8071
            				alt61=3;
9964
            			}
9965
8071
            		    break;
9966
9967
            		default:
9968
            		    CONSTRUCTEX();
9969
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9970
            		    EXCEPTION->message      = (void *)"";
9971
            		    EXCEPTION->decisionNum  = 61;
9972
            		    EXCEPTION->state        = 41;
9973
9974
9975
            		    goto rulethfUnitaryFormulaEx;
9976
9977
            		}
9978
9979
            	}
9980
8139
                break;
9981
173
            case NOT_TOK:
9982
            	{
9983
173
            		alt61=4;
9984
            	}
9985
173
                break;
9986
1280
            case CHOICE_TOK:
9987
            case DEF_DESC_TOK:
9988
            case EXISTS_TOK:
9989
            case FORALL_TOK:
9990
            case LAMBDA_TOK:
9991
            case TH1_UN_A:
9992
            case TH1_UN_E:
9993
            	{
9994
1280
            		alt61=5;
9995
            	}
9996
1280
                break;
9997
9998
            default:
9999
                CONSTRUCTEX();
10000
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10001
                EXCEPTION->message      = (void *)"";
10002
                EXCEPTION->decisionNum  = 61;
10003
                EXCEPTION->state        = 0;
10004
10005
10006
                goto rulethfUnitaryFormulaEx;
10007
10008
            }
10009
10010
20325
            switch (alt61)
10011
            {
10012
5732
        	case 1:
10013
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1231:5: variable[p.d_expr]
10014
        	    {
10015
5732
        	        FOLLOWPUSH(FOLLOW_variable_in_thfUnitaryFormula3003);
10016
5732
        	        variable(ctx, p.d_expr);
10017
10018
5732
        	        FOLLOWPOP();
10019
5732
        	        if  (HASEXCEPTION())
10020
        	        {
10021
        	            goto rulethfUnitaryFormulaEx;
10022
        	        }
10023
10024
10025
        	    }
10026
5732
        	    break;
10027
5069
        	case 2:
10028
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1232:5: thfAtomicFormula[p]
10029
        	    {
10030
5069
        	        FOLLOWPUSH(FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010);
10031
5069
        	        thfAtomicFormula(ctx, p);
10032
10033
5069
        	        FOLLOWPOP();
10034
5069
        	        if  (HASEXCEPTION())
10035
        	        {
10036
        	            goto rulethfUnitaryFormulaEx;
10037
        	        }
10038
10039
10040
        	    }
10041
5069
        	    break;
10042
8071
        	case 3:
10043
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1233:5: LPAREN_TOK thfLogicFormula[p] RPAREN_TOK
10044
        	    {
10045
8071
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017);
10046
8071
        	        if  (HASEXCEPTION())
10047
        	        {
10048
        	            goto rulethfUnitaryFormulaEx;
10049
        	        }
10050
10051
10052
8071
        	        FOLLOWPUSH(FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023);
10053
8071
        	        thfLogicFormula(ctx, p);
10054
10055
8071
        	        FOLLOWPOP();
10056
8071
        	        if  (HASEXCEPTION())
10057
        	        {
10058
        	            goto rulethfUnitaryFormulaEx;
10059
        	        }
10060
10061
10062
8071
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030);
10063
8071
        	        if  (HASEXCEPTION())
10064
        	        {
10065
        	            goto rulethfUnitaryFormulaEx;
10066
        	        }
10067
10068
10069
        	    }
10070
8071
        	    break;
10071
173
        	case 4:
10072
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1236:5: NOT_TOK ( thfUnitaryFormula[p1] )?
10073
        	    {
10074
173
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_thfUnitaryFormula3036);
10075
173
        	        if  (HASEXCEPTION())
10076
        	        {
10077
        	            goto rulethfUnitaryFormulaEx;
10078
        	        }
10079
10080
10081
        	        {
10082
10083
173
        	                  p.d_kind = api::NOT;
10084
10085
        	        }
10086
10087
10088
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1240:5: ( thfUnitaryFormula[p1] )?
10089
        	        {
10090
173
        	            int alt59=2;
10091
173
        	            switch ( LA(1) )
10092
        	            {
10093
165
        	                case CHOICE_TOK:
10094
        	                case CNF_TOK:
10095
        	                case DEF_DESC_TOK:
10096
        	                case DISTINCT_OBJECT:
10097
        	                case EXISTS_TOK:
10098
        	                case FALSE_TOK:
10099
        	                case FOF_TOK:
10100
        	                case FORALL_TOK:
10101
        	                case INCLUDE_TOK:
10102
        	                case LAMBDA_TOK:
10103
        	                case LOWER_WORD:
10104
        	                case LOWER_WORD_SINGLE_QUOTED:
10105
        	                case LPAREN_TOK:
10106
        	                case NOT_TOK:
10107
        	                case NUMBER:
10108
        	                case SINGLE_QUOTED:
10109
        	                case TFF_TOK:
10110
        	                case TH1_UN_A:
10111
        	                case TH1_UN_E:
10112
        	                case THF_TOK:
10113
        	                case TRUE_TOK:
10114
        	                case TYPE_TOK:
10115
        	                case UPPER_WORD:
10116
        	                case 63:
10117
        	                case 64:
10118
        	                case 65:
10119
        	                case 66:
10120
        	                case 67:
10121
        	                case 68:
10122
        	                case 69:
10123
        	                case 70:
10124
        	                case 72:
10125
        	                case 73:
10126
        	                case 74:
10127
        	                case 76:
10128
        	                case 78:
10129
        	                case 79:
10130
        	                case 80:
10131
        	                case 81:
10132
        	                case 82:
10133
        	                case 83:
10134
        	                case 84:
10135
        	                case 85:
10136
        	                case 86:
10137
        	                case 87:
10138
        	                case 88:
10139
        	                case 90:
10140
        	                case 91:
10141
        	                case 92:
10142
        	                case 93:
10143
        	                case 94:
10144
        	                	{
10145
165
        	                		alt59=1;
10146
        	                	}
10147
165
        	                    break;
10148
        	            }
10149
10150
173
        	            switch (alt59)
10151
        	            {
10152
165
        	        	case 1:
10153
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1241:6: thfUnitaryFormula[p1]
10154
        	        	    {
10155
165
        	        	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055);
10156
165
        	        	        thfUnitaryFormula(ctx, p1);
10157
10158
165
        	        	        FOLLOWPOP();
10159
165
        	        	        if  (HASEXCEPTION())
10160
        	        	        {
10161
        	        	            goto rulethfUnitaryFormulaEx;
10162
        	        	        }
10163
10164
10165
        	        	        {
10166
10167
165
        	        	                   if (p1.d_expr.isNull())
10168
        	        	                   {
10169
        	        	                     PARSER_STATE->parseError("NOT must be applied to a formula");
10170
        	        	                   }
10171
330
        	        	                   std::vector<api::Term> args{p1.d_expr};
10172
165
        	        	                   p.d_expr = PARSER_STATE->applyParseOp(p, args);
10173
10174
165
        	        	        }
10175
10176
10177
        	        	    }
10178
165
        	        	    break;
10179
10180
        	            }
10181
        	        }
10182
10183
        	    }
10184
173
        	    break;
10185
1280
        	case 5:
10186
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1252:5: thfQuantifier[p.d_kind] LBRACK_TOK thfBindVariable[expr] ( COMMA_TOK thfBindVariable[expr] )* RBRACK_TOK COLON_TOK thfUnitaryFormula[p1]
10187
        	    {
10188
1280
        	        FOLLOWPUSH(FOLLOW_thfQuantifier_in_thfUnitaryFormula3081);
10189
1280
        	        thfQuantifier(ctx, p.d_kind);
10190
10191
1280
        	        FOLLOWPOP();
10192
1280
        	        if  (HASEXCEPTION())
10193
        	        {
10194
        	            goto rulethfUnitaryFormulaEx;
10195
        	        }
10196
10197
10198
1280
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088);
10199
1280
        	        if  (HASEXCEPTION())
10200
        	        {
10201
        	            goto rulethfUnitaryFormulaEx;
10202
        	        }
10203
10204
10205
        	        {
10206
1280
        	            PARSER_STATE->pushScope();
10207
        	        }
10208
10209
10210
1280
        	        FOLLOWPUSH(FOLLOW_thfBindVariable_in_thfUnitaryFormula3096);
10211
1280
        	        thfBindVariable(ctx, expr);
10212
10213
1280
        	        FOLLOWPOP();
10214
1280
        	        if  (HASEXCEPTION())
10215
        	        {
10216
        	            goto rulethfUnitaryFormulaEx;
10217
        	        }
10218
10219
10220
        	        {
10221
10222
1280
        	                  bv.push_back(expr);
10223
10224
        	        }
10225
10226
10227
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1258:5: ( COMMA_TOK thfBindVariable[expr] )*
10228
10229
        	        for (;;)
10230
        	        {
10231
2582
        	            int alt60=2;
10232
2582
        	            switch ( LA(1) )
10233
        	            {
10234
1302
        	            case COMMA_TOK:
10235
        	            	{
10236
1302
        	            		alt60=1;
10237
        	            	}
10238
1302
        	                break;
10239
10240
        	            }
10241
10242
2582
        	            switch (alt60)
10243
        	            {
10244
1302
        	        	case 1:
10245
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1258:7: COMMA_TOK thfBindVariable[expr]
10246
        	        	    {
10247
1302
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111);
10248
1302
        	        	        if  (HASEXCEPTION())
10249
        	        	        {
10250
        	        	            goto rulethfUnitaryFormulaEx;
10251
        	        	        }
10252
10253
10254
1302
        	        	        FOLLOWPUSH(FOLLOW_thfBindVariable_in_thfUnitaryFormula3113);
10255
1302
        	        	        thfBindVariable(ctx, expr);
10256
10257
1302
        	        	        FOLLOWPOP();
10258
1302
        	        	        if  (HASEXCEPTION())
10259
        	        	        {
10260
        	        	            goto rulethfUnitaryFormulaEx;
10261
        	        	        }
10262
10263
10264
        	        	        {
10265
10266
1302
        	        	                    bv.push_back(expr);
10267
10268
        	        	        }
10269
10270
10271
        	        	    }
10272
1302
        	        	    break;
10273
10274
1280
        	        	default:
10275
1280
        	        	    goto loop60;	/* break out of the loop */
10276
        	        	    break;
10277
        	            }
10278
1302
        	        }
10279
1280
        	        loop60: ; /* Jump out to here if this rule does not match */
10280
10281
10282
1280
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135);
10283
1280
        	        if  (HASEXCEPTION())
10284
        	        {
10285
        	            goto rulethfUnitaryFormulaEx;
10286
        	        }
10287
10288
10289
1280
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfUnitaryFormula3137);
10290
1280
        	        if  (HASEXCEPTION())
10291
        	        {
10292
        	            goto rulethfUnitaryFormulaEx;
10293
        	        }
10294
10295
10296
1280
        	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143);
10297
1280
        	        thfUnitaryFormula(ctx, p1);
10298
10299
1280
        	        FOLLOWPOP();
10300
1280
        	        if  (HASEXCEPTION())
10301
        	        {
10302
        	            goto rulethfUnitaryFormulaEx;
10303
        	        }
10304
10305
10306
        	        {
10307
10308
1280
        	                  if (p1.d_expr.isNull())
10309
        	                  {
10310
        	                    PARSER_STATE->parseError("In scope of binder there must be a formula.");
10311
        	                  }
10312
1280
        	                  expr = p1.d_expr;
10313
1280
        	                  PARSER_STATE->popScope();
10314
        	                  // handle lambda case, in which case return type must be flattened and the
10315
        	                  // auxiliary variables introduced in the proccess must be added no the
10316
        	                  // variable list
10317
        	                  //
10318
        	                  // see documentation of mkFlatFunctionType for how it's done
10319
        	                  //
10320
        	                  // flatten body via flattening its type
10321
2560
        	                  std::vector<api::Sort> sorts;
10322
2560
        	                  std::vector<api::Term> flattenVars;
10323
1280
        	                  PARSER_STATE->mkFlatFunctionType(sorts, expr.getSort(), flattenVars);
10324
1280
        	                  if (!flattenVars.empty())
10325
        	                  {
10326
        	                    // apply body of lambda to flatten vars
10327
5
        	                    expr = PARSER_STATE->mkHoApply(expr, flattenVars);
10328
        	                    // add variables to BOUND_VAR_LIST
10329
5
        	                    bv.insert(bv.end(), flattenVars.begin(), flattenVars.end());
10330
        	                  }
10331
1280
        	                  p.d_expr = MK_TERM(p.d_kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
10332
10333
1280
        	        }
10334
10335
10336
        	    }
10337
1280
        	    break;
10338
10339
            }
10340
        }
10341
    }
10342
10343
    // This is where rules clean up and exit
10344
    //
10345
20325
    goto rulethfUnitaryFormulaEx; /* Prevent compiler warnings */
10346
20325
    rulethfUnitaryFormulaEx: ;
10347
10348
20325
            if (HASEXCEPTION())
10349
            {
10350
                PREPORTERROR();
10351
                PRECOVER();
10352
            }
10353
40650
    return ;
10354
}
10355
/* $ANTLR end thfUnitaryFormula */
10356
10357
/**
10358
 * $ANTLR start tffFormula
10359
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1295:1: tffFormula[cvc5::api::Term& expr] : tffLogicFormula[expr] ;
10360
 */
10361
static void
10362
142
tffFormula(pTptpParser ctx, cvc5::api::Term& expr)
10363
{
10364
    /* Initialize rule variables
10365
     */
10366
10367
    {
10368
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1295:35: ( tffLogicFormula[expr] )
10369
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1295:37: tffLogicFormula[expr]
10370
        {
10371
142
            FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffFormula3166);
10372
142
            tffLogicFormula(ctx, expr);
10373
10374
142
            FOLLOWPOP();
10375
142
            if  (HASEXCEPTION())
10376
            {
10377
                goto ruletffFormulaEx;
10378
            }
10379
10380
10381
        }
10382
10383
    }
10384
10385
    // This is where rules clean up and exit
10386
    //
10387
142
    goto ruletffFormulaEx; /* Prevent compiler warnings */
10388
142
    ruletffFormulaEx: ;
10389
10390
142
            if (HASEXCEPTION())
10391
            {
10392
                PREPORTERROR();
10393
                PRECOVER();
10394
            }
10395
142
    return ;
10396
}
10397
/* $ANTLR end tffFormula */
10398
10399
/**
10400
 * $ANTLR start tffTypedAtom
10401
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1297:1: tffTypedAtom[cvc5::Command*& cmd] : ( LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseType[type] ) );
10402
 */
10403
static void
10404
138
tffTypedAtom(pTptpParser ctx, cvc5::Command*& cmd)
10405
{
10406
10407
276
      cvc5::api::Term expr;
10408
276
      cvc5::api::Sort type;
10409
276
      std::string name;
10410
10411
    /* Initialize rule variables
10412
     */
10413
10414
    {
10415
        {
10416
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1303:3: ( LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseType[type] ) )
10417
10418
            ANTLR3_UINT32 alt63;
10419
10420
138
            alt63=2;
10421
10422
138
            switch ( LA(1) )
10423
            {
10424
69
            case LPAREN_TOK:
10425
            	{
10426
69
            		alt63=1;
10427
            	}
10428
69
                break;
10429
69
            case CNF_TOK:
10430
            case FOF_TOK:
10431
            case INCLUDE_TOK:
10432
            case LOWER_WORD:
10433
            case LOWER_WORD_SINGLE_QUOTED:
10434
            case NUMBER:
10435
            case SINGLE_QUOTED:
10436
            case TFF_TOK:
10437
            case THF_TOK:
10438
            case TYPE_TOK:
10439
            	{
10440
69
            		alt63=2;
10441
            	}
10442
69
                break;
10443
10444
            default:
10445
                CONSTRUCTEX();
10446
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10447
                EXCEPTION->message      = (void *)"";
10448
                EXCEPTION->decisionNum  = 63;
10449
                EXCEPTION->state        = 0;
10450
10451
10452
                goto ruletffTypedAtomEx;
10453
10454
            }
10455
10456
138
            switch (alt63)
10457
            {
10458
69
        	case 1:
10459
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1303:5: LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK
10460
        	    {
10461
69
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffTypedAtom3183);
10462
69
        	        if  (HASEXCEPTION())
10463
        	        {
10464
        	            goto ruletffTypedAtomEx;
10465
        	        }
10466
10467
10468
69
        	        FOLLOWPUSH(FOLLOW_tffTypedAtom_in_tffTypedAtom3185);
10469
69
        	        tffTypedAtom(ctx, cmd);
10470
10471
69
        	        FOLLOWPOP();
10472
69
        	        if  (HASEXCEPTION())
10473
        	        {
10474
        	            goto ruletffTypedAtomEx;
10475
        	        }
10476
10477
10478
69
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffTypedAtom3188);
10479
69
        	        if  (HASEXCEPTION())
10480
        	        {
10481
        	            goto ruletffTypedAtomEx;
10482
        	        }
10483
10484
10485
        	    }
10486
69
        	    break;
10487
69
        	case 2:
10488
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1304:5: nameN[name] COLON_TOK ( '$tType' | parseType[type] )
10489
        	    {
10490
69
        	        FOLLOWPUSH(FOLLOW_nameN_in_tffTypedAtom3194);
10491
69
        	        nameN(ctx, name);
10492
10493
69
        	        FOLLOWPOP();
10494
69
        	        if  (HASEXCEPTION())
10495
        	        {
10496
        	            goto ruletffTypedAtomEx;
10497
        	        }
10498
10499
10500
69
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffTypedAtom3197);
10501
69
        	        if  (HASEXCEPTION())
10502
        	        {
10503
        	            goto ruletffTypedAtomEx;
10504
        	        }
10505
10506
10507
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1305:5: ( '$tType' | parseType[type] )
10508
        	        {
10509
69
        	            int alt62=2;
10510
69
        	            switch ( LA(1) )
10511
        	            {
10512
9
        	            case 89:
10513
        	            	{
10514
9
        	            		alt62=1;
10515
        	            	}
10516
9
        	                break;
10517
60
        	            case CNF_TOK:
10518
        	            case DEFINED_SYMBOL:
10519
        	            case FOF_TOK:
10520
        	            case INCLUDE_TOK:
10521
        	            case LOWER_WORD:
10522
        	            case LOWER_WORD_SINGLE_QUOTED:
10523
        	            case LPAREN_TOK:
10524
        	            case SINGLE_QUOTED:
10525
        	            case TFF_TOK:
10526
        	            case THF_TOK:
10527
        	            case TYPE_TOK:
10528
        	            	{
10529
60
        	            		alt62=2;
10530
        	            	}
10531
60
        	                break;
10532
10533
        	            default:
10534
        	                CONSTRUCTEX();
10535
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10536
        	                EXCEPTION->message      = (void *)"";
10537
        	                EXCEPTION->decisionNum  = 62;
10538
        	                EXCEPTION->state        = 0;
10539
10540
10541
        	                goto ruletffTypedAtomEx;
10542
10543
        	            }
10544
10545
69
        	            switch (alt62)
10546
        	            {
10547
9
        	        	case 1:
10548
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1305:7: '$tType'
10549
        	        	    {
10550
9
        	        	         MATCHT(89, &FOLLOW_89_in_tffTypedAtom3205);
10551
9
        	        	        if  (HASEXCEPTION())
10552
        	        	        {
10553
        	        	            goto ruletffTypedAtomEx;
10554
        	        	        }
10555
10556
10557
        	        	        {
10558
9
        	        	             if(PARSER_STATE->isDeclared(name, SYM_SORT)) {
10559
        	        	                      // duplicate declaration is fine, they're compatible
10560
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
10561
9
        	        	                    } else if(PARSER_STATE->isDeclared(name, SYM_VARIABLE)) {
10562
        	        	                      // error: cannot be both sort and constant
10563
        	        	                      PARSER_STATE->parseError("Symbol `" + name + "' previously declared as a constant; cannot also be a sort");
10564
        	        	                    } else {
10565
        	        	                      // as yet, it's undeclared
10566
18
        	        	                      api::Sort atype = PARSER_STATE->mkSort(name);
10567
9
        	        	                      cmd = new DeclareSortCommand(name, 0, atype);
10568
        	        	                    }
10569
10570
        	        	        }
10571
10572
10573
        	        	    }
10574
9
        	        	    break;
10575
60
        	        	case 2:
10576
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1318:7: parseType[type]
10577
        	        	    {
10578
60
        	        	        FOLLOWPUSH(FOLLOW_parseType_in_tffTypedAtom3221);
10579
60
        	        	        parseType(ctx, type);
10580
10581
60
        	        	        FOLLOWPOP();
10582
60
        	        	        if  (HASEXCEPTION())
10583
        	        	        {
10584
        	        	            goto ruletffTypedAtomEx;
10585
        	        	        }
10586
10587
10588
        	        	        {
10589
60
        	        	             if(PARSER_STATE->isDeclared(name, SYM_SORT)) {
10590
        	        	                      // error: cannot be both sort and constant
10591
        	        	                      PARSER_STATE->parseError("Symbol `" + name + "' previously declared as a sort");
10592
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
10593
60
        	        	                    } else if(PARSER_STATE->isDeclared(name, SYM_VARIABLE)) {
10594
        	        	                      if(type == PARSER_STATE->getVariable(name).getSort()) {
10595
        	        	                        // duplicate declaration is fine, they're compatible
10596
        	        	                        cmd = new EmptyCommand("compatible redeclaration of constant " + name);
10597
        	        	                      } else {
10598
        	        	                        // error: sorts incompatible
10599
        	        	                        PARSER_STATE->parseError("Symbol `" + name + "' declared previously with a different sort");
10600
        	        	                      }
10601
        	        	                    } else {
10602
        	        	                      // as yet, it's undeclared
10603
120
        	        	                      cvc5::api::Term aexpr = PARSER_STATE->bindVar(name, type);
10604
60
        	        	                      cmd = new DeclareFunctionCommand(name, aexpr, type);
10605
        	        	                    }
10606
10607
        	        	        }
10608
10609
10610
        	        	    }
10611
60
        	        	    break;
10612
10613
        	            }
10614
        	        }
10615
10616
        	    }
10617
69
        	    break;
10618
10619
            }
10620
        }
10621
    }
10622
10623
    // This is where rules clean up and exit
10624
    //
10625
138
    goto ruletffTypedAtomEx; /* Prevent compiler warnings */
10626
138
    ruletffTypedAtomEx: ;
10627
10628
138
            if (HASEXCEPTION())
10629
            {
10630
                PREPORTERROR();
10631
                PRECOVER();
10632
            }
10633
276
    return ;
10634
}
10635
/* $ANTLR end tffTypedAtom */
10636
10637
/**
10638
 * $ANTLR start tffLogicFormula
10639
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1340:1: tffLogicFormula[cvc5::api::Term& expr] : tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )? ;
10640
 */
10641
static void
10642
320
tffLogicFormula(pTptpParser ctx, cvc5::api::Term& expr)
10643
{
10644
10645
      tptp::NonAssoc na;
10646
640
      std::vector< cvc5::api::Term > args;
10647
640
      cvc5::api::Term expr2;
10648
10649
    /* Initialize rule variables
10650
     */
10651
10652
    {
10653
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1346:3: ( tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )? )
10654
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1346:5: tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )?
10655
        {
10656
320
            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255);
10657
320
            tffUnitaryFormula(ctx, expr);
10658
10659
320
            FOLLOWPOP();
10660
320
            if  (HASEXCEPTION())
10661
            {
10662
                goto ruletffLogicFormulaEx;
10663
            }
10664
10665
10666
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1347:5: ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )?
10667
            {
10668
320
                int alt66=4;
10669
320
                switch ( LA(1) )
10670
                {
10671
18
                    case IFF_TOK:
10672
                    case IMPLIES_TOK:
10673
                    case REVAND_TOK:
10674
                    case REVIFF_TOK:
10675
                    case REVIMPLIES_TOK:
10676
                    case REVOR_TOK:
10677
                    	{
10678
18
                    		alt66=1;
10679
                    	}
10680
18
                        break;
10681
7
                    case AND_TOK:
10682
                    	{
10683
7
                    		alt66=2;
10684
                    	}
10685
7
                        break;
10686
10
                    case OR_TOK:
10687
                    	{
10688
10
                    		alt66=3;
10689
                    	}
10690
10
                        break;
10691
                }
10692
10693
320
                switch (alt66)
10694
                {
10695
18
            	case 1:
10696
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1348:7: ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] )
10697
            	    {
10698
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1348:7: ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] )
10699
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1348:9: fofBinaryNonAssoc[na] tffUnitaryFormula[expr2]
10700
            	        {
10701
18
            	            FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273);
10702
18
            	            fofBinaryNonAssoc(ctx, na);
10703
10704
18
            	            FOLLOWPOP();
10705
18
            	            if  (HASEXCEPTION())
10706
            	            {
10707
            	                goto ruletffLogicFormulaEx;
10708
            	            }
10709
10710
10711
18
            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276);
10712
18
            	            tffUnitaryFormula(ctx, expr2);
10713
10714
18
            	            FOLLOWPOP();
10715
18
            	            if  (HASEXCEPTION())
10716
            	            {
10717
            	                goto ruletffLogicFormulaEx;
10718
            	            }
10719
10720
10721
            	            {
10722
18
            	                 switch(na) {
10723
1
            	                           case tptp::NA_IFF:
10724
1
            	                             expr = MK_TERM(api::EQUAL,expr,expr2);
10725
1
            	                             break;
10726
1
            	                           case tptp::NA_REVIFF:
10727
1
            	                             expr = MK_TERM(api::XOR,expr,expr2);
10728
1
            	                             break;
10729
13
            	                           case tptp::NA_IMPLIES:
10730
13
            	                             expr = MK_TERM(api::IMPLIES,expr,expr2);
10731
13
            	                             break;
10732
1
            	                           case tptp::NA_REVIMPLIES:
10733
1
            	                             expr = MK_TERM(api::IMPLIES,expr2,expr);
10734
1
            	                             break;
10735
1
            	                           case tptp::NA_REVOR:
10736
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::OR,expr,expr2));
10737
1
            	                             break;
10738
1
            	                           case tptp::NA_REVAND:
10739
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::AND,expr,expr2));
10740
1
            	                             break;
10741
            	                          }
10742
10743
            	            }
10744
10745
10746
            	        }
10747
10748
10749
            	    }
10750
18
            	    break;
10751
7
            	case 2:
10752
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1372:7: ( ( AND_TOK tffUnitaryFormula[expr] )+ )
10753
            	    {
10754
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1372:7: ( ( AND_TOK tffUnitaryFormula[expr] )+ )
10755
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1372:9: ( AND_TOK tffUnitaryFormula[expr] )+
10756
            	        {
10757
            	            {
10758
7
            	                 args.push_back(expr);
10759
            	            }
10760
10761
10762
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1373:9: ( AND_TOK tffUnitaryFormula[expr] )+
10763
            	            {
10764
7
            	                int cnt64=0;
10765
10766
            	                for (;;)
10767
            	                {
10768
15
            	                    int alt64=2;
10769
15
            	            	switch ( LA(1) )
10770
            	            	{
10771
8
            	            	case AND_TOK:
10772
            	            		{
10773
8
            	            			alt64=1;
10774
            	            		}
10775
8
            	            	    break;
10776
10777
            	            	}
10778
10779
15
            	            	switch (alt64)
10780
            	            	{
10781
8
            	            	    case 1:
10782
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1373:11: AND_TOK tffUnitaryFormula[expr]
10783
            	            	        {
10784
8
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_tffLogicFormula3324);
10785
8
            	            	            if  (HASEXCEPTION())
10786
            	            	            {
10787
            	            	                goto ruletffLogicFormulaEx;
10788
            	            	            }
10789
10790
10791
8
            	            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326);
10792
8
            	            	            tffUnitaryFormula(ctx, expr);
10793
10794
8
            	            	            FOLLOWPOP();
10795
8
            	            	            if  (HASEXCEPTION())
10796
            	            	            {
10797
            	            	                goto ruletffLogicFormulaEx;
10798
            	            	            }
10799
10800
10801
            	            	            {
10802
8
            	            	                 args.push_back(expr);
10803
            	            	            }
10804
10805
10806
            	            	        }
10807
8
            	            	        break;
10808
10809
7
            	            	    default:
10810
10811
7
            	            		if ( cnt64 >= 1 )
10812
            	            		{
10813
7
            	            		    goto loop64;
10814
            	            		}
10815
            	            		/* mismatchedSetEx()
10816
            	            		 */
10817
            	            		CONSTRUCTEX();
10818
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
10819
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
10820
10821
10822
            	            		goto ruletffLogicFormulaEx;
10823
            	            	}
10824
8
            	            	cnt64++;
10825
8
            	                }
10826
7
            	                loop64: ;	/* Jump to here if this rule does not match */
10827
            	            }
10828
10829
            	            {
10830
7
            	                 expr = MK_TERM(api::AND,args);
10831
            	            }
10832
10833
10834
            	        }
10835
10836
10837
            	    }
10838
7
            	    break;
10839
10
            	case 3:
10840
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1377:7: ( ( OR_TOK tffUnitaryFormula[expr] )+ )
10841
            	    {
10842
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1377:7: ( ( OR_TOK tffUnitaryFormula[expr] )+ )
10843
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1377:9: ( OR_TOK tffUnitaryFormula[expr] )+
10844
            	        {
10845
            	            {
10846
10
            	                 args.push_back(expr);
10847
            	            }
10848
10849
10850
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1378:9: ( OR_TOK tffUnitaryFormula[expr] )+
10851
            	            {
10852
10
            	                int cnt65=0;
10853
10854
            	                for (;;)
10855
            	                {
10856
30
            	                    int alt65=2;
10857
30
            	            	switch ( LA(1) )
10858
            	            	{
10859
20
            	            	case OR_TOK:
10860
            	            		{
10861
20
            	            			alt65=1;
10862
            	            		}
10863
20
            	            	    break;
10864
10865
            	            	}
10866
10867
30
            	            	switch (alt65)
10868
            	            	{
10869
20
            	            	    case 1:
10870
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1378:11: OR_TOK tffUnitaryFormula[expr]
10871
            	            	        {
10872
20
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_tffLogicFormula3379);
10873
20
            	            	            if  (HASEXCEPTION())
10874
            	            	            {
10875
            	            	                goto ruletffLogicFormulaEx;
10876
            	            	            }
10877
10878
10879
20
            	            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381);
10880
20
            	            	            tffUnitaryFormula(ctx, expr);
10881
10882
20
            	            	            FOLLOWPOP();
10883
20
            	            	            if  (HASEXCEPTION())
10884
            	            	            {
10885
            	            	                goto ruletffLogicFormulaEx;
10886
            	            	            }
10887
10888
10889
            	            	            {
10890
20
            	            	                 args.push_back(expr);
10891
            	            	            }
10892
10893
10894
            	            	        }
10895
20
            	            	        break;
10896
10897
10
            	            	    default:
10898
10899
10
            	            		if ( cnt65 >= 1 )
10900
            	            		{
10901
10
            	            		    goto loop65;
10902
            	            		}
10903
            	            		/* mismatchedSetEx()
10904
            	            		 */
10905
            	            		CONSTRUCTEX();
10906
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
10907
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
10908
10909
10910
            	            		goto ruletffLogicFormulaEx;
10911
            	            	}
10912
20
            	            	cnt65++;
10913
20
            	                }
10914
10
            	                loop65: ;	/* Jump to here if this rule does not match */
10915
            	            }
10916
10917
            	            {
10918
10
            	                 expr = MK_TERM(api::OR,args);
10919
            	            }
10920
10921
10922
            	        }
10923
10924
10925
            	    }
10926
10
            	    break;
10927
10928
                }
10929
            }
10930
10931
        }
10932
10933
    }
10934
10935
    // This is where rules clean up and exit
10936
    //
10937
320
    goto ruletffLogicFormulaEx; /* Prevent compiler warnings */
10938
320
    ruletffLogicFormulaEx: ;
10939
10940
320
            if (HASEXCEPTION())
10941
            {
10942
                PREPORTERROR();
10943
                PRECOVER();
10944
            }
10945
640
    return ;
10946
}
10947
/* $ANTLR end tffLogicFormula */
10948
10949
/**
10950
 * $ANTLR start tffUnitaryFormula
10951
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1384:1: tffUnitaryFormula[cvc5::api::Term& expr] : ( atomicFormula[expr] | LPAREN_TOK tffLogicFormula[expr] RPAREN_TOK | NOT_TOK tffUnitaryFormula[expr] | folQuantifier[kind] LBRACK_TOK ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* ) RBRACK_TOK COLON_TOK tffUnitaryFormula[expr] | '$ite_f' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK tffLogicFormula[lhs] COMMA_TOK tffLogicFormula[rhs] RPAREN_TOK | '$let_tf' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK | '$let_ff' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK );
10952
 */
10953
static void
10954
442
tffUnitaryFormula(pTptpParser ctx, cvc5::api::Term& expr)
10955
{
10956
10957
      api::Kind kind;
10958
884
      std::vector< cvc5::api::Term > bv;
10959
884
      cvc5::api::Term lhs, rhs;
10960
10961
    /* Initialize rule variables
10962
     */
10963
10964
    {
10965
        {
10966
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1390:3: ( atomicFormula[expr] | LPAREN_TOK tffLogicFormula[expr] RPAREN_TOK | NOT_TOK tffUnitaryFormula[expr] | folQuantifier[kind] LBRACK_TOK ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* ) RBRACK_TOK COLON_TOK tffUnitaryFormula[expr] | '$ite_f' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK tffLogicFormula[lhs] COMMA_TOK tffLogicFormula[rhs] RPAREN_TOK | '$let_tf' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK | '$let_ff' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK )
10967
10968
            ANTLR3_UINT32 alt68;
10969
10970
442
            alt68=7;
10971
10972
442
            switch ( LA(1) )
10973
            {
10974
195
            case AND_TOK:
10975
            case CNF_TOK:
10976
            case DISTINCT_OBJECT:
10977
            case FALSE_TOK:
10978
            case FOF_TOK:
10979
            case IMPLIES_TOK:
10980
            case INCLUDE_TOK:
10981
            case LOWER_WORD:
10982
            case LOWER_WORD_SINGLE_QUOTED:
10983
            case NUMBER:
10984
            case OR_TOK:
10985
            case SINGLE_QUOTED:
10986
            case TFF_TOK:
10987
            case THF_TOK:
10988
            case TRUE_TOK:
10989
            case TYPE_TOK:
10990
            case UPPER_WORD:
10991
            case 63:
10992
            case 64:
10993
            case 65:
10994
            case 66:
10995
            case 67:
10996
            case 68:
10997
            case 69:
10998
            case 70:
10999
            case 72:
11000
            case 73:
11001
            case 74:
11002
            case 76:
11003
            case 78:
11004
            case 79:
11005
            case 80:
11006
            case 81:
11007
            case 82:
11008
            case 83:
11009
            case 84:
11010
            case 85:
11011
            case 86:
11012
            case 87:
11013
            case 88:
11014
            case 90:
11015
            case 91:
11016
            case 92:
11017
            case 93:
11018
            case 94:
11019
            	{
11020
195
            		alt68=1;
11021
            	}
11022
195
                break;
11023
170
            case LPAREN_TOK:
11024
            	{
11025
170
            		alt68=2;
11026
            	}
11027
170
                break;
11028
10
            case NOT_TOK:
11029
            	{
11030
10
            		alt68=3;
11031
            	}
11032
10
                break;
11033
64
            case EXISTS_TOK:
11034
            case FORALL_TOK:
11035
            	{
11036
64
            		alt68=4;
11037
            	}
11038
64
                break;
11039
2
            case 71:
11040
            	{
11041
2
            		alt68=5;
11042
            	}
11043
2
                break;
11044
            case 77:
11045
            	{
11046
            		alt68=6;
11047
            	}
11048
                break;
11049
1
            case 75:
11050
            	{
11051
1
            		alt68=7;
11052
            	}
11053
1
                break;
11054
11055
            default:
11056
                CONSTRUCTEX();
11057
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11058
                EXCEPTION->message      = (void *)"";
11059
                EXCEPTION->decisionNum  = 68;
11060
                EXCEPTION->state        = 0;
11061
11062
11063
                goto ruletffUnitaryFormulaEx;
11064
11065
            }
11066
11067
442
            switch (alt68)
11068
            {
11069
195
        	case 1:
11070
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1390:5: atomicFormula[expr]
11071
        	    {
11072
195
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_tffUnitaryFormula3431);
11073
195
        	        atomicFormula(ctx, expr);
11074
11075
195
        	        FOLLOWPOP();
11076
195
        	        if  (HASEXCEPTION())
11077
        	        {
11078
        	            goto ruletffUnitaryFormulaEx;
11079
        	        }
11080
11081
11082
        	    }
11083
195
        	    break;
11084
170
        	case 2:
11085
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1391:5: LPAREN_TOK tffLogicFormula[expr] RPAREN_TOK
11086
        	    {
11087
170
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438);
11088
170
        	        if  (HASEXCEPTION())
11089
        	        {
11090
        	            goto ruletffUnitaryFormulaEx;
11091
        	        }
11092
11093
11094
170
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440);
11095
170
        	        tffLogicFormula(ctx, expr);
11096
11097
170
        	        FOLLOWPOP();
11098
170
        	        if  (HASEXCEPTION())
11099
        	        {
11100
        	            goto ruletffUnitaryFormulaEx;
11101
        	        }
11102
11103
11104
170
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443);
11105
170
        	        if  (HASEXCEPTION())
11106
        	        {
11107
        	            goto ruletffUnitaryFormulaEx;
11108
        	        }
11109
11110
11111
        	    }
11112
170
        	    break;
11113
10
        	case 3:
11114
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1392:5: NOT_TOK tffUnitaryFormula[expr]
11115
        	    {
11116
10
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_tffUnitaryFormula3449);
11117
10
        	        if  (HASEXCEPTION())
11118
        	        {
11119
        	            goto ruletffUnitaryFormulaEx;
11120
        	        }
11121
11122
11123
10
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451);
11124
10
        	        tffUnitaryFormula(ctx, expr);
11125
11126
10
        	        FOLLOWPOP();
11127
10
        	        if  (HASEXCEPTION())
11128
        	        {
11129
        	            goto ruletffUnitaryFormulaEx;
11130
        	        }
11131
11132
11133
        	        {
11134
10
        	             expr = MK_TERM(api::NOT,expr);
11135
        	        }
11136
11137
11138
        	    }
11139
10
        	    break;
11140
64
        	case 4:
11141
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1394:5: folQuantifier[kind] LBRACK_TOK ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* ) RBRACK_TOK COLON_TOK tffUnitaryFormula[expr]
11142
        	    {
11143
64
        	        FOLLOWPUSH(FOLLOW_folQuantifier_in_tffUnitaryFormula3465);
11144
64
        	        folQuantifier(ctx, kind);
11145
11146
64
        	        FOLLOWPOP();
11147
64
        	        if  (HASEXCEPTION())
11148
        	        {
11149
        	            goto ruletffUnitaryFormulaEx;
11150
        	        }
11151
11152
11153
64
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468);
11154
64
        	        if  (HASEXCEPTION())
11155
        	        {
11156
        	            goto ruletffUnitaryFormulaEx;
11157
        	        }
11158
11159
11160
        	        {
11161
64
        	            PARSER_STATE->pushScope();
11162
        	        }
11163
11164
11165
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1395:5: ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* )
11166
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1395:7: tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )*
11167
        	        {
11168
64
        	            FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffUnitaryFormula3478);
11169
64
        	            tffbindvariable(ctx, expr);
11170
11171
64
        	            FOLLOWPOP();
11172
64
        	            if  (HASEXCEPTION())
11173
        	            {
11174
        	                goto ruletffUnitaryFormulaEx;
11175
        	            }
11176
11177
11178
        	            {
11179
64
        	                 bv.push_back(expr);
11180
        	            }
11181
11182
11183
        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1396:7: ( COMMA_TOK tffbindvariable[expr] )*
11184
11185
        	            for (;;)
11186
        	            {
11187
78
        	                int alt67=2;
11188
78
        	                switch ( LA(1) )
11189
        	                {
11190
14
        	                case COMMA_TOK:
11191
        	                	{
11192
14
        	                		alt67=1;
11193
        	                	}
11194
14
        	                    break;
11195
11196
        	                }
11197
11198
78
        	                switch (alt67)
11199
        	                {
11200
14
        	            	case 1:
11201
        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1396:9: COMMA_TOK tffbindvariable[expr]
11202
        	            	    {
11203
14
        	            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491);
11204
14
        	            	        if  (HASEXCEPTION())
11205
        	            	        {
11206
        	            	            goto ruletffUnitaryFormulaEx;
11207
        	            	        }
11208
11209
11210
14
        	            	        FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffUnitaryFormula3493);
11211
14
        	            	        tffbindvariable(ctx, expr);
11212
11213
14
        	            	        FOLLOWPOP();
11214
14
        	            	        if  (HASEXCEPTION())
11215
        	            	        {
11216
        	            	            goto ruletffUnitaryFormulaEx;
11217
        	            	        }
11218
11219
11220
        	            	        {
11221
14
        	            	             bv.push_back(expr);
11222
        	            	        }
11223
11224
11225
        	            	    }
11226
14
        	            	    break;
11227
11228
64
        	            	default:
11229
64
        	            	    goto loop67;	/* break out of the loop */
11230
        	            	    break;
11231
        	                }
11232
14
        	            }
11233
64
        	            loop67: ; /* Jump out to here if this rule does not match */
11234
11235
11236
        	        }
11237
11238
11239
64
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503);
11240
64
        	        if  (HASEXCEPTION())
11241
        	        {
11242
        	            goto ruletffUnitaryFormulaEx;
11243
        	        }
11244
11245
11246
64
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffUnitaryFormula3509);
11247
64
        	        if  (HASEXCEPTION())
11248
        	        {
11249
        	            goto ruletffUnitaryFormulaEx;
11250
        	        }
11251
11252
11253
64
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511);
11254
64
        	        tffUnitaryFormula(ctx, expr);
11255
11256
64
        	        FOLLOWPOP();
11257
64
        	        if  (HASEXCEPTION())
11258
        	        {
11259
        	            goto ruletffUnitaryFormulaEx;
11260
        	        }
11261
11262
11263
        	        {
11264
64
        	             PARSER_STATE->popScope();
11265
64
        	                  expr = MK_TERM(kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
11266
11267
        	        }
11268
11269
11270
        	    }
11271
64
        	    break;
11272
2
        	case 5:
11273
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1401:5: '$ite_f' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK tffLogicFormula[lhs] COMMA_TOK tffLogicFormula[rhs] RPAREN_TOK
11274
        	    {
11275
2
        	         MATCHT(71, &FOLLOW_71_in_tffUnitaryFormula3524);
11276
2
        	        if  (HASEXCEPTION())
11277
        	        {
11278
        	            goto ruletffUnitaryFormulaEx;
11279
        	        }
11280
11281
11282
2
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526);
11283
2
        	        if  (HASEXCEPTION())
11284
        	        {
11285
        	            goto ruletffUnitaryFormulaEx;
11286
        	        }
11287
11288
11289
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528);
11290
2
        	        tffLogicFormula(ctx, expr);
11291
11292
2
        	        FOLLOWPOP();
11293
2
        	        if  (HASEXCEPTION())
11294
        	        {
11295
        	            goto ruletffUnitaryFormulaEx;
11296
        	        }
11297
11298
11299
2
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531);
11300
2
        	        if  (HASEXCEPTION())
11301
        	        {
11302
        	            goto ruletffUnitaryFormulaEx;
11303
        	        }
11304
11305
11306
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533);
11307
2
        	        tffLogicFormula(ctx, lhs);
11308
11309
2
        	        FOLLOWPOP();
11310
2
        	        if  (HASEXCEPTION())
11311
        	        {
11312
        	            goto ruletffUnitaryFormulaEx;
11313
        	        }
11314
11315
11316
2
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536);
11317
2
        	        if  (HASEXCEPTION())
11318
        	        {
11319
        	            goto ruletffUnitaryFormulaEx;
11320
        	        }
11321
11322
11323
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538);
11324
2
        	        tffLogicFormula(ctx, rhs);
11325
11326
2
        	        FOLLOWPOP();
11327
2
        	        if  (HASEXCEPTION())
11328
        	        {
11329
        	            goto ruletffUnitaryFormulaEx;
11330
        	        }
11331
11332
11333
2
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541);
11334
2
        	        if  (HASEXCEPTION())
11335
        	        {
11336
        	            goto ruletffUnitaryFormulaEx;
11337
        	        }
11338
11339
11340
        	        {
11341
2
        	             expr = MK_TERM(api::ITE, expr, lhs, rhs);
11342
        	        }
11343
11344
11345
        	    }
11346
2
        	    break;
11347
        	case 6:
11348
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1403:5: '$let_tf' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK
11349
        	    {
11350
        	         MATCHT(77, &FOLLOW_77_in_tffUnitaryFormula3553);
11351
        	        if  (HASEXCEPTION())
11352
        	        {
11353
        	            goto ruletffUnitaryFormulaEx;
11354
        	        }
11355
11356
11357
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555);
11358
        	        if  (HASEXCEPTION())
11359
        	        {
11360
        	            goto ruletffUnitaryFormulaEx;
11361
        	        }
11362
11363
11364
        	        {
11365
        	             PARSER_STATE->pushScope();
11366
        	        }
11367
11368
11369
        	        FOLLOWPUSH(FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563);
11370
        	        tffLetTermDefn(ctx, lhs, rhs);
11371
11372
        	        FOLLOWPOP();
11373
        	        if  (HASEXCEPTION())
11374
        	        {
11375
        	            goto ruletffUnitaryFormulaEx;
11376
        	        }
11377
11378
11379
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566);
11380
        	        if  (HASEXCEPTION())
11381
        	        {
11382
        	            goto ruletffUnitaryFormulaEx;
11383
        	        }
11384
11385
11386
        	        FOLLOWPUSH(FOLLOW_tffFormula_in_tffUnitaryFormula3572);
11387
        	        tffFormula(ctx, expr);
11388
11389
        	        FOLLOWPOP();
11390
        	        if  (HASEXCEPTION())
11391
        	        {
11392
        	            goto ruletffUnitaryFormulaEx;
11393
        	        }
11394
11395
11396
        	        {
11397
        	             PARSER_STATE->popScope();
11398
        	                  expr = expr.substitute(lhs, rhs);
11399
11400
        	        }
11401
11402
11403
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585);
11404
        	        if  (HASEXCEPTION())
11405
        	        {
11406
        	            goto ruletffUnitaryFormulaEx;
11407
        	        }
11408
11409
11410
        	    }
11411
        	    break;
11412
1
        	case 7:
11413
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1410:5: '$let_ff' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK
11414
        	    {
11415
1
        	         MATCHT(75, &FOLLOW_75_in_tffUnitaryFormula3591);
11416
1
        	        if  (HASEXCEPTION())
11417
        	        {
11418
        	            goto ruletffUnitaryFormulaEx;
11419
        	        }
11420
11421
11422
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593);
11423
1
        	        if  (HASEXCEPTION())
11424
        	        {
11425
        	            goto ruletffUnitaryFormulaEx;
11426
        	        }
11427
11428
11429
        	        {
11430
1
        	             PARSER_STATE->pushScope();
11431
        	        }
11432
11433
11434
1
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601);
11435
1
        	        tffLetFormulaDefn(ctx, lhs, rhs);
11436
11437
1
        	        FOLLOWPOP();
11438
1
        	        if  (HASEXCEPTION())
11439
        	        {
11440
        	            goto ruletffUnitaryFormulaEx;
11441
        	        }
11442
11443
11444
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604);
11445
1
        	        if  (HASEXCEPTION())
11446
        	        {
11447
        	            goto ruletffUnitaryFormulaEx;
11448
        	        }
11449
11450
11451
1
        	        FOLLOWPUSH(FOLLOW_tffFormula_in_tffUnitaryFormula3610);
11452
1
        	        tffFormula(ctx, expr);
11453
11454
1
        	        FOLLOWPOP();
11455
1
        	        if  (HASEXCEPTION())
11456
        	        {
11457
        	            goto ruletffUnitaryFormulaEx;
11458
        	        }
11459
11460
11461
        	        {
11462
1
        	             PARSER_STATE->popScope();
11463
1
        	                  expr = expr.substitute(lhs, rhs);
11464
11465
        	        }
11466
11467
11468
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623);
11469
1
        	        if  (HASEXCEPTION())
11470
        	        {
11471
        	            goto ruletffUnitaryFormulaEx;
11472
        	        }
11473
11474
11475
        	    }
11476
1
        	    break;
11477
11478
            }
11479
        }
11480
    }
11481
11482
    // This is where rules clean up and exit
11483
    //
11484
442
    goto ruletffUnitaryFormulaEx; /* Prevent compiler warnings */
11485
442
    ruletffUnitaryFormulaEx: ;
11486
11487
442
            if (HASEXCEPTION())
11488
            {
11489
                PREPORTERROR();
11490
                PRECOVER();
11491
            }
11492
884
    return ;
11493
}
11494
/* $ANTLR end tffUnitaryFormula */
11495
11496
/**
11497
 * $ANTLR start tffLetTermDefn
11498
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1419:1: tffLetTermDefn[cvc5::api::Term& lhs, cvc5::api::Term& rhs] : ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs] ;
11499
 */
11500
static void
11501
1
tffLetTermDefn(pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11502
{
11503
11504
2
      std::vector<cvc5::api::Term> bvlist;
11505
11506
    /* Initialize rule variables
11507
     */
11508
11509
    {
11510
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1423:3: ( ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs] )
11511
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1423:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs]
11512
        {
11513
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1423:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )*
11514
11515
            for (;;)
11516
            {
11517
2
                int alt69=2;
11518
2
                switch ( LA(1) )
11519
                {
11520
1
                case FORALL_TOK:
11521
                	{
11522
1
                		alt69=1;
11523
                	}
11524
1
                    break;
11525
11526
                }
11527
11528
2
                switch (alt69)
11529
                {
11530
1
            	case 1:
11531
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1423:6: FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK
11532
            	    {
11533
1
            	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_tffLetTermDefn3643);
11534
1
            	        if  (HASEXCEPTION())
11535
            	        {
11536
            	            goto ruletffLetTermDefnEx;
11537
            	        }
11538
11539
11540
1
            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645);
11541
1
            	        if  (HASEXCEPTION())
11542
            	        {
11543
            	            goto ruletffLetTermDefnEx;
11544
            	        }
11545
11546
11547
1
            	        FOLLOWPUSH(FOLLOW_tffVariableList_in_tffLetTermDefn3647);
11548
1
            	        tffVariableList(ctx, bvlist);
11549
11550
1
            	        FOLLOWPOP();
11551
1
            	        if  (HASEXCEPTION())
11552
            	        {
11553
            	            goto ruletffLetTermDefnEx;
11554
            	        }
11555
11556
11557
1
            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650);
11558
1
            	        if  (HASEXCEPTION())
11559
            	        {
11560
            	            goto ruletffLetTermDefnEx;
11561
            	        }
11562
11563
11564
1
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffLetTermDefn3652);
11565
1
            	        if  (HASEXCEPTION())
11566
            	        {
11567
            	            goto ruletffLetTermDefnEx;
11568
            	        }
11569
11570
11571
            	    }
11572
1
            	    break;
11573
11574
1
            	default:
11575
1
            	    goto loop69;	/* break out of the loop */
11576
            	    break;
11577
                }
11578
1
            }
11579
1
            loop69: ; /* Jump out to here if this rule does not match */
11580
11581
11582
1
            FOLLOWPUSH(FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660);
11583
1
            tffLetTermBinding(ctx, bvlist, lhs, rhs);
11584
11585
1
            FOLLOWPOP();
11586
1
            if  (HASEXCEPTION())
11587
            {
11588
                goto ruletffLetTermDefnEx;
11589
            }
11590
11591
11592
        }
11593
11594
    }
11595
11596
    // This is where rules clean up and exit
11597
    //
11598
1
    goto ruletffLetTermDefnEx; /* Prevent compiler warnings */
11599
1
    ruletffLetTermDefnEx: ;
11600
11601
1
            if (HASEXCEPTION())
11602
            {
11603
                PREPORTERROR();
11604
                PRECOVER();
11605
            }
11606
2
    return ;
11607
}
11608
/* $ANTLR end tffLetTermDefn */
11609
11610
/**
11611
 * $ANTLR start tffLetTermBinding
11612
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1427:1: tffLetTermBinding[std::vector<cvc5::api::Term> & bvlist,\n cvc5::api::Term& lhs,\n cvc5::api::Term& rhs] : ( term[lhs] EQUAL_TOK term[rhs] | LPAREN_TOK tffLetTermBinding[bvlist, lhs, rhs] RPAREN_TOK );
11613
 */
11614
static void
11615
1
tffLetTermBinding(pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11616
{
11617
    /* Initialize rule variables
11618
     */
11619
11620
    {
11621
        {
11622
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1430:3: ( term[lhs] EQUAL_TOK term[rhs] | LPAREN_TOK tffLetTermBinding[bvlist, lhs, rhs] RPAREN_TOK )
11623
11624
            ANTLR3_UINT32 alt70;
11625
11626
1
            alt70=2;
11627
11628
1
            switch ( LA(1) )
11629
            {
11630
1
            case CNF_TOK:
11631
            case DISTINCT_OBJECT:
11632
            case FOF_TOK:
11633
            case INCLUDE_TOK:
11634
            case LOWER_WORD:
11635
            case LOWER_WORD_SINGLE_QUOTED:
11636
            case NUMBER:
11637
            case SINGLE_QUOTED:
11638
            case TFF_TOK:
11639
            case THF_TOK:
11640
            case TYPE_TOK:
11641
            case UPPER_WORD:
11642
            case 63:
11643
            case 64:
11644
            case 66:
11645
            case 72:
11646
            case 76:
11647
            case 78:
11648
            case 79:
11649
            case 80:
11650
            case 81:
11651
            case 82:
11652
            case 83:
11653
            case 84:
11654
            case 85:
11655
            case 86:
11656
            case 87:
11657
            case 88:
11658
            case 90:
11659
            case 91:
11660
            case 92:
11661
            case 93:
11662
            case 94:
11663
            	{
11664
1
            		alt70=1;
11665
            	}
11666
1
                break;
11667
            case LPAREN_TOK:
11668
            	{
11669
            		alt70=2;
11670
            	}
11671
                break;
11672
11673
            default:
11674
                CONSTRUCTEX();
11675
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11676
                EXCEPTION->message      = (void *)"";
11677
                EXCEPTION->decisionNum  = 70;
11678
                EXCEPTION->state        = 0;
11679
11680
11681
                goto ruletffLetTermBindingEx;
11682
11683
            }
11684
11685
1
            switch (alt70)
11686
            {
11687
1
        	case 1:
11688
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1430:5: term[lhs] EQUAL_TOK term[rhs]
11689
        	    {
11690
1
        	        FOLLOWPUSH(FOLLOW_term_in_tffLetTermBinding3675);
11691
1
        	        term(ctx, lhs);
11692
11693
1
        	        FOLLOWPOP();
11694
1
        	        if  (HASEXCEPTION())
11695
        	        {
11696
        	            goto ruletffLetTermBindingEx;
11697
        	        }
11698
11699
11700
1
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678);
11701
1
        	        if  (HASEXCEPTION())
11702
        	        {
11703
        	            goto ruletffLetTermBindingEx;
11704
        	        }
11705
11706
11707
1
        	        FOLLOWPUSH(FOLLOW_term_in_tffLetTermBinding3680);
11708
1
        	        term(ctx, rhs);
11709
11710
1
        	        FOLLOWPOP();
11711
1
        	        if  (HASEXCEPTION())
11712
        	        {
11713
        	            goto ruletffLetTermBindingEx;
11714
        	        }
11715
11716
11717
        	        {
11718
11719
1
        	                PARSER_STATE->checkLetBinding(bvlist, lhs, rhs, false);
11720
2
        	                std::vector<api::Term> lchildren(++lhs.begin(), lhs.end());
11721
1
        	                rhs = MK_TERM(api::LAMBDA, MK_TERM(api::BOUND_VAR_LIST, lchildren), rhs);
11722
        	                // since lhs is always APPLY_UF (otherwise we'd have had a parser error in
11723
        	                // checkLetBinding) the function to be replaced is always the first
11724
        	                // argument. Note that the way in which lchildren is built above is also
11725
        	                // relying on this.
11726
1
        	                lhs = lhs[0];
11727
11728
1
        	        }
11729
11730
11731
        	    }
11732
1
        	    break;
11733
        	case 2:
11734
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1441:5: LPAREN_TOK tffLetTermBinding[bvlist, lhs, rhs] RPAREN_TOK
11735
        	    {
11736
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691);
11737
        	        if  (HASEXCEPTION())
11738
        	        {
11739
        	            goto ruletffLetTermBindingEx;
11740
        	        }
11741
11742
11743
        	        FOLLOWPUSH(FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693);
11744
        	        tffLetTermBinding(ctx, bvlist, lhs, rhs);
11745
11746
        	        FOLLOWPOP();
11747
        	        if  (HASEXCEPTION())
11748
        	        {
11749
        	            goto ruletffLetTermBindingEx;
11750
        	        }
11751
11752
11753
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696);
11754
        	        if  (HASEXCEPTION())
11755
        	        {
11756
        	            goto ruletffLetTermBindingEx;
11757
        	        }
11758
11759
11760
        	    }
11761
        	    break;
11762
11763
            }
11764
        }
11765
    }
11766
11767
    // This is where rules clean up and exit
11768
    //
11769
1
    goto ruletffLetTermBindingEx; /* Prevent compiler warnings */
11770
1
    ruletffLetTermBindingEx: ;
11771
11772
1
            if (HASEXCEPTION())
11773
            {
11774
                PREPORTERROR();
11775
                PRECOVER();
11776
            }
11777
1
    return ;
11778
}
11779
/* $ANTLR end tffLetTermBinding */
11780
11781
/**
11782
 * $ANTLR start tffLetFormulaDefn
11783
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1444:1: tffLetFormulaDefn[cvc5::api::Term& lhs, cvc5::api::Term& rhs] : ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs] ;
11784
 */
11785
static void
11786
2
tffLetFormulaDefn(pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11787
{
11788
11789
4
      std::vector<cvc5::api::Term> bvlist;
11790
11791
    /* Initialize rule variables
11792
     */
11793
11794
    {
11795
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1448:3: ( ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs] )
11796
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1448:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs]
11797
        {
11798
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1448:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )*
11799
11800
            for (;;)
11801
            {
11802
5
                int alt71=2;
11803
5
                switch ( LA(1) )
11804
                {
11805
3
                case FORALL_TOK:
11806
                	{
11807
3
                		alt71=1;
11808
                	}
11809
3
                    break;
11810
11811
                }
11812
11813
5
                switch (alt71)
11814
                {
11815
3
            	case 1:
11816
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1448:6: FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK
11817
            	    {
11818
3
            	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716);
11819
3
            	        if  (HASEXCEPTION())
11820
            	        {
11821
            	            goto ruletffLetFormulaDefnEx;
11822
            	        }
11823
11824
11825
3
            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718);
11826
3
            	        if  (HASEXCEPTION())
11827
            	        {
11828
            	            goto ruletffLetFormulaDefnEx;
11829
            	        }
11830
11831
11832
3
            	        FOLLOWPUSH(FOLLOW_tffVariableList_in_tffLetFormulaDefn3720);
11833
3
            	        tffVariableList(ctx, bvlist);
11834
11835
3
            	        FOLLOWPOP();
11836
3
            	        if  (HASEXCEPTION())
11837
            	        {
11838
            	            goto ruletffLetFormulaDefnEx;
11839
            	        }
11840
11841
11842
3
            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723);
11843
3
            	        if  (HASEXCEPTION())
11844
            	        {
11845
            	            goto ruletffLetFormulaDefnEx;
11846
            	        }
11847
11848
11849
3
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725);
11850
3
            	        if  (HASEXCEPTION())
11851
            	        {
11852
            	            goto ruletffLetFormulaDefnEx;
11853
            	        }
11854
11855
11856
            	    }
11857
3
            	    break;
11858
11859
2
            	default:
11860
2
            	    goto loop71;	/* break out of the loop */
11861
            	    break;
11862
                }
11863
3
            }
11864
2
            loop71: ; /* Jump out to here if this rule does not match */
11865
11866
11867
2
            FOLLOWPUSH(FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733);
11868
2
            tffLetFormulaBinding(ctx, bvlist, lhs, rhs);
11869
11870
2
            FOLLOWPOP();
11871
2
            if  (HASEXCEPTION())
11872
            {
11873
                goto ruletffLetFormulaDefnEx;
11874
            }
11875
11876
11877
        }
11878
11879
    }
11880
11881
    // This is where rules clean up and exit
11882
    //
11883
2
    goto ruletffLetFormulaDefnEx; /* Prevent compiler warnings */
11884
2
    ruletffLetFormulaDefnEx: ;
11885
11886
2
            if (HASEXCEPTION())
11887
            {
11888
                PREPORTERROR();
11889
                PRECOVER();
11890
            }
11891
4
    return ;
11892
}
11893
/* $ANTLR end tffLetFormulaDefn */
11894
11895
/**
11896
 * $ANTLR start tffLetFormulaBinding
11897
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1452:1: tffLetFormulaBinding[std::vector<cvc5::api::Term> & bvlist,\n cvc5::api::Term& lhs,\n cvc5::api::Term& rhs] : ( atomicFormula[lhs] IFF_TOK tffUnitaryFormula[rhs] | LPAREN_TOK tffLetFormulaBinding[bvlist, lhs, rhs] RPAREN_TOK );
11898
 */
11899
static void
11900
4
tffLetFormulaBinding(pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11901
{
11902
    /* Initialize rule variables
11903
     */
11904
11905
    {
11906
        {
11907
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1456:3: ( atomicFormula[lhs] IFF_TOK tffUnitaryFormula[rhs] | LPAREN_TOK tffLetFormulaBinding[bvlist, lhs, rhs] RPAREN_TOK )
11908
11909
            ANTLR3_UINT32 alt72;
11910
11911
4
            alt72=2;
11912
11913
4
            switch ( LA(1) )
11914
            {
11915
2
            case AND_TOK:
11916
            case CNF_TOK:
11917
            case DISTINCT_OBJECT:
11918
            case FALSE_TOK:
11919
            case FOF_TOK:
11920
            case IMPLIES_TOK:
11921
            case INCLUDE_TOK:
11922
            case LOWER_WORD:
11923
            case LOWER_WORD_SINGLE_QUOTED:
11924
            case NUMBER:
11925
            case OR_TOK:
11926
            case SINGLE_QUOTED:
11927
            case TFF_TOK:
11928
            case THF_TOK:
11929
            case TRUE_TOK:
11930
            case TYPE_TOK:
11931
            case UPPER_WORD:
11932
            case 63:
11933
            case 64:
11934
            case 65:
11935
            case 66:
11936
            case 67:
11937
            case 68:
11938
            case 69:
11939
            case 70:
11940
            case 72:
11941
            case 73:
11942
            case 74:
11943
            case 76:
11944
            case 78:
11945
            case 79:
11946
            case 80:
11947
            case 81:
11948
            case 82:
11949
            case 83:
11950
            case 84:
11951
            case 85:
11952
            case 86:
11953
            case 87:
11954
            case 88:
11955
            case 90:
11956
            case 91:
11957
            case 92:
11958
            case 93:
11959
            case 94:
11960
            	{
11961
2
            		alt72=1;
11962
            	}
11963
2
                break;
11964
2
            case LPAREN_TOK:
11965
            	{
11966
2
            		alt72=2;
11967
            	}
11968
2
                break;
11969
11970
            default:
11971
                CONSTRUCTEX();
11972
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11973
                EXCEPTION->message      = (void *)"";
11974
                EXCEPTION->decisionNum  = 72;
11975
                EXCEPTION->state        = 0;
11976
11977
11978
                goto ruletffLetFormulaBindingEx;
11979
11980
            }
11981
11982
4
            switch (alt72)
11983
            {
11984
2
        	case 1:
11985
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1456:5: atomicFormula[lhs] IFF_TOK tffUnitaryFormula[rhs]
11986
        	    {
11987
2
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_tffLetFormulaBinding3749);
11988
2
        	        atomicFormula(ctx, lhs);
11989
11990
2
        	        FOLLOWPOP();
11991
2
        	        if  (HASEXCEPTION())
11992
        	        {
11993
        	            goto ruletffLetFormulaBindingEx;
11994
        	        }
11995
11996
11997
2
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752);
11998
2
        	        if  (HASEXCEPTION())
11999
        	        {
12000
        	            goto ruletffLetFormulaBindingEx;
12001
        	        }
12002
12003
12004
2
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754);
12005
2
        	        tffUnitaryFormula(ctx, rhs);
12006
12007
2
        	        FOLLOWPOP();
12008
2
        	        if  (HASEXCEPTION())
12009
        	        {
12010
        	            goto ruletffLetFormulaBindingEx;
12011
        	        }
12012
12013
12014
        	        {
12015
12016
2
        	                PARSER_STATE->checkLetBinding(bvlist, lhs, rhs, true);
12017
4
        	                std::vector<api::Term> lchildren(++lhs.begin(), lhs.end());
12018
2
        	                rhs = MK_TERM(api::LAMBDA, MK_TERM(api::BOUND_VAR_LIST, lchildren), rhs);
12019
        	                // since lhs is always APPLY_UF (otherwise we'd have had a parser error in
12020
        	                // checkLetBinding) the function to be replaced is always the first
12021
        	                // argument. Note that the way in which lchildren is built above is also
12022
        	                // relying on this.
12023
2
        	                lhs = lhs[0];
12024
12025
2
        	        }
12026
12027
12028
        	    }
12029
2
        	    break;
12030
2
        	case 2:
12031
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1467:5: LPAREN_TOK tffLetFormulaBinding[bvlist, lhs, rhs] RPAREN_TOK
12032
        	    {
12033
2
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765);
12034
2
        	        if  (HASEXCEPTION())
12035
        	        {
12036
        	            goto ruletffLetFormulaBindingEx;
12037
        	        }
12038
12039
12040
2
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767);
12041
2
        	        tffLetFormulaBinding(ctx, bvlist, lhs, rhs);
12042
12043
2
        	        FOLLOWPOP();
12044
2
        	        if  (HASEXCEPTION())
12045
        	        {
12046
        	            goto ruletffLetFormulaBindingEx;
12047
        	        }
12048
12049
12050
2
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770);
12051
2
        	        if  (HASEXCEPTION())
12052
        	        {
12053
        	            goto ruletffLetFormulaBindingEx;
12054
        	        }
12055
12056
12057
        	    }
12058
2
        	    break;
12059
12060
            }
12061
        }
12062
    }
12063
12064
    // This is where rules clean up and exit
12065
    //
12066
4
    goto ruletffLetFormulaBindingEx; /* Prevent compiler warnings */
12067
4
    ruletffLetFormulaBindingEx: ;
12068
12069
4
            if (HASEXCEPTION())
12070
            {
12071
                PREPORTERROR();
12072
                PRECOVER();
12073
            }
12074
4
    return ;
12075
}
12076
/* $ANTLR end tffLetFormulaBinding */
12077
12078
/**
12079
 * $ANTLR start thfBindVariable
12080
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1470:1: thfBindVariable[cvc5::api::Term& expr] : UPPER_WORD ( COLON_TOK parseThfType[type] )? ;
12081
 */
12082
static void
12083
2582
thfBindVariable(pTptpParser ctx, cvc5::api::Term& expr)
12084
{
12085
12086
5164
      std::string name;
12087
5164
      cvc5::api::Sort type = PARSER_STATE->d_unsorted;
12088
12089
    pANTLR3_COMMON_TOKEN    UPPER_WORD6;
12090
12091
    /* Initialize rule variables
12092
     */
12093
12094
2582
    UPPER_WORD6       = NULL;
12095
12096
    {
12097
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1475:3: ( UPPER_WORD ( COLON_TOK parseThfType[type] )? )
12098
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1475:5: UPPER_WORD ( COLON_TOK parseThfType[type] )?
12099
        {
12100
2582
            UPPER_WORD6 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_thfBindVariable3789);
12101
2582
            if  (HASEXCEPTION())
12102
            {
12103
                goto rulethfBindVariableEx;
12104
            }
12105
12106
12107
            {
12108
2582
                 name = AntlrInput::tokenText(UPPER_WORD6);
12109
            }
12110
12111
12112
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1477:5: ( COLON_TOK parseThfType[type] )?
12113
            {
12114
2582
                int alt73=2;
12115
2582
                switch ( LA(1) )
12116
                {
12117
2582
                    case COLON_TOK:
12118
                    	{
12119
2582
                    		alt73=1;
12120
                    	}
12121
2582
                        break;
12122
                }
12123
12124
2582
                switch (alt73)
12125
                {
12126
2582
            	case 1:
12127
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1477:7: COLON_TOK parseThfType[type]
12128
            	    {
12129
2582
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfBindVariable3803);
12130
2582
            	        if  (HASEXCEPTION())
12131
            	        {
12132
            	            goto rulethfBindVariableEx;
12133
            	        }
12134
12135
12136
2582
            	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfBindVariable3805);
12137
2582
            	        parseThfType(ctx, type);
12138
12139
2582
            	        FOLLOWPOP();
12140
2582
            	        if  (HASEXCEPTION())
12141
            	        {
12142
            	            goto rulethfBindVariableEx;
12143
            	        }
12144
12145
12146
            	    }
12147
2582
            	    break;
12148
12149
                }
12150
            }
12151
12152
            {
12153
12154
2582
                      expr = PARSER_STATE->bindBoundVar(name, type);
12155
12156
            }
12157
12158
12159
        }
12160
12161
    }
12162
12163
    // This is where rules clean up and exit
12164
    //
12165
2582
    goto rulethfBindVariableEx; /* Prevent compiler warnings */
12166
2582
    rulethfBindVariableEx: ;
12167
12168
2582
            if (HASEXCEPTION())
12169
            {
12170
                PREPORTERROR();
12171
                PRECOVER();
12172
            }
12173
5164
    return ;
12174
}
12175
/* $ANTLR end thfBindVariable */
12176
12177
/**
12178
 * $ANTLR start tffbindvariable
12179
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1484:1: tffbindvariable[cvc5::api::Term& expr] : UPPER_WORD ( COLON_TOK parseType[type] )? ;
12180
 */
12181
static void
12182
83
tffbindvariable(pTptpParser ctx, cvc5::api::Term& expr)
12183
{
12184
12185
166
      cvc5::api::Sort type = PARSER_STATE->d_unsorted;
12186
12187
    pANTLR3_COMMON_TOKEN    UPPER_WORD7;
12188
12189
    /* Initialize rule variables
12190
     */
12191
12192
83
    UPPER_WORD7       = NULL;
12193
12194
    {
12195
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1488:3: ( UPPER_WORD ( COLON_TOK parseType[type] )? )
12196
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1488:5: UPPER_WORD ( COLON_TOK parseType[type] )?
12197
        {
12198
83
            UPPER_WORD7 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_tffbindvariable3835);
12199
83
            if  (HASEXCEPTION())
12200
            {
12201
                goto ruletffbindvariableEx;
12202
            }
12203
12204
12205
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1489:5: ( COLON_TOK parseType[type] )?
12206
            {
12207
83
                int alt74=2;
12208
83
                switch ( LA(1) )
12209
                {
12210
83
                    case COLON_TOK:
12211
                    	{
12212
83
                    		alt74=1;
12213
                    	}
12214
83
                        break;
12215
                }
12216
12217
83
                switch (alt74)
12218
                {
12219
83
            	case 1:
12220
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1489:7: COLON_TOK parseType[type]
12221
            	    {
12222
83
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffbindvariable3843);
12223
83
            	        if  (HASEXCEPTION())
12224
            	        {
12225
            	            goto ruletffbindvariableEx;
12226
            	        }
12227
12228
12229
83
            	        FOLLOWPUSH(FOLLOW_parseType_in_tffbindvariable3845);
12230
83
            	        parseType(ctx, type);
12231
12232
83
            	        FOLLOWPOP();
12233
83
            	        if  (HASEXCEPTION())
12234
            	        {
12235
            	            goto ruletffbindvariableEx;
12236
            	        }
12237
12238
12239
            	    }
12240
83
            	    break;
12241
12242
                }
12243
            }
12244
12245
            {
12246
166
                 std::string name = AntlrInput::tokenText(UPPER_WORD7);
12247
83
                      expr = PARSER_STATE->bindBoundVar(name, type);
12248
12249
            }
12250
12251
12252
        }
12253
12254
    }
12255
12256
    // This is where rules clean up and exit
12257
    //
12258
83
    goto ruletffbindvariableEx; /* Prevent compiler warnings */
12259
83
    ruletffbindvariableEx: ;
12260
12261
83
            if (HASEXCEPTION())
12262
            {
12263
                PREPORTERROR();
12264
                PRECOVER();
12265
            }
12266
166
    return ;
12267
}
12268
/* $ANTLR end tffbindvariable */
12269
12270
/**
12271
 * $ANTLR start tffVariableList
12272
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1497:1: tffVariableList[std::vector<cvc5::api::Term>& bvlist] : tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )* ;
12273
 */
12274
static void
12275
4
tffVariableList(pTptpParser ctx, std::vector<cvc5::api::Term>& bvlist)
12276
{
12277
12278
8
      cvc5::api::Term e;
12279
12280
    /* Initialize rule variables
12281
     */
12282
12283
    {
12284
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1501:3: ( tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )* )
12285
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1501:5: tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )*
12286
        {
12287
4
            FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffVariableList3876);
12288
4
            tffbindvariable(ctx, e);
12289
12290
4
            FOLLOWPOP();
12291
4
            if  (HASEXCEPTION())
12292
            {
12293
                goto ruletffVariableListEx;
12294
            }
12295
12296
12297
            {
12298
4
                 bvlist.push_back(e);
12299
            }
12300
12301
12302
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1502:5: ( COMMA_TOK tffbindvariable[e] )*
12303
12304
            for (;;)
12305
            {
12306
5
                int alt75=2;
12307
5
                switch ( LA(1) )
12308
                {
12309
1
                case COMMA_TOK:
12310
                	{
12311
1
                		alt75=1;
12312
                	}
12313
1
                    break;
12314
12315
                }
12316
12317
5
                switch (alt75)
12318
                {
12319
1
            	case 1:
12320
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1502:7: COMMA_TOK tffbindvariable[e]
12321
            	    {
12322
1
            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffVariableList3887);
12323
1
            	        if  (HASEXCEPTION())
12324
            	        {
12325
            	            goto ruletffVariableListEx;
12326
            	        }
12327
12328
12329
1
            	        FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffVariableList3889);
12330
1
            	        tffbindvariable(ctx, e);
12331
12332
1
            	        FOLLOWPOP();
12333
1
            	        if  (HASEXCEPTION())
12334
            	        {
12335
            	            goto ruletffVariableListEx;
12336
            	        }
12337
12338
12339
            	        {
12340
1
            	             bvlist.push_back(e);
12341
            	        }
12342
12343
12344
            	    }
12345
1
            	    break;
12346
12347
4
            	default:
12348
4
            	    goto loop75;	/* break out of the loop */
12349
            	    break;
12350
                }
12351
1
            }
12352
4
            loop75: ; /* Jump out to here if this rule does not match */
12353
12354
12355
        }
12356
12357
    }
12358
12359
    // This is where rules clean up and exit
12360
    //
12361
4
    goto ruletffVariableListEx; /* Prevent compiler warnings */
12362
4
    ruletffVariableListEx: ;
12363
12364
4
            if (HASEXCEPTION())
12365
            {
12366
                PREPORTERROR();
12367
                PRECOVER();
12368
            }
12369
8
    return ;
12370
}
12371
/* $ANTLR end tffVariableList */
12372
12373
/**
12374
 * $ANTLR start parseThfType
12375
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1505:1: parseThfType[cvc5::api::Sort& type] : thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )* ;
12376
 */
12377
static void
12378
3396
parseThfType(pTptpParser ctx, cvc5::api::Sort& type)
12379
{
12380
12381
6792
      std::vector<cvc5::api::Sort> sorts;
12382
12383
    /* Initialize rule variables
12384
     */
12385
12386
    {
12387
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1510:3: ( thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )* )
12388
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1510:5: thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )*
12389
        {
12390
3396
            FOLLOWPUSH(FOLLOW_thfType_in_parseThfType3915);
12391
3396
            thfType(ctx, type);
12392
12393
3396
            FOLLOWPOP();
12394
3396
            if  (HASEXCEPTION())
12395
            {
12396
                goto ruleparseThfTypeEx;
12397
            }
12398
12399
12400
            {
12401
3396
                 sorts.push_back(type);
12402
            }
12403
12404
12405
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1511:5: ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )*
12406
12407
            for (;;)
12408
            {
12409
5999
                int alt76=2;
12410
5999
                switch ( LA(1) )
12411
                {
12412
2603
                case ARROW_TOK:
12413
                case TIMES_TOK:
12414
                	{
12415
2603
                		alt76=1;
12416
                	}
12417
2603
                    break;
12418
12419
                }
12420
12421
5999
                switch (alt76)
12422
                {
12423
2603
            	case 1:
12424
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1512:6: ( ARROW_TOK | TIMES_TOK ) thfType[type]
12425
            	    {
12426
2603
            	        if ( LA(1) == ARROW_TOK || LA(1) == TIMES_TOK )
12427
            	        {
12428
2603
            	            CONSUME();
12429
2603
            	            PERRORRECOVERY=ANTLR3_FALSE;
12430
            	        }
12431
            	        else
12432
            	        {
12433
            	            CONSTRUCTEX();
12434
            	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
12435
            	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
12436
            	            EXCEPTION->expectingSet = NULL;
12437
12438
            	            goto ruleparseThfTypeEx;
12439
            	        }
12440
12441
12442
2603
            	        FOLLOWPUSH(FOLLOW_thfType_in_parseThfType3939);
12443
2603
            	        thfType(ctx, type);
12444
12445
2603
            	        FOLLOWPOP();
12446
2603
            	        if  (HASEXCEPTION())
12447
            	        {
12448
            	            goto ruleparseThfTypeEx;
12449
            	        }
12450
12451
12452
            	        {
12453
2603
            	             sorts.push_back(type);
12454
            	        }
12455
12456
12457
            	    }
12458
2603
            	    break;
12459
12460
3396
            	default:
12461
3396
            	    goto loop76;	/* break out of the loop */
12462
            	    break;
12463
                }
12464
2603
            }
12465
3396
            loop76: ; /* Jump out to here if this rule does not match */
12466
12467
12468
            {
12469
12470
3396
                      if (sorts.size() < 1)
12471
                      {
12472
                        type = sorts[0];
12473
                      }
12474
                      else
12475
                      {
12476
6792
                        api::Sort range = sorts.back();
12477
3396
                        sorts.pop_back();
12478
3396
                        type = PARSER_STATE->mkFlatFunctionType(sorts, range);
12479
                      }
12480
12481
            }
12482
12483
12484
        }
12485
12486
    }
12487
12488
    // This is where rules clean up and exit
12489
    //
12490
3396
    goto ruleparseThfTypeEx; /* Prevent compiler warnings */
12491
3396
    ruleparseThfTypeEx: ;
12492
12493
3396
            if (HASEXCEPTION())
12494
            {
12495
                PREPORTERROR();
12496
                PRECOVER();
12497
            }
12498
6792
    return ;
12499
}
12500
/* $ANTLR end parseThfType */
12501
12502
/**
12503
 * $ANTLR start thfType
12504
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1528:1: thfType[cvc5::api::Sort& type] : ( simpleType[type] | LPAREN_TOK parseThfType[type] RPAREN_TOK | LBRACK_TOK parseThfType[type] RBRACK_TOK );
12505
 */
12506
static void
12507
5999
thfType(pTptpParser ctx, cvc5::api::Sort& type)
12508
{
12509
    /* Initialize rule variables
12510
     */
12511
12512
    {
12513
        {
12514
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1530:3: ( simpleType[type] | LPAREN_TOK parseThfType[type] RPAREN_TOK | LBRACK_TOK parseThfType[type] RBRACK_TOK )
12515
12516
            ANTLR3_UINT32 alt77;
12517
12518
5999
            alt77=3;
12519
12520
5999
            switch ( LA(1) )
12521
            {
12522
5468
            case CNF_TOK:
12523
            case DEFINED_SYMBOL:
12524
            case FOF_TOK:
12525
            case INCLUDE_TOK:
12526
            case LOWER_WORD:
12527
            case LOWER_WORD_SINGLE_QUOTED:
12528
            case SINGLE_QUOTED:
12529
            case TFF_TOK:
12530
            case THF_TOK:
12531
            case TYPE_TOK:
12532
            	{
12533
5468
            		alt77=1;
12534
            	}
12535
5468
                break;
12536
531
            case LPAREN_TOK:
12537
            	{
12538
531
            		alt77=2;
12539
            	}
12540
531
                break;
12541
            case LBRACK_TOK:
12542
            	{
12543
            		alt77=3;
12544
            	}
12545
                break;
12546
12547
            default:
12548
                CONSTRUCTEX();
12549
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12550
                EXCEPTION->message      = (void *)"";
12551
                EXCEPTION->decisionNum  = 77;
12552
                EXCEPTION->state        = 0;
12553
12554
12555
                goto rulethfTypeEx;
12556
12557
            }
12558
12559
5999
            switch (alt77)
12560
            {
12561
5468
        	case 1:
12562
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1530:5: simpleType[type]
12563
        	    {
12564
5468
        	        FOLLOWPUSH(FOLLOW_simpleType_in_thfType3970);
12565
5468
        	        simpleType(ctx, type);
12566
12567
5468
        	        FOLLOWPOP();
12568
5468
        	        if  (HASEXCEPTION())
12569
        	        {
12570
        	            goto rulethfTypeEx;
12571
        	        }
12572
12573
12574
        	    }
12575
5468
        	    break;
12576
531
        	case 2:
12577
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1531:7: LPAREN_TOK parseThfType[type] RPAREN_TOK
12578
        	    {
12579
531
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfType3979);
12580
531
        	        if  (HASEXCEPTION())
12581
        	        {
12582
        	            goto rulethfTypeEx;
12583
        	        }
12584
12585
12586
531
        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfType3981);
12587
531
        	        parseThfType(ctx, type);
12588
12589
531
        	        FOLLOWPOP();
12590
531
        	        if  (HASEXCEPTION())
12591
        	        {
12592
        	            goto rulethfTypeEx;
12593
        	        }
12594
12595
12596
531
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfType3984);
12597
531
        	        if  (HASEXCEPTION())
12598
        	        {
12599
        	            goto rulethfTypeEx;
12600
        	        }
12601
12602
12603
        	    }
12604
531
        	    break;
12605
        	case 3:
12606
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1532:7: LBRACK_TOK parseThfType[type] RBRACK_TOK
12607
        	    {
12608
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfType3992);
12609
        	        if  (HASEXCEPTION())
12610
        	        {
12611
        	            goto rulethfTypeEx;
12612
        	        }
12613
12614
12615
        	        {
12616
        	             UNSUPPORTED("Tuple types");
12617
        	        }
12618
12619
12620
        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfType3996);
12621
        	        parseThfType(ctx, type);
12622
12623
        	        FOLLOWPOP();
12624
        	        if  (HASEXCEPTION())
12625
        	        {
12626
        	            goto rulethfTypeEx;
12627
        	        }
12628
12629
12630
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfType3999);
12631
        	        if  (HASEXCEPTION())
12632
        	        {
12633
        	            goto rulethfTypeEx;
12634
        	        }
12635
12636
12637
        	    }
12638
        	    break;
12639
12640
            }
12641
        }
12642
    }
12643
12644
    // This is where rules clean up and exit
12645
    //
12646
5999
    goto rulethfTypeEx; /* Prevent compiler warnings */
12647
5999
    rulethfTypeEx: ;
12648
12649
5999
            if (HASEXCEPTION())
12650
            {
12651
                PREPORTERROR();
12652
                PRECOVER();
12653
            }
12654
5999
    return ;
12655
}
12656
/* $ANTLR end thfType */
12657
12658
/**
12659
 * $ANTLR start parseType
12660
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1535:1: parseType[cvc5::api::Sort & type] : ( simpleType[type] | ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type] );
12661
 */
12662
static void
12663
143
parseType(pTptpParser ctx, cvc5::api::Sort & type)
12664
{
12665
12666
286
      std::vector<cvc5::api::Sort> v;
12667
12668
    /* Initialize rule variables
12669
     */
12670
12671
    {
12672
        {
12673
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1540:3: ( simpleType[type] | ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type] )
12674
12675
            ANTLR3_UINT32 alt80;
12676
12677
143
            alt80=2;
12678
12679
143
            switch ( LA(1) )
12680
            {
12681
87
            case DEFINED_SYMBOL:
12682
            	{
12683
87
            		switch ( LA(2) )
12684
            		{
12685
77
            		case COMMA_TOK:
12686
            		case RBRACK_TOK:
12687
            		case RPAREN_TOK:
12688
            			{
12689
77
            				alt80=1;
12690
            			}
12691
77
            		    break;
12692
10
            		case ARROW_TOK:
12693
            			{
12694
10
            				alt80=2;
12695
            			}
12696
10
            		    break;
12697
12698
            		default:
12699
            		    CONSTRUCTEX();
12700
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12701
            		    EXCEPTION->message      = (void *)"";
12702
            		    EXCEPTION->decisionNum  = 80;
12703
            		    EXCEPTION->state        = 1;
12704
12705
12706
            		    goto ruleparseTypeEx;
12707
12708
            		}
12709
12710
            	}
12711
87
                break;
12712
            case FOF_TOK:
12713
            	{
12714
            		switch ( LA(2) )
12715
            		{
12716
            		case COMMA_TOK:
12717
            		case RBRACK_TOK:
12718
            		case RPAREN_TOK:
12719
            			{
12720
            				alt80=1;
12721
            			}
12722
            		    break;
12723
            		case ARROW_TOK:
12724
            			{
12725
            				alt80=2;
12726
            			}
12727
            		    break;
12728
12729
            		default:
12730
            		    CONSTRUCTEX();
12731
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12732
            		    EXCEPTION->message      = (void *)"";
12733
            		    EXCEPTION->decisionNum  = 80;
12734
            		    EXCEPTION->state        = 2;
12735
12736
12737
            		    goto ruleparseTypeEx;
12738
12739
            		}
12740
12741
            	}
12742
                break;
12743
            case CNF_TOK:
12744
            	{
12745
            		switch ( LA(2) )
12746
            		{
12747
            		case COMMA_TOK:
12748
            		case RBRACK_TOK:
12749
            		case RPAREN_TOK:
12750
            			{
12751
            				alt80=1;
12752
            			}
12753
            		    break;
12754
            		case ARROW_TOK:
12755
            			{
12756
            				alt80=2;
12757
            			}
12758
            		    break;
12759
12760
            		default:
12761
            		    CONSTRUCTEX();
12762
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12763
            		    EXCEPTION->message      = (void *)"";
12764
            		    EXCEPTION->decisionNum  = 80;
12765
            		    EXCEPTION->state        = 3;
12766
12767
12768
            		    goto ruleparseTypeEx;
12769
12770
            		}
12771
12772
            	}
12773
                break;
12774
            case THF_TOK:
12775
            	{
12776
            		switch ( LA(2) )
12777
            		{
12778
            		case COMMA_TOK:
12779
            		case RBRACK_TOK:
12780
            		case RPAREN_TOK:
12781
            			{
12782
            				alt80=1;
12783
            			}
12784
            		    break;
12785
            		case ARROW_TOK:
12786
            			{
12787
            				alt80=2;
12788
            			}
12789
            		    break;
12790
12791
            		default:
12792
            		    CONSTRUCTEX();
12793
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12794
            		    EXCEPTION->message      = (void *)"";
12795
            		    EXCEPTION->decisionNum  = 80;
12796
            		    EXCEPTION->state        = 4;
12797
12798
12799
            		    goto ruleparseTypeEx;
12800
12801
            		}
12802
12803
            	}
12804
                break;
12805
            case TFF_TOK:
12806
            	{
12807
            		switch ( LA(2) )
12808
            		{
12809
            		case COMMA_TOK:
12810
            		case RBRACK_TOK:
12811
            		case RPAREN_TOK:
12812
            			{
12813
            				alt80=1;
12814
            			}
12815
            		    break;
12816
            		case ARROW_TOK:
12817
            			{
12818
            				alt80=2;
12819
            			}
12820
            		    break;
12821
12822
            		default:
12823
            		    CONSTRUCTEX();
12824
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12825
            		    EXCEPTION->message      = (void *)"";
12826
            		    EXCEPTION->decisionNum  = 80;
12827
            		    EXCEPTION->state        = 5;
12828
12829
12830
            		    goto ruleparseTypeEx;
12831
12832
            		}
12833
12834
            	}
12835
                break;
12836
            case TYPE_TOK:
12837
            	{
12838
            		switch ( LA(2) )
12839
            		{
12840
            		case COMMA_TOK:
12841
            		case RBRACK_TOK:
12842
            		case RPAREN_TOK:
12843
            			{
12844
            				alt80=1;
12845
            			}
12846
            		    break;
12847
            		case ARROW_TOK:
12848
            			{
12849
            				alt80=2;
12850
            			}
12851
            		    break;
12852
12853
            		default:
12854
            		    CONSTRUCTEX();
12855
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12856
            		    EXCEPTION->message      = (void *)"";
12857
            		    EXCEPTION->decisionNum  = 80;
12858
            		    EXCEPTION->state        = 6;
12859
12860
12861
            		    goto ruleparseTypeEx;
12862
12863
            		}
12864
12865
            	}
12866
                break;
12867
            case INCLUDE_TOK:
12868
            	{
12869
            		switch ( LA(2) )
12870
            		{
12871
            		case COMMA_TOK:
12872
            		case RBRACK_TOK:
12873
            		case RPAREN_TOK:
12874
            			{
12875
            				alt80=1;
12876
            			}
12877
            		    break;
12878
            		case ARROW_TOK:
12879
            			{
12880
            				alt80=2;
12881
            			}
12882
            		    break;
12883
12884
            		default:
12885
            		    CONSTRUCTEX();
12886
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12887
            		    EXCEPTION->message      = (void *)"";
12888
            		    EXCEPTION->decisionNum  = 80;
12889
            		    EXCEPTION->state        = 7;
12890
12891
12892
            		    goto ruleparseTypeEx;
12893
12894
            		}
12895
12896
            	}
12897
                break;
12898
40
            case LOWER_WORD:
12899
            	{
12900
40
            		switch ( LA(2) )
12901
            		{
12902
36
            		case COMMA_TOK:
12903
            		case RBRACK_TOK:
12904
            		case RPAREN_TOK:
12905
            			{
12906
36
            				alt80=1;
12907
            			}
12908
36
            		    break;
12909
4
            		case ARROW_TOK:
12910
            			{
12911
4
            				alt80=2;
12912
            			}
12913
4
            		    break;
12914
12915
            		default:
12916
            		    CONSTRUCTEX();
12917
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12918
            		    EXCEPTION->message      = (void *)"";
12919
            		    EXCEPTION->decisionNum  = 80;
12920
            		    EXCEPTION->state        = 8;
12921
12922
12923
            		    goto ruleparseTypeEx;
12924
12925
            		}
12926
12927
            	}
12928
40
                break;
12929
            case LOWER_WORD_SINGLE_QUOTED:
12930
            	{
12931
            		switch ( LA(2) )
12932
            		{
12933
            		case COMMA_TOK:
12934
            		case RBRACK_TOK:
12935
            		case RPAREN_TOK:
12936
            			{
12937
            				alt80=1;
12938
            			}
12939
            		    break;
12940
            		case ARROW_TOK:
12941
            			{
12942
            				alt80=2;
12943
            			}
12944
            		    break;
12945
12946
            		default:
12947
            		    CONSTRUCTEX();
12948
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12949
            		    EXCEPTION->message      = (void *)"";
12950
            		    EXCEPTION->decisionNum  = 80;
12951
            		    EXCEPTION->state        = 9;
12952
12953
12954
            		    goto ruleparseTypeEx;
12955
12956
            		}
12957
12958
            	}
12959
                break;
12960
            case SINGLE_QUOTED:
12961
            	{
12962
            		switch ( LA(2) )
12963
            		{
12964
            		case COMMA_TOK:
12965
            		case RBRACK_TOK:
12966
            		case RPAREN_TOK:
12967
            			{
12968
            				alt80=1;
12969
            			}
12970
            		    break;
12971
            		case ARROW_TOK:
12972
            			{
12973
            				alt80=2;
12974
            			}
12975
            		    break;
12976
12977
            		default:
12978
            		    CONSTRUCTEX();
12979
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12980
            		    EXCEPTION->message      = (void *)"";
12981
            		    EXCEPTION->decisionNum  = 80;
12982
            		    EXCEPTION->state        = 10;
12983
12984
12985
            		    goto ruleparseTypeEx;
12986
12987
            		}
12988
12989
            	}
12990
                break;
12991
16
            case LPAREN_TOK:
12992
            	{
12993
16
            		alt80=2;
12994
            	}
12995
16
                break;
12996
12997
            default:
12998
                CONSTRUCTEX();
12999
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13000
                EXCEPTION->message      = (void *)"";
13001
                EXCEPTION->decisionNum  = 80;
13002
                EXCEPTION->state        = 0;
13003
13004
13005
                goto ruleparseTypeEx;
13006
13007
            }
13008
13009
143
            switch (alt80)
13010
            {
13011
113
        	case 1:
13012
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1540:5: simpleType[type]
13013
        	    {
13014
113
        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4018);
13015
113
        	        simpleType(ctx, type);
13016
13017
113
        	        FOLLOWPOP();
13018
113
        	        if  (HASEXCEPTION())
13019
        	        {
13020
        	            goto ruleparseTypeEx;
13021
        	        }
13022
13023
13024
        	    }
13025
113
        	    break;
13026
30
        	case 2:
13027
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1541:5: ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type]
13028
        	    {
13029
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1541:5: ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK )
13030
        	        {
13031
30
        	            int alt79=2;
13032
30
        	            switch ( LA(1) )
13033
        	            {
13034
14
        	            case CNF_TOK:
13035
        	            case DEFINED_SYMBOL:
13036
        	            case FOF_TOK:
13037
        	            case INCLUDE_TOK:
13038
        	            case LOWER_WORD:
13039
        	            case LOWER_WORD_SINGLE_QUOTED:
13040
        	            case SINGLE_QUOTED:
13041
        	            case TFF_TOK:
13042
        	            case THF_TOK:
13043
        	            case TYPE_TOK:
13044
        	            	{
13045
14
        	            		alt79=1;
13046
        	            	}
13047
14
        	                break;
13048
16
        	            case LPAREN_TOK:
13049
        	            	{
13050
16
        	            		alt79=2;
13051
        	            	}
13052
16
        	                break;
13053
13054
        	            default:
13055
        	                CONSTRUCTEX();
13056
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13057
        	                EXCEPTION->message      = (void *)"";
13058
        	                EXCEPTION->decisionNum  = 79;
13059
        	                EXCEPTION->state        = 0;
13060
13061
13062
        	                goto ruleparseTypeEx;
13063
13064
        	            }
13065
13066
30
        	            switch (alt79)
13067
        	            {
13068
14
        	        	case 1:
13069
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1541:7: simpleType[type]
13070
        	        	    {
13071
14
        	        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4027);
13072
14
        	        	        simpleType(ctx, type);
13073
13074
14
        	        	        FOLLOWPOP();
13075
14
        	        	        if  (HASEXCEPTION())
13076
        	        	        {
13077
        	        	            goto ruleparseTypeEx;
13078
        	        	        }
13079
13080
13081
        	        	        {
13082
14
        	        	             v.push_back(type);
13083
        	        	        }
13084
13085
13086
        	        	    }
13087
14
        	        	    break;
13088
16
        	        	case 2:
13089
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1542:7: LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK
13090
        	        	    {
13091
16
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseType4038);
13092
16
        	        	        if  (HASEXCEPTION())
13093
        	        	        {
13094
        	        	            goto ruleparseTypeEx;
13095
        	        	        }
13096
13097
13098
16
        	        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4040);
13099
16
        	        	        simpleType(ctx, type);
13100
13101
16
        	        	        FOLLOWPOP();
13102
16
        	        	        if  (HASEXCEPTION())
13103
        	        	        {
13104
        	        	            goto ruleparseTypeEx;
13105
        	        	        }
13106
13107
13108
        	        	        {
13109
16
        	        	             v.push_back(type);
13110
        	        	        }
13111
13112
13113
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1543:7: ( TIMES_TOK simpleType[type] )+
13114
        	        	        {
13115
16
        	        	            int cnt78=0;
13116
13117
        	        	            for (;;)
13118
        	        	            {
13119
35
        	        	                int alt78=2;
13120
35
        	        	        	switch ( LA(1) )
13121
        	        	        	{
13122
19
        	        	        	case TIMES_TOK:
13123
        	        	        		{
13124
19
        	        	        			alt78=1;
13125
        	        	        		}
13126
19
        	        	        	    break;
13127
13128
        	        	        	}
13129
13130
35
        	        	        	switch (alt78)
13131
        	        	        	{
13132
19
        	        	        	    case 1:
13133
        	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1543:9: TIMES_TOK simpleType[type]
13134
        	        	        	        {
13135
19
        	        	        	             MATCHT(TIMES_TOK, &FOLLOW_TIMES_TOK_in_parseType4053);
13136
19
        	        	        	            if  (HASEXCEPTION())
13137
        	        	        	            {
13138
        	        	        	                goto ruleparseTypeEx;
13139
        	        	        	            }
13140
13141
13142
19
        	        	        	            FOLLOWPUSH(FOLLOW_simpleType_in_parseType4055);
13143
19
        	        	        	            simpleType(ctx, type);
13144
13145
19
        	        	        	            FOLLOWPOP();
13146
19
        	        	        	            if  (HASEXCEPTION())
13147
        	        	        	            {
13148
        	        	        	                goto ruleparseTypeEx;
13149
        	        	        	            }
13150
13151
13152
        	        	        	            {
13153
19
        	        	        	                 v.push_back(type);
13154
        	        	        	            }
13155
13156
13157
        	        	        	        }
13158
19
        	        	        	        break;
13159
13160
16
        	        	        	    default:
13161
13162
16
        	        	        		if ( cnt78 >= 1 )
13163
        	        	        		{
13164
16
        	        	        		    goto loop78;
13165
        	        	        		}
13166
        	        	        		/* mismatchedSetEx()
13167
        	        	        		 */
13168
        	        	        		CONSTRUCTEX();
13169
        	        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
13170
        	        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
13171
13172
13173
        	        	        		goto ruleparseTypeEx;
13174
        	        	        	}
13175
19
        	        	        	cnt78++;
13176
19
        	        	            }
13177
16
        	        	            loop78: ;	/* Jump to here if this rule does not match */
13178
        	        	        }
13179
13180
16
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseType4069);
13181
16
        	        	        if  (HASEXCEPTION())
13182
        	        	        {
13183
        	        	            goto ruleparseTypeEx;
13184
16
        	        	        }
13185
13186
13187
        	        	    }
13188
16
        	        	    break;
13189
13190
        	            }
13191
        	        }
13192
13193
30
        	         MATCHT(ARROW_TOK, &FOLLOW_ARROW_TOK_in_parseType4081);
13194
30
        	        if  (HASEXCEPTION())
13195
        	        {
13196
        	            goto ruleparseTypeEx;
13197
        	        }
13198
13199
13200
30
        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4083);
13201
30
        	        simpleType(ctx, type);
13202
13203
30
        	        FOLLOWPOP();
13204
30
        	        if  (HASEXCEPTION())
13205
        	        {
13206
        	            goto ruleparseTypeEx;
13207
        	        }
13208
13209
13210
        	        {
13211
30
        	             type = SOLVER->mkFunctionSort(v,type);
13212
13213
        	        }
13214
13215
13216
        	    }
13217
30
        	    break;
13218
13219
            }
13220
        }
13221
    }
13222
13223
    // This is where rules clean up and exit
13224
    //
13225
143
    goto ruleparseTypeEx; /* Prevent compiler warnings */
13226
143
    ruleparseTypeEx: ;
13227
13228
143
            if (HASEXCEPTION())
13229
            {
13230
                PREPORTERROR();
13231
                PRECOVER();
13232
            }
13233
286
    return ;
13234
}
13235
/* $ANTLR end parseType */
13236
13237
/**
13238
 * $ANTLR start simpleType
13239
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1552:1: simpleType[cvc5::api::Sort& type] : ( DEFINED_SYMBOL | atomicWord[name] );
13240
 */
13241
static void
13242
5660
simpleType(pTptpParser ctx, cvc5::api::Sort& type)
13243
{
13244
13245
11320
      std::string name;
13246
13247
    pANTLR3_COMMON_TOKEN    DEFINED_SYMBOL8;
13248
13249
    /* Initialize rule variables
13250
     */
13251
13252
5660
    DEFINED_SYMBOL8       = NULL;
13253
13254
    {
13255
        {
13256
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1556:3: ( DEFINED_SYMBOL | atomicWord[name] )
13257
13258
            ANTLR3_UINT32 alt81;
13259
13260
5660
            alt81=2;
13261
13262
5660
            switch ( LA(1) )
13263
            {
13264
2309
            case DEFINED_SYMBOL:
13265
            	{
13266
2309
            		alt81=1;
13267
            	}
13268
2309
                break;
13269
3351
            case CNF_TOK:
13270
            case FOF_TOK:
13271
            case INCLUDE_TOK:
13272
            case LOWER_WORD:
13273
            case LOWER_WORD_SINGLE_QUOTED:
13274
            case SINGLE_QUOTED:
13275
            case TFF_TOK:
13276
            case THF_TOK:
13277
            case TYPE_TOK:
13278
            	{
13279
3351
            		alt81=2;
13280
            	}
13281
3351
                break;
13282
13283
            default:
13284
                CONSTRUCTEX();
13285
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13286
                EXCEPTION->message      = (void *)"";
13287
                EXCEPTION->decisionNum  = 81;
13288
                EXCEPTION->state        = 0;
13289
13290
13291
                goto rulesimpleTypeEx;
13292
13293
            }
13294
13295
5660
            switch (alt81)
13296
            {
13297
2309
        	case 1:
13298
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1556:5: DEFINED_SYMBOL
13299
        	    {
13300
2309
        	        DEFINED_SYMBOL8 = (pANTLR3_COMMON_TOKEN) MATCHT(DEFINED_SYMBOL, &FOLLOW_DEFINED_SYMBOL_in_simpleType4110);
13301
2309
        	        if  (HASEXCEPTION())
13302
        	        {
13303
        	            goto rulesimpleTypeEx;
13304
        	        }
13305
13306
13307
        	        {
13308
4618
        	             std::string s = AntlrInput::tokenText(DEFINED_SYMBOL8);
13309
2309
        	                  if(s == "$i") type = PARSER_STATE->d_unsorted;
13310
2215
        	                  else if(s == "$o") type = SOLVER->getBooleanSort();
13311
33
        	                  else if(s == "$int") type = SOLVER->getIntegerSort();
13312
15
        	                  else if(s == "$rat") type = SOLVER->getRealSort();
13313
8
        	                  else if(s == "$real") type = SOLVER->getRealSort();
13314
        	                  else if(s == "$tType") PARSER_STATE->parseError("Type of types `$tType' cannot be used here");
13315
        	                  else PARSER_STATE->parseError("unknown defined type `" + s + "'");
13316
13317
2309
        	        }
13318
13319
13320
        	    }
13321
2309
        	    break;
13322
3351
        	case 2:
13323
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1566:5: atomicWord[name]
13324
        	    {
13325
3351
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_simpleType4122);
13326
3351
        	        atomicWord(ctx, name);
13327
13328
3351
        	        FOLLOWPOP();
13329
3351
        	        if  (HASEXCEPTION())
13330
        	        {
13331
        	            goto rulesimpleTypeEx;
13332
        	        }
13333
13334
13335
        	        {
13336
3351
        	             type = PARSER_STATE->getSort(name);
13337
        	        }
13338
13339
13340
        	    }
13341
3351
        	    break;
13342
13343
            }
13344
        }
13345
    }
13346
13347
    // This is where rules clean up and exit
13348
    //
13349
5660
    goto rulesimpleTypeEx; /* Prevent compiler warnings */
13350
5660
    rulesimpleTypeEx: ;
13351
13352
5660
            if (HASEXCEPTION())
13353
            {
13354
                PREPORTERROR();
13355
                PRECOVER();
13356
            }
13357
11320
    return ;
13358
}
13359
/* $ANTLR end simpleType */
13360
13361
/**
13362
 * $ANTLR start anything
13363
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1573:1: anything : ( LPAREN_TOK ( anything )* RPAREN_TOK | LBRACK_TOK ( anything )* RBRACK_TOK | COMMA_TOK | DOT_TOK | COLON_TOK | OR_TOK | NOT_TOK | FORALL_TOK | EXISTS_TOK | AND_TOK | IFF_TOK | IMPLIES_TOK | REVIMPLIES_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | TIMES_TOK | PLUS_TOK | MINUS_TOK | TRUE_TOK | FALSE_TOK | EQUAL_TOK | DISEQUAL_TOK | CNF_TOK | FOF_TOK | THF_TOK | TFF_TOK | TYPE_TOK | INCLUDE_TOK | DISTINCT_OBJECT | UPPER_WORD | LOWER_WORD | LOWER_WORD_SINGLE_QUOTED | SINGLE_QUOTED | NUMBER | DEFINED_SYMBOL );
13364
 */
13365
static void
13366
439
anything(pTptpParser ctx)
13367
{
13368
    /* Initialize rule variables
13369
     */
13370
13371
    {
13372
        {
13373
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1574:3: ( LPAREN_TOK ( anything )* RPAREN_TOK | LBRACK_TOK ( anything )* RBRACK_TOK | COMMA_TOK | DOT_TOK | COLON_TOK | OR_TOK | NOT_TOK | FORALL_TOK | EXISTS_TOK | AND_TOK | IFF_TOK | IMPLIES_TOK | REVIMPLIES_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | TIMES_TOK | PLUS_TOK | MINUS_TOK | TRUE_TOK | FALSE_TOK | EQUAL_TOK | DISEQUAL_TOK | CNF_TOK | FOF_TOK | THF_TOK | TFF_TOK | TYPE_TOK | INCLUDE_TOK | DISTINCT_OBJECT | UPPER_WORD | LOWER_WORD | LOWER_WORD_SINGLE_QUOTED | SINGLE_QUOTED | NUMBER | DEFINED_SYMBOL )
13374
13375
            ANTLR3_UINT32 alt84;
13376
13377
439
            alt84=36;
13378
13379
439
            switch ( LA(1) )
13380
            {
13381
70
            case LPAREN_TOK:
13382
            	{
13383
70
            		alt84=1;
13384
            	}
13385
70
                break;
13386
36
            case LBRACK_TOK:
13387
            	{
13388
36
            		alt84=2;
13389
            	}
13390
36
                break;
13391
104
            case COMMA_TOK:
13392
            	{
13393
104
            		alt84=3;
13394
            	}
13395
104
                break;
13396
            case DOT_TOK:
13397
            	{
13398
            		alt84=4;
13399
            	}
13400
                break;
13401
6
            case COLON_TOK:
13402
            	{
13403
6
            		alt84=5;
13404
            	}
13405
6
                break;
13406
7
            case OR_TOK:
13407
            	{
13408
7
            		alt84=6;
13409
            	}
13410
7
                break;
13411
5
            case NOT_TOK:
13412
            	{
13413
5
            		alt84=7;
13414
            	}
13415
5
                break;
13416
            case FORALL_TOK:
13417
            	{
13418
            		alt84=8;
13419
            	}
13420
                break;
13421
            case EXISTS_TOK:
13422
            	{
13423
            		alt84=9;
13424
            	}
13425
                break;
13426
            case AND_TOK:
13427
            	{
13428
            		alt84=10;
13429
            	}
13430
                break;
13431
            case IFF_TOK:
13432
            	{
13433
            		alt84=11;
13434
            	}
13435
                break;
13436
            case IMPLIES_TOK:
13437
            	{
13438
            		alt84=12;
13439
            	}
13440
                break;
13441
            case REVIMPLIES_TOK:
13442
            	{
13443
            		alt84=13;
13444
            	}
13445
                break;
13446
            case REVIFF_TOK:
13447
            	{
13448
            		alt84=14;
13449
            	}
13450
                break;
13451
            case REVOR_TOK:
13452
            	{
13453
            		alt84=15;
13454
            	}
13455
                break;
13456
            case REVAND_TOK:
13457
            	{
13458
            		alt84=16;
13459
            	}
13460
                break;
13461
            case TIMES_TOK:
13462
            	{
13463
            		alt84=17;
13464
            	}
13465
                break;
13466
            case PLUS_TOK:
13467
            	{
13468
            		alt84=18;
13469
            	}
13470
                break;
13471
            case MINUS_TOK:
13472
            	{
13473
            		alt84=19;
13474
            	}
13475
                break;
13476
            case TRUE_TOK:
13477
            	{
13478
            		alt84=20;
13479
            	}
13480
                break;
13481
            case FALSE_TOK:
13482
            	{
13483
            		alt84=21;
13484
            	}
13485
                break;
13486
            case EQUAL_TOK:
13487
            	{
13488
            		alt84=22;
13489
            	}
13490
                break;
13491
            case DISEQUAL_TOK:
13492
            	{
13493
            		alt84=23;
13494
            	}
13495
                break;
13496
            case CNF_TOK:
13497
            	{
13498
            		alt84=24;
13499
            	}
13500
                break;
13501
            case FOF_TOK:
13502
            	{
13503
            		alt84=25;
13504
            	}
13505
                break;
13506
            case THF_TOK:
13507
            	{
13508
            		alt84=26;
13509
            	}
13510
                break;
13511
            case TFF_TOK:
13512
            	{
13513
            		alt84=27;
13514
            	}
13515
                break;
13516
            case TYPE_TOK:
13517
            	{
13518
            		alt84=28;
13519
            	}
13520
                break;
13521
            case INCLUDE_TOK:
13522
            	{
13523
            		alt84=29;
13524
            	}
13525
                break;
13526
3
            case DISTINCT_OBJECT:
13527
            	{
13528
3
            		alt84=30;
13529
            	}
13530
3
                break;
13531
31
            case UPPER_WORD:
13532
            	{
13533
31
            		alt84=31;
13534
            	}
13535
31
                break;
13536
150
            case LOWER_WORD:
13537
            	{
13538
150
            		alt84=32;
13539
            	}
13540
150
                break;
13541
            case LOWER_WORD_SINGLE_QUOTED:
13542
            	{
13543
            		alt84=33;
13544
            	}
13545
                break;
13546
6
            case SINGLE_QUOTED:
13547
            	{
13548
6
            		alt84=34;
13549
            	}
13550
6
                break;
13551
15
            case NUMBER:
13552
            	{
13553
15
            		alt84=35;
13554
            	}
13555
15
                break;
13556
6
            case DEFINED_SYMBOL:
13557
            	{
13558
6
            		alt84=36;
13559
            	}
13560
6
                break;
13561
13562
            default:
13563
                CONSTRUCTEX();
13564
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13565
                EXCEPTION->message      = (void *)"";
13566
                EXCEPTION->decisionNum  = 84;
13567
                EXCEPTION->state        = 0;
13568
13569
13570
                goto ruleanythingEx;
13571
13572
            }
13573
13574
439
            switch (alt84)
13575
            {
13576
70
        	case 1:
13577
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1574:5: LPAREN_TOK ( anything )* RPAREN_TOK
13578
        	    {
13579
70
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_anything4147);
13580
70
        	        if  (HASEXCEPTION())
13581
        	        {
13582
        	            goto ruleanythingEx;
13583
        	        }
13584
13585
13586
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1574:16: ( anything )*
13587
13588
        	        for (;;)
13589
        	        {
13590
272
        	            int alt82=2;
13591
272
        	            switch ( LA(1) )
13592
        	            {
13593
202
        	            case AND_TOK:
13594
        	            case CNF_TOK:
13595
        	            case COLON_TOK:
13596
        	            case COMMA_TOK:
13597
        	            case DEFINED_SYMBOL:
13598
        	            case DISEQUAL_TOK:
13599
        	            case DISTINCT_OBJECT:
13600
        	            case DOT_TOK:
13601
        	            case EQUAL_TOK:
13602
        	            case EXISTS_TOK:
13603
        	            case FALSE_TOK:
13604
        	            case FOF_TOK:
13605
        	            case FORALL_TOK:
13606
        	            case IFF_TOK:
13607
        	            case IMPLIES_TOK:
13608
        	            case INCLUDE_TOK:
13609
        	            case LBRACK_TOK:
13610
        	            case LOWER_WORD:
13611
        	            case LOWER_WORD_SINGLE_QUOTED:
13612
        	            case LPAREN_TOK:
13613
        	            case MINUS_TOK:
13614
        	            case NOT_TOK:
13615
        	            case NUMBER:
13616
        	            case OR_TOK:
13617
        	            case PLUS_TOK:
13618
        	            case REVAND_TOK:
13619
        	            case REVIFF_TOK:
13620
        	            case REVIMPLIES_TOK:
13621
        	            case REVOR_TOK:
13622
        	            case SINGLE_QUOTED:
13623
        	            case TFF_TOK:
13624
        	            case THF_TOK:
13625
        	            case TIMES_TOK:
13626
        	            case TRUE_TOK:
13627
        	            case TYPE_TOK:
13628
        	            case UPPER_WORD:
13629
        	            	{
13630
202
        	            		alt82=1;
13631
        	            	}
13632
202
        	                break;
13633
13634
        	            }
13635
13636
272
        	            switch (alt82)
13637
        	            {
13638
202
        	        	case 1:
13639
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1574:16: anything
13640
        	        	    {
13641
202
        	        	        FOLLOWPUSH(FOLLOW_anything_in_anything4149);
13642
202
        	        	        anything(ctx);
13643
13644
202
        	        	        FOLLOWPOP();
13645
202
        	        	        if  (HASEXCEPTION())
13646
        	        	        {
13647
        	        	            goto ruleanythingEx;
13648
        	        	        }
13649
13650
13651
        	        	    }
13652
202
        	        	    break;
13653
13654
70
        	        	default:
13655
70
        	        	    goto loop82;	/* break out of the loop */
13656
        	        	    break;
13657
        	            }
13658
202
        	        }
13659
70
        	        loop82: ; /* Jump out to here if this rule does not match */
13660
13661
13662
70
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_anything4152);
13663
70
        	        if  (HASEXCEPTION())
13664
        	        {
13665
        	            goto ruleanythingEx;
13666
70
        	        }
13667
13668
13669
        	    }
13670
70
        	    break;
13671
36
        	case 2:
13672
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1575:5: LBRACK_TOK ( anything )* RBRACK_TOK
13673
        	    {
13674
36
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_anything4158);
13675
36
        	        if  (HASEXCEPTION())
13676
        	        {
13677
        	            goto ruleanythingEx;
13678
        	        }
13679
13680
13681
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1575:16: ( anything )*
13682
13683
        	        for (;;)
13684
        	        {
13685
228
        	            int alt83=2;
13686
228
        	            switch ( LA(1) )
13687
        	            {
13688
192
        	            case AND_TOK:
13689
        	            case CNF_TOK:
13690
        	            case COLON_TOK:
13691
        	            case COMMA_TOK:
13692
        	            case DEFINED_SYMBOL:
13693
        	            case DISEQUAL_TOK:
13694
        	            case DISTINCT_OBJECT:
13695
        	            case DOT_TOK:
13696
        	            case EQUAL_TOK:
13697
        	            case EXISTS_TOK:
13698
        	            case FALSE_TOK:
13699
        	            case FOF_TOK:
13700
        	            case FORALL_TOK:
13701
        	            case IFF_TOK:
13702
        	            case IMPLIES_TOK:
13703
        	            case INCLUDE_TOK:
13704
        	            case LBRACK_TOK:
13705
        	            case LOWER_WORD:
13706
        	            case LOWER_WORD_SINGLE_QUOTED:
13707
        	            case LPAREN_TOK:
13708
        	            case MINUS_TOK:
13709
        	            case NOT_TOK:
13710
        	            case NUMBER:
13711
        	            case OR_TOK:
13712
        	            case PLUS_TOK:
13713
        	            case REVAND_TOK:
13714
        	            case REVIFF_TOK:
13715
        	            case REVIMPLIES_TOK:
13716
        	            case REVOR_TOK:
13717
        	            case SINGLE_QUOTED:
13718
        	            case TFF_TOK:
13719
        	            case THF_TOK:
13720
        	            case TIMES_TOK:
13721
        	            case TRUE_TOK:
13722
        	            case TYPE_TOK:
13723
        	            case UPPER_WORD:
13724
        	            	{
13725
192
        	            		alt83=1;
13726
        	            	}
13727
192
        	                break;
13728
13729
        	            }
13730
13731
228
        	            switch (alt83)
13732
        	            {
13733
192
        	        	case 1:
13734
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1575:16: anything
13735
        	        	    {
13736
192
        	        	        FOLLOWPUSH(FOLLOW_anything_in_anything4160);
13737
192
        	        	        anything(ctx);
13738
13739
192
        	        	        FOLLOWPOP();
13740
192
        	        	        if  (HASEXCEPTION())
13741
        	        	        {
13742
        	        	            goto ruleanythingEx;
13743
        	        	        }
13744
13745
13746
        	        	    }
13747
192
        	        	    break;
13748
13749
36
        	        	default:
13750
36
        	        	    goto loop83;	/* break out of the loop */
13751
        	        	    break;
13752
        	            }
13753
192
        	        }
13754
36
        	        loop83: ; /* Jump out to here if this rule does not match */
13755
13756
13757
36
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_anything4163);
13758
36
        	        if  (HASEXCEPTION())
13759
        	        {
13760
        	            goto ruleanythingEx;
13761
36
        	        }
13762
13763
13764
        	    }
13765
36
        	    break;
13766
104
        	case 3:
13767
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1576:5: COMMA_TOK
13768
        	    {
13769
104
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_anything4169);
13770
104
        	        if  (HASEXCEPTION())
13771
        	        {
13772
        	            goto ruleanythingEx;
13773
        	        }
13774
13775
13776
        	    }
13777
104
        	    break;
13778
        	case 4:
13779
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1577:5: DOT_TOK
13780
        	    {
13781
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_anything4175);
13782
        	        if  (HASEXCEPTION())
13783
        	        {
13784
        	            goto ruleanythingEx;
13785
        	        }
13786
13787
13788
        	    }
13789
        	    break;
13790
6
        	case 5:
13791
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1578:5: COLON_TOK
13792
        	    {
13793
6
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_anything4181);
13794
6
        	        if  (HASEXCEPTION())
13795
        	        {
13796
        	            goto ruleanythingEx;
13797
        	        }
13798
13799
13800
        	    }
13801
6
        	    break;
13802
7
        	case 6:
13803
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1579:5: OR_TOK
13804
        	    {
13805
7
        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_anything4187);
13806
7
        	        if  (HASEXCEPTION())
13807
        	        {
13808
        	            goto ruleanythingEx;
13809
        	        }
13810
13811
13812
        	    }
13813
7
        	    break;
13814
5
        	case 7:
13815
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1580:5: NOT_TOK
13816
        	    {
13817
5
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_anything4193);
13818
5
        	        if  (HASEXCEPTION())
13819
        	        {
13820
        	            goto ruleanythingEx;
13821
        	        }
13822
13823
13824
        	    }
13825
5
        	    break;
13826
        	case 8:
13827
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1581:5: FORALL_TOK
13828
        	    {
13829
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_anything4199);
13830
        	        if  (HASEXCEPTION())
13831
        	        {
13832
        	            goto ruleanythingEx;
13833
        	        }
13834
13835
13836
        	    }
13837
        	    break;
13838
        	case 9:
13839
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1582:5: EXISTS_TOK
13840
        	    {
13841
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_anything4205);
13842
        	        if  (HASEXCEPTION())
13843
        	        {
13844
        	            goto ruleanythingEx;
13845
        	        }
13846
13847
13848
        	    }
13849
        	    break;
13850
        	case 10:
13851
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1583:5: AND_TOK
13852
        	    {
13853
        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_anything4211);
13854
        	        if  (HASEXCEPTION())
13855
        	        {
13856
        	            goto ruleanythingEx;
13857
        	        }
13858
13859
13860
        	    }
13861
        	    break;
13862
        	case 11:
13863
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1584:5: IFF_TOK
13864
        	    {
13865
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_anything4217);
13866
        	        if  (HASEXCEPTION())
13867
        	        {
13868
        	            goto ruleanythingEx;
13869
        	        }
13870
13871
13872
        	    }
13873
        	    break;
13874
        	case 12:
13875
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1585:5: IMPLIES_TOK
13876
        	    {
13877
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_anything4223);
13878
        	        if  (HASEXCEPTION())
13879
        	        {
13880
        	            goto ruleanythingEx;
13881
        	        }
13882
13883
13884
        	    }
13885
        	    break;
13886
        	case 13:
13887
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1586:5: REVIMPLIES_TOK
13888
        	    {
13889
        	         MATCHT(REVIMPLIES_TOK, &FOLLOW_REVIMPLIES_TOK_in_anything4229);
13890
        	        if  (HASEXCEPTION())
13891
        	        {
13892
        	            goto ruleanythingEx;
13893
        	        }
13894
13895
13896
        	    }
13897
        	    break;
13898
        	case 14:
13899
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1587:5: REVIFF_TOK
13900
        	    {
13901
        	         MATCHT(REVIFF_TOK, &FOLLOW_REVIFF_TOK_in_anything4235);
13902
        	        if  (HASEXCEPTION())
13903
        	        {
13904
        	            goto ruleanythingEx;
13905
        	        }
13906
13907
13908
        	    }
13909
        	    break;
13910
        	case 15:
13911
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1588:5: REVOR_TOK
13912
        	    {
13913
        	         MATCHT(REVOR_TOK, &FOLLOW_REVOR_TOK_in_anything4241);
13914
        	        if  (HASEXCEPTION())
13915
        	        {
13916
        	            goto ruleanythingEx;
13917
        	        }
13918
13919
13920
        	    }
13921
        	    break;
13922
        	case 16:
13923
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1589:5: REVAND_TOK
13924
        	    {
13925
        	         MATCHT(REVAND_TOK, &FOLLOW_REVAND_TOK_in_anything4247);
13926
        	        if  (HASEXCEPTION())
13927
        	        {
13928
        	            goto ruleanythingEx;
13929
        	        }
13930
13931
13932
        	    }
13933
        	    break;
13934
        	case 17:
13935
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1590:5: TIMES_TOK
13936
        	    {
13937
        	         MATCHT(TIMES_TOK, &FOLLOW_TIMES_TOK_in_anything4253);
13938
        	        if  (HASEXCEPTION())
13939
        	        {
13940
        	            goto ruleanythingEx;
13941
        	        }
13942
13943
13944
        	    }
13945
        	    break;
13946
        	case 18:
13947
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1591:5: PLUS_TOK
13948
        	    {
13949
        	         MATCHT(PLUS_TOK, &FOLLOW_PLUS_TOK_in_anything4259);
13950
        	        if  (HASEXCEPTION())
13951
        	        {
13952
        	            goto ruleanythingEx;
13953
        	        }
13954
13955
13956
        	    }
13957
        	    break;
13958
        	case 19:
13959
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1592:5: MINUS_TOK
13960
        	    {
13961
        	         MATCHT(MINUS_TOK, &FOLLOW_MINUS_TOK_in_anything4265);
13962
        	        if  (HASEXCEPTION())
13963
        	        {
13964
        	            goto ruleanythingEx;
13965
        	        }
13966
13967
13968
        	    }
13969
        	    break;
13970
        	case 20:
13971
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1593:5: TRUE_TOK
13972
        	    {
13973
        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_anything4271);
13974
        	        if  (HASEXCEPTION())
13975
        	        {
13976
        	            goto ruleanythingEx;
13977
        	        }
13978
13979
13980
        	    }
13981
        	    break;
13982
        	case 21:
13983
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1594:5: FALSE_TOK
13984
        	    {
13985
        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_anything4277);
13986
        	        if  (HASEXCEPTION())
13987
        	        {
13988
        	            goto ruleanythingEx;
13989
        	        }
13990
13991
13992
        	    }
13993
        	    break;
13994
        	case 22:
13995
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1595:5: EQUAL_TOK
13996
        	    {
13997
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_anything4283);
13998
        	        if  (HASEXCEPTION())
13999
        	        {
14000
        	            goto ruleanythingEx;
14001
        	        }
14002
14003
14004
        	    }
14005
        	    break;
14006
        	case 23:
14007
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1596:5: DISEQUAL_TOK
14008
        	    {
14009
        	         MATCHT(DISEQUAL_TOK, &FOLLOW_DISEQUAL_TOK_in_anything4289);
14010
        	        if  (HASEXCEPTION())
14011
        	        {
14012
        	            goto ruleanythingEx;
14013
        	        }
14014
14015
14016
        	    }
14017
        	    break;
14018
        	case 24:
14019
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1597:5: CNF_TOK
14020
        	    {
14021
        	         MATCHT(CNF_TOK, &FOLLOW_CNF_TOK_in_anything4295);
14022
        	        if  (HASEXCEPTION())
14023
        	        {
14024
        	            goto ruleanythingEx;
14025
        	        }
14026
14027
14028
        	    }
14029
        	    break;
14030
        	case 25:
14031
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1598:5: FOF_TOK
14032
        	    {
14033
        	         MATCHT(FOF_TOK, &FOLLOW_FOF_TOK_in_anything4301);
14034
        	        if  (HASEXCEPTION())
14035
        	        {
14036
        	            goto ruleanythingEx;
14037
        	        }
14038
14039
14040
        	    }
14041
        	    break;
14042
        	case 26:
14043
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1599:5: THF_TOK
14044
        	    {
14045
        	         MATCHT(THF_TOK, &FOLLOW_THF_TOK_in_anything4307);
14046
        	        if  (HASEXCEPTION())
14047
        	        {
14048
        	            goto ruleanythingEx;
14049
        	        }
14050
14051
14052
        	    }
14053
        	    break;
14054
        	case 27:
14055
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1600:5: TFF_TOK
14056
        	    {
14057
        	         MATCHT(TFF_TOK, &FOLLOW_TFF_TOK_in_anything4313);
14058
        	        if  (HASEXCEPTION())
14059
        	        {
14060
        	            goto ruleanythingEx;
14061
        	        }
14062
14063
14064
        	    }
14065
        	    break;
14066
        	case 28:
14067
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1601:5: TYPE_TOK
14068
        	    {
14069
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_anything4319);
14070
        	        if  (HASEXCEPTION())
14071
        	        {
14072
        	            goto ruleanythingEx;
14073
        	        }
14074
14075
14076
        	    }
14077
        	    break;
14078
        	case 29:
14079
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1602:5: INCLUDE_TOK
14080
        	    {
14081
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_anything4325);
14082
        	        if  (HASEXCEPTION())
14083
        	        {
14084
        	            goto ruleanythingEx;
14085
        	        }
14086
14087
14088
        	    }
14089
        	    break;
14090
3
        	case 30:
14091
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1603:5: DISTINCT_OBJECT
14092
        	    {
14093
3
        	         MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_anything4331);
14094
3
        	        if  (HASEXCEPTION())
14095
        	        {
14096
        	            goto ruleanythingEx;
14097
        	        }
14098
14099
14100
        	    }
14101
3
        	    break;
14102
31
        	case 31:
14103
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1604:5: UPPER_WORD
14104
        	    {
14105
31
        	         MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_anything4337);
14106
31
        	        if  (HASEXCEPTION())
14107
        	        {
14108
        	            goto ruleanythingEx;
14109
        	        }
14110
14111
14112
        	    }
14113
31
        	    break;
14114
150
        	case 32:
14115
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1605:5: LOWER_WORD
14116
        	    {
14117
150
        	         MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_anything4343);
14118
150
        	        if  (HASEXCEPTION())
14119
        	        {
14120
        	            goto ruleanythingEx;
14121
        	        }
14122
14123
14124
        	    }
14125
150
        	    break;
14126
        	case 33:
14127
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1606:5: LOWER_WORD_SINGLE_QUOTED
14128
        	    {
14129
        	         MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349);
14130
        	        if  (HASEXCEPTION())
14131
        	        {
14132
        	            goto ruleanythingEx;
14133
        	        }
14134
14135
14136
        	    }
14137
        	    break;
14138
6
        	case 34:
14139
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1607:5: SINGLE_QUOTED
14140
        	    {
14141
6
        	         MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_anything4355);
14142
6
        	        if  (HASEXCEPTION())
14143
        	        {
14144
        	            goto ruleanythingEx;
14145
        	        }
14146
14147
14148
        	    }
14149
6
        	    break;
14150
15
        	case 35:
14151
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1608:5: NUMBER
14152
        	    {
14153
15
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_anything4361);
14154
15
        	        if  (HASEXCEPTION())
14155
        	        {
14156
        	            goto ruleanythingEx;
14157
        	        }
14158
14159
14160
        	    }
14161
15
        	    break;
14162
6
        	case 36:
14163
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1609:5: DEFINED_SYMBOL
14164
        	    {
14165
6
        	         MATCHT(DEFINED_SYMBOL, &FOLLOW_DEFINED_SYMBOL_in_anything4367);
14166
6
        	        if  (HASEXCEPTION())
14167
        	        {
14168
        	            goto ruleanythingEx;
14169
        	        }
14170
14171
14172
        	    }
14173
6
        	    break;
14174
14175
            }
14176
        }
14177
    }
14178
14179
    // This is where rules clean up and exit
14180
    //
14181
439
    goto ruleanythingEx; /* Prevent compiler warnings */
14182
439
    ruleanythingEx: ;
14183
14184
439
            if (HASEXCEPTION())
14185
            {
14186
                PREPORTERROR();
14187
                PRECOVER();
14188
            }
14189
439
    return ;
14190
}
14191
/* $ANTLR end anything */
14192
14193
/**
14194
 * $ANTLR start unquotedFileName
14195
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1700:1: unquotedFileName[std::string& name] : (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED ) ;
14196
 */
14197
static void
14198
7
unquotedFileName(pTptpParser ctx, std::string& name)
14199
{
14200
    pANTLR3_COMMON_TOKEN    s;
14201
14202
    /* Initialize rule variables
14203
     */
14204
14205
7
    s       = NULL;
14206
14207
    {
14208
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1701:2: ( (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED ) )
14209
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1701:4: (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED )
14210
        {
14211
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1701:4: (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED )
14212
            {
14213
7
                int alt85=2;
14214
7
                switch ( LA(1) )
14215
                {
14216
                case LOWER_WORD_SINGLE_QUOTED:
14217
                	{
14218
                		alt85=1;
14219
                	}
14220
                    break;
14221
7
                case SINGLE_QUOTED:
14222
                	{
14223
7
                		alt85=2;
14224
                	}
14225
7
                    break;
14226
14227
                default:
14228
                    CONSTRUCTEX();
14229
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14230
                    EXCEPTION->message      = (void *)"";
14231
                    EXCEPTION->decisionNum  = 85;
14232
                    EXCEPTION->state        = 0;
14233
14234
14235
                    goto ruleunquotedFileNameEx;
14236
14237
                }
14238
14239
7
                switch (alt85)
14240
                {
14241
            	case 1:
14242
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1701:5: s= LOWER_WORD_SINGLE_QUOTED
14243
            	    {
14244
            	        s = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047);
14245
            	        if  (HASEXCEPTION())
14246
            	        {
14247
            	            goto ruleunquotedFileNameEx;
14248
            	        }
14249
14250
14251
            	    }
14252
            	    break;
14253
7
            	case 2:
14254
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1701:34: s= SINGLE_QUOTED
14255
            	    {
14256
7
            	        s = (pANTLR3_COMMON_TOKEN) MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053);
14257
7
            	        if  (HASEXCEPTION())
14258
            	        {
14259
            	            goto ruleunquotedFileNameEx;
14260
            	        }
14261
14262
14263
            	    }
14264
7
            	    break;
14265
14266
                }
14267
            }
14268
14269
            {
14270
7
                 name = AntlrInput::tokenText(s);
14271
7
                      name = name.substr(1, name.size() - 2 );
14272
14273
            }
14274
14275
14276
        }
14277
14278
    }
14279
14280
    // This is where rules clean up and exit
14281
    //
14282
7
    goto ruleunquotedFileNameEx; /* Prevent compiler warnings */
14283
7
    ruleunquotedFileNameEx: ;
14284
14285
7
            if (HASEXCEPTION())
14286
            {
14287
                PREPORTERROR();
14288
                PRECOVER();
14289
            }
14290
7
    return ;
14291
}
14292
/* $ANTLR end unquotedFileName */
14293
14294
/**
14295
 * $ANTLR start nameN
14296
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1707:1: nameN[std::string& name] : ( atomicWord[name] | NUMBER );
14297
 */
14298
static void
14299
2065
nameN(pTptpParser ctx, std::string& name)
14300
{
14301
    pANTLR3_COMMON_TOKEN    NUMBER9;
14302
14303
    /* Initialize rule variables
14304
     */
14305
14306
2065
    NUMBER9       = NULL;
14307
14308
    {
14309
        {
14310
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1708:2: ( atomicWord[name] | NUMBER )
14311
14312
            ANTLR3_UINT32 alt86;
14313
14314
2065
            alt86=2;
14315
14316
2065
            switch ( LA(1) )
14317
            {
14318
2061
            case CNF_TOK:
14319
            case FOF_TOK:
14320
            case INCLUDE_TOK:
14321
            case LOWER_WORD:
14322
            case LOWER_WORD_SINGLE_QUOTED:
14323
            case SINGLE_QUOTED:
14324
            case TFF_TOK:
14325
            case THF_TOK:
14326
            case TYPE_TOK:
14327
            	{
14328
2061
            		alt86=1;
14329
            	}
14330
2061
                break;
14331
4
            case NUMBER:
14332
            	{
14333
4
            		alt86=2;
14334
            	}
14335
4
                break;
14336
14337
            default:
14338
                CONSTRUCTEX();
14339
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14340
                EXCEPTION->message      = (void *)"";
14341
                EXCEPTION->decisionNum  = 86;
14342
                EXCEPTION->state        = 0;
14343
14344
14345
                goto rulenameNEx;
14346
14347
            }
14348
14349
2065
            switch (alt86)
14350
            {
14351
2061
        	case 1:
14352
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1708:4: atomicWord[name]
14353
        	    {
14354
2061
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_nameN5072);
14355
2061
        	        atomicWord(ctx, name);
14356
14357
2061
        	        FOLLOWPOP();
14358
2061
        	        if  (HASEXCEPTION())
14359
        	        {
14360
        	            goto rulenameNEx;
14361
        	        }
14362
14363
14364
        	    }
14365
2061
        	    break;
14366
4
        	case 2:
14367
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1709:4: NUMBER
14368
        	    {
14369
4
        	        NUMBER9 = (pANTLR3_COMMON_TOKEN) MATCHT(NUMBER, &FOLLOW_NUMBER_in_nameN5078);
14370
4
        	        if  (HASEXCEPTION())
14371
        	        {
14372
        	            goto rulenameNEx;
14373
        	        }
14374
14375
14376
        	        {
14377
4
        	             name = AntlrInput::tokenText(NUMBER9);
14378
        	        }
14379
14380
14381
        	    }
14382
4
        	    break;
14383
14384
            }
14385
        }
14386
    }
14387
14388
    // This is where rules clean up and exit
14389
    //
14390
2065
    goto rulenameNEx; /* Prevent compiler warnings */
14391
2065
    rulenameNEx: ;
14392
14393
2065
            if (HASEXCEPTION())
14394
            {
14395
                PREPORTERROR();
14396
                PRECOVER();
14397
            }
14398
2065
    return ;
14399
}
14400
/* $ANTLR end nameN */
14401
14402
/**
14403
 * $ANTLR start atomicWord
14404
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1713:1: atomicWord[std::string& name] : ( FOF_TOK | CNF_TOK | THF_TOK | TFF_TOK | TYPE_TOK | INCLUDE_TOK | LOWER_WORD | LOWER_WORD_SINGLE_QUOTED | SINGLE_QUOTED );
14405
 */
14406
static void
14407
11153
atomicWord(pTptpParser ctx, std::string& name)
14408
{
14409
    pANTLR3_COMMON_TOKEN    LOWER_WORD10;
14410
    pANTLR3_COMMON_TOKEN    LOWER_WORD_SINGLE_QUOTED11;
14411
    pANTLR3_COMMON_TOKEN    SINGLE_QUOTED12;
14412
14413
    /* Initialize rule variables
14414
     */
14415
14416
11153
    LOWER_WORD10       = NULL;
14417
11153
    LOWER_WORD_SINGLE_QUOTED11       = NULL;
14418
11153
    SINGLE_QUOTED12       = NULL;
14419
14420
    {
14421
        {
14422
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1714:2: ( FOF_TOK | CNF_TOK | THF_TOK | TFF_TOK | TYPE_TOK | INCLUDE_TOK | LOWER_WORD | LOWER_WORD_SINGLE_QUOTED | SINGLE_QUOTED )
14423
14424
            ANTLR3_UINT32 alt87;
14425
14426
11153
            alt87=9;
14427
14428
11153
            switch ( LA(1) )
14429
            {
14430
            case FOF_TOK:
14431
            	{
14432
            		alt87=1;
14433
            	}
14434
                break;
14435
3
            case CNF_TOK:
14436
            	{
14437
3
            		alt87=2;
14438
            	}
14439
3
                break;
14440
            case THF_TOK:
14441
            	{
14442
            		alt87=3;
14443
            	}
14444
                break;
14445
            case TFF_TOK:
14446
            	{
14447
            		alt87=4;
14448
            	}
14449
                break;
14450
            case TYPE_TOK:
14451
            	{
14452
            		alt87=5;
14453
            	}
14454
                break;
14455
2
            case INCLUDE_TOK:
14456
            	{
14457
2
            		alt87=6;
14458
            	}
14459
2
                break;
14460
11122
            case LOWER_WORD:
14461
            	{
14462
11122
            		alt87=7;
14463
            	}
14464
11122
                break;
14465
5
            case LOWER_WORD_SINGLE_QUOTED:
14466
            	{
14467
5
            		alt87=8;
14468
            	}
14469
5
                break;
14470
21
            case SINGLE_QUOTED:
14471
            	{
14472
21
            		alt87=9;
14473
            	}
14474
21
                break;
14475
14476
            default:
14477
                CONSTRUCTEX();
14478
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14479
                EXCEPTION->message      = (void *)"";
14480
                EXCEPTION->decisionNum  = 87;
14481
                EXCEPTION->state        = 0;
14482
14483
14484
                goto ruleatomicWordEx;
14485
14486
            }
14487
14488
11153
            switch (alt87)
14489
            {
14490
        	case 1:
14491
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1714:4: FOF_TOK
14492
        	    {
14493
        	         MATCHT(FOF_TOK, &FOLLOW_FOF_TOK_in_atomicWord5094);
14494
        	        if  (HASEXCEPTION())
14495
        	        {
14496
        	            goto ruleatomicWordEx;
14497
        	        }
14498
14499
14500
        	        {
14501
        	             name = "fof";
14502
        	        }
14503
14504
14505
        	    }
14506
        	    break;
14507
3
        	case 2:
14508
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1715:4: CNF_TOK
14509
        	    {
14510
3
        	         MATCHT(CNF_TOK, &FOLLOW_CNF_TOK_in_atomicWord5105);
14511
3
        	        if  (HASEXCEPTION())
14512
        	        {
14513
        	            goto ruleatomicWordEx;
14514
        	        }
14515
14516
14517
        	        {
14518
3
        	             name = "cnf";
14519
        	        }
14520
14521
14522
        	    }
14523
3
        	    break;
14524
        	case 3:
14525
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1716:4: THF_TOK
14526
        	    {
14527
        	         MATCHT(THF_TOK, &FOLLOW_THF_TOK_in_atomicWord5116);
14528
        	        if  (HASEXCEPTION())
14529
        	        {
14530
        	            goto ruleatomicWordEx;
14531
        	        }
14532
14533
14534
        	        {
14535
        	             name = "thf";
14536
        	        }
14537
14538
14539
        	    }
14540
        	    break;
14541
        	case 4:
14542
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1717:4: TFF_TOK
14543
        	    {
14544
        	         MATCHT(TFF_TOK, &FOLLOW_TFF_TOK_in_atomicWord5127);
14545
        	        if  (HASEXCEPTION())
14546
        	        {
14547
        	            goto ruleatomicWordEx;
14548
        	        }
14549
14550
14551
        	        {
14552
        	             name = "tff";
14553
        	        }
14554
14555
14556
        	    }
14557
        	    break;
14558
        	case 5:
14559
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1718:4: TYPE_TOK
14560
        	    {
14561
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_atomicWord5138);
14562
        	        if  (HASEXCEPTION())
14563
        	        {
14564
        	            goto ruleatomicWordEx;
14565
        	        }
14566
14567
14568
        	        {
14569
        	             name = "type";
14570
        	        }
14571
14572
14573
        	    }
14574
        	    break;
14575
2
        	case 6:
14576
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1719:4: INCLUDE_TOK
14577
        	    {
14578
2
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_atomicWord5148);
14579
2
        	        if  (HASEXCEPTION())
14580
        	        {
14581
        	            goto ruleatomicWordEx;
14582
        	        }
14583
14584
14585
        	        {
14586
2
        	             name = "include";
14587
        	        }
14588
14589
14590
        	    }
14591
2
        	    break;
14592
11122
        	case 7:
14593
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1720:4: LOWER_WORD
14594
        	    {
14595
11122
        	        LOWER_WORD10 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_atomicWord5155);
14596
11122
        	        if  (HASEXCEPTION())
14597
        	        {
14598
        	            goto ruleatomicWordEx;
14599
        	        }
14600
14601
14602
        	        {
14603
11122
        	             name = AntlrInput::tokenText(LOWER_WORD10);
14604
        	        }
14605
14606
14607
        	    }
14608
11122
        	    break;
14609
5
        	case 8:
14610
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1721:4: LOWER_WORD_SINGLE_QUOTED
14611
        	    {
14612
5
        	        LOWER_WORD_SINGLE_QUOTED11 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163);
14613
5
        	        if  (HASEXCEPTION())
14614
        	        {
14615
        	            goto ruleatomicWordEx;
14616
        	        }
14617
14618
14619
        	        {
14620
        	             /* strip off the quotes */
14621
5
        	                  name = AntlrInput::tokenTextSubstr(LOWER_WORD_SINGLE_QUOTED11, 1 ,
14622
5
        	                                                     (LOWER_WORD_SINGLE_QUOTED11->stop - LOWER_WORD_SINGLE_QUOTED11->start) - 1);
14623
14624
        	        }
14625
14626
14627
        	    }
14628
5
        	    break;
14629
21
        	case 9:
14630
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-09-16/src/parser/tptp/Tptp.g:1726:4: SINGLE_QUOTED
14631
        	    {
14632
21
        	        SINGLE_QUOTED12 = (pANTLR3_COMMON_TOKEN) MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_atomicWord5175);
14633
21
        	        if  (HASEXCEPTION())
14634
        	        {
14635
        	            goto ruleatomicWordEx;
14636
        	        }
14637
14638
14639
        	        {
14640
21
        	            name = AntlrInput::tokenText(SINGLE_QUOTED12);
14641
        	        }
14642
14643
14644
        	    }
14645
21
        	    break;
14646
14647
            }
14648
        }
14649
    }
14650
14651
    // This is where rules clean up and exit
14652
    //
14653
11153
    goto ruleatomicWordEx; /* Prevent compiler warnings */
14654
11153
    ruleatomicWordEx: ;
14655
14656
11153
            if (HASEXCEPTION())
14657
            {
14658
                PREPORTERROR();
14659
                PRECOVER();
14660
            }
14661
11153
    return ;
14662
29562
}
14663
/* $ANTLR end atomicWord */
14664
/* End of parsing rules
14665
 * ==============================================
14666
 */
14667
14668
/* ==============================================
14669
 * Syntactic predicates
14670
 */
14671
/* End of syntactic predicates
14672
 * ==============================================
14673
 */
14674
14675
14676
14677
14678
14679
14680
/* End of code
14681
 * =============================================================================
14682
 */