GCC Code Coverage Report
Directory: . Exec Total Coverage
File: build-coverage/src/parser/tptp/TptpParser.c Lines: 3075 4840 63.5 %
Date: 2021-08-01 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-08-01/src/parser/tptp/Tptp.g
5
 *     -                            On : 2021-08-01 01:05:12
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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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, /* cnf == */ true, true);
2405
2406
85
        	        }
2407
2408
2409
        	    }
2410
85
        	    break;
2411
75
        	case 2:
2412
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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, /* cnf == */ false, true);
2606
2607
75
        	        }
2608
2609
2610
        	    }
2611
75
        	    break;
2612
210
        	case 3:
2613
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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, /* cnf == */ false, true);
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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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-08-01/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(
3137
        	        	                        fr, aexpr, /* cnf == */ false, true);
3138
3139
1010
        	        	        }
3140
3141
3142
        	        	    }
3143
1010
        	        	    break;
3144
3145
        	            }
3146
        	        }
3147
3148
1315
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand419);
3149
1315
        	        if  (HASEXCEPTION())
3150
        	        {
3151
        	            goto ruleparseCommandEx;
3152
        	        }
3153
3154
3155
1315
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand421);
3156
1315
        	        if  (HASEXCEPTION())
3157
        	        {
3158
        	            goto ruleparseCommandEx;
3159
1315
        	        }
3160
3161
3162
        	    }
3163
1315
        	    break;
3164
7
        	case 5:
3165
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:225:5: INCLUDE_TOK LPAREN_TOK unquotedFileName[name] ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )? RPAREN_TOK DOT_TOK
3166
        	    {
3167
7
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_parseCommand427);
3168
7
        	        if  (HASEXCEPTION())
3169
        	        {
3170
        	            goto ruleparseCommandEx;
3171
        	        }
3172
3173
3174
7
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseCommand429);
3175
7
        	        if  (HASEXCEPTION())
3176
        	        {
3177
        	            goto ruleparseCommandEx;
3178
        	        }
3179
3180
3181
7
        	        FOLLOWPUSH(FOLLOW_unquotedFileName_in_parseCommand431);
3182
7
        	        unquotedFileName(ctx, name);
3183
3184
7
        	        FOLLOWPOP();
3185
7
        	        if  (HASEXCEPTION())
3186
        	        {
3187
        	            goto ruleparseCommandEx;
3188
        	        }
3189
3190
3191
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:226:5: ( COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK )?
3192
        	        {
3193
7
        	            int alt13=2;
3194
7
        	            switch ( LA(1) )
3195
        	            {
3196
3
        	                case COMMA_TOK:
3197
        	                	{
3198
3
        	                		alt13=1;
3199
        	                	}
3200
3
        	                    break;
3201
        	            }
3202
3203
7
        	            switch (alt13)
3204
        	            {
3205
3
        	        	case 1:
3206
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:226:7: COMMA_TOK LBRACK_TOK nameN[inclSymbol] ( COMMA_TOK nameN[inclSymbol] )* RBRACK_TOK
3207
        	        	    {
3208
3
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand440);
3209
3
        	        	        if  (HASEXCEPTION())
3210
        	        	        {
3211
        	        	            goto ruleparseCommandEx;
3212
        	        	        }
3213
3214
3215
3
        	        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_parseCommand442);
3216
3
        	        	        if  (HASEXCEPTION())
3217
        	        	        {
3218
        	        	            goto ruleparseCommandEx;
3219
        	        	        }
3220
3221
3222
3
        	        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand444);
3223
3
        	        	        nameN(ctx, inclSymbol);
3224
3225
3
        	        	        FOLLOWPOP();
3226
3
        	        	        if  (HASEXCEPTION())
3227
        	        	        {
3228
        	        	            goto ruleparseCommandEx;
3229
        	        	        }
3230
3231
3232
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:227:7: ( COMMA_TOK nameN[inclSymbol] )*
3233
3234
        	        	        for (;;)
3235
        	        	        {
3236
6
        	        	            int alt12=2;
3237
6
        	        	            switch ( LA(1) )
3238
        	        	            {
3239
3
        	        	            case COMMA_TOK:
3240
        	        	            	{
3241
3
        	        	            		alt12=1;
3242
        	        	            	}
3243
3
        	        	                break;
3244
3245
        	        	            }
3246
3247
6
        	        	            switch (alt12)
3248
        	        	            {
3249
3
        	        	        	case 1:
3250
        	        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:227:9: COMMA_TOK nameN[inclSymbol]
3251
        	        	        	    {
3252
3
        	        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_parseCommand455);
3253
3
        	        	        	        if  (HASEXCEPTION())
3254
        	        	        	        {
3255
        	        	        	            goto ruleparseCommandEx;
3256
        	        	        	        }
3257
3258
3259
3
        	        	        	        FOLLOWPUSH(FOLLOW_nameN_in_parseCommand457);
3260
3
        	        	        	        nameN(ctx, inclSymbol);
3261
3262
3
        	        	        	        FOLLOWPOP();
3263
3
        	        	        	        if  (HASEXCEPTION())
3264
        	        	        	        {
3265
        	        	        	            goto ruleparseCommandEx;
3266
        	        	        	        }
3267
3268
3269
        	        	        	    }
3270
3
        	        	        	    break;
3271
3272
3
        	        	        	default:
3273
3
        	        	        	    goto loop12;	/* break out of the loop */
3274
        	        	        	    break;
3275
        	        	            }
3276
3
        	        	        }
3277
3
        	        	        loop12: ; /* Jump out to here if this rule does not match */
3278
3279
3280
3
        	        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_parseCommand463);
3281
3
        	        	        if  (HASEXCEPTION())
3282
        	        	        {
3283
        	        	            goto ruleparseCommandEx;
3284
3
        	        	        }
3285
3286
3287
        	        	    }
3288
3
        	        	    break;
3289
3290
        	            }
3291
        	        }
3292
3293
7
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseCommand472);
3294
7
        	        if  (HASEXCEPTION())
3295
        	        {
3296
        	            goto ruleparseCommandEx;
3297
        	        }
3298
3299
3300
7
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_parseCommand474);
3301
7
        	        if  (HASEXCEPTION())
3302
        	        {
3303
        	            goto ruleparseCommandEx;
3304
        	        }
3305
3306
3307
        	        {
3308
        	             /* TODO - implement symbol filtering for file inclusion.
3309
        	                   * the following removes duplicates and "all", just need to pass it
3310
        	                   * through to includeFile() and implement it there.
3311
        	                  std::sort(inclArgs.begin(), inclArgs.end());
3312
        	                  std::vector<std::string>::iterator it =
3313
        	                    std::unique(inclArgs.begin(), inclArgs.end());
3314
        	                  inclArgs.resize(std::distance(inclArgs.begin(), it));
3315
        	                  it = std::lower_bound(inclArgs.begin(), inclArgs.end(), std::string("all"));
3316
        	                  if(it != inclArgs.end() && *it == "all") {
3317
        	                    inclArgs.erase(it);
3318
        	                  }
3319
        	                  */
3320
7
        	                  PARSER_STATE->includeFile(name /* , inclArgs */ );
3321
        	                  // The command of the included file will be produced at the next parseCommand() call
3322
7
        	                  cmd = new EmptyCommand("include::" + name);
3323
3324
        	        }
3325
3326
3327
        	    }
3328
7
        	    break;
3329
41
        	case 6:
3330
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:245:5: EOF
3331
        	    {
3332
41
        	         MATCHT(EOF, &FOLLOW_EOF_in_parseCommand486);
3333
41
        	        if  (HASEXCEPTION())
3334
        	        {
3335
        	            goto ruleparseCommandEx;
3336
        	        }
3337
3338
3339
        	        {
3340
3341
41
        	                  CommandSequence* seq = new CommandSequence();
3342
        	                  // assert that all distinct constants are distinct
3343
82
        	                  cvc5::api::Term aexpr = PARSER_STATE->getAssertionDistinctConstants();
3344
41
        	                  if( !aexpr.isNull() )
3345
        	                  {
3346
3
        	                    seq->addCommand(new AssertCommand(aexpr, false));
3347
        	                  }
3348
3349
82
        	                  std::string filename = PARSER_STATE->getInput()->getInputStreamName();
3350
41
        	                  size_t i = filename.find_last_of('/');
3351
41
        	                  if(i != std::string::npos) {
3352
        	                    filename = filename.substr(i + 1);
3353
        	                  }
3354
41
        	                  if(filename.substr(filename.length() - 2) == ".p") {
3355
41
        	                    filename = filename.substr(0, filename.length() - 2);
3356
        	                  }
3357
41
        	                  seq->addCommand(new SetInfoCommand("filename", filename));
3358
41
        	                  if(PARSER_STATE->hasConjecture()) {
3359
22
        	                    seq->addCommand(new QueryCommand(SOLVER->mkFalse()));
3360
        	                  } else {
3361
19
        	                    seq->addCommand(new CheckSatCommand());
3362
        	                  }
3363
41
        	                  PARSER_STATE->preemptCommand(seq);
3364
41
        	                  cmd = NULL;
3365
3366
41
        	        }
3367
3368
3369
        	    }
3370
41
        	    break;
3371
3372
            }
3373
        }
3374
    }
3375
3376
    // This is where rules clean up and exit
3377
    //
3378
1733
    goto ruleparseCommandEx; /* Prevent compiler warnings */
3379
1733
    ruleparseCommandEx: ;
3380
3381
1733
            if (HASEXCEPTION())
3382
            {
3383
                PREPORTERROR();
3384
                PRECOVER();
3385
            }
3386
3466
    return cmd;
3387
}
3388
/* $ANTLR end parseCommand */
3389
3390
/**
3391
 * $ANTLR start formulaRole
3392
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:275:1: formulaRole[cvc5::parser::Tptp::FormulaRole& role] : LOWER_WORD ;
3393
 */
3394
static void
3395
1311
formulaRole(pTptpParser ctx, cvc5::parser::Tptp::FormulaRole& role)
3396
{
3397
    pANTLR3_COMMON_TOKEN    LOWER_WORD1;
3398
3399
    /* Initialize rule variables
3400
     */
3401
3402
1311
    LOWER_WORD1       = NULL;
3403
3404
    {
3405
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:276:3: ( LOWER_WORD )
3406
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:276:5: LOWER_WORD
3407
        {
3408
1311
            LOWER_WORD1 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_formulaRole508);
3409
1311
            if  (HASEXCEPTION())
3410
            {
3411
                goto ruleformulaRoleEx;
3412
            }
3413
3414
3415
            {
3416
3417
2622
                      std::string r = AntlrInput::tokenText(LOWER_WORD1);
3418
1311
                      if      (r == "axiom")              role = Tptp::FR_AXIOM;
3419
191
                      else if (r == "hypothesis")         role = Tptp::FR_HYPOTHESIS;
3420
174
                      else if (r == "definition")         role = Tptp::FR_DEFINITION;
3421
58
                      else if (r == "assumption")         role = Tptp::FR_ASSUMPTION;
3422
55
                      else if (r == "lemma")              role = Tptp::FR_LEMMA;
3423
52
                      else if (r == "theorem")            role = Tptp::FR_THEOREM;
3424
49
                      else if (r == "negated_conjecture") role = Tptp::FR_NEGATED_CONJECTURE;
3425
31
                      else if (r == "conjecture")         role = Tptp::FR_CONJECTURE;
3426
9
                      else if (r == "unknown")            role = Tptp::FR_UNKNOWN;
3427
6
                      else if (r == "plain")              role = Tptp::FR_PLAIN;
3428
                      else if (r == "fi_domain")          role = Tptp::FR_FI_DOMAIN;
3429
                      else if (r == "fi_functor")         role = Tptp::FR_FI_FUNCTORS;
3430
                      else if (r == "fi_predicate")       role = Tptp::FR_FI_PREDICATES;
3431
                      else if (r == "type")               role = Tptp::FR_TYPE;
3432
                      else PARSER_STATE->parseError("Invalid formula role: " + r);
3433
3434
            }
3435
3436
3437
        }
3438
3439
    }
3440
3441
    // This is where rules clean up and exit
3442
    //
3443
1311
    goto ruleformulaRoleEx; /* Prevent compiler warnings */
3444
1311
    ruleformulaRoleEx: ;
3445
3446
1311
            if (HASEXCEPTION())
3447
            {
3448
                PREPORTERROR();
3449
                PRECOVER();
3450
            }
3451
1311
    return ;
3452
}
3453
/* $ANTLR end formulaRole */
3454
3455
/**
3456
 * $ANTLR start cnfFormula
3457
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:303:1: cnfFormula[cvc5::api::Term& expr] : ( LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK | cnfDisjunction[expr] );
3458
 */
3459
static void
3460
85
cnfFormula(pTptpParser ctx, cvc5::api::Term& expr)
3461
{
3462
    /* Initialize rule variables
3463
     */
3464
3465
    {
3466
        {
3467
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:304:3: ( LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK | cnfDisjunction[expr] )
3468
3469
            ANTLR3_UINT32 alt15;
3470
3471
85
            alt15=2;
3472
3473
85
            switch ( LA(1) )
3474
            {
3475
28
            case LPAREN_TOK:
3476
            	{
3477
28
            		alt15=1;
3478
            	}
3479
28
                break;
3480
57
            case AND_TOK:
3481
            case CNF_TOK:
3482
            case DISTINCT_OBJECT:
3483
            case FALSE_TOK:
3484
            case FOF_TOK:
3485
            case IMPLIES_TOK:
3486
            case INCLUDE_TOK:
3487
            case LOWER_WORD:
3488
            case LOWER_WORD_SINGLE_QUOTED:
3489
            case NOT_TOK:
3490
            case NUMBER:
3491
            case OR_TOK:
3492
            case SINGLE_QUOTED:
3493
            case TFF_TOK:
3494
            case THF_TOK:
3495
            case TRUE_TOK:
3496
            case TYPE_TOK:
3497
            case UPPER_WORD:
3498
            case 63:
3499
            case 64:
3500
            case 65:
3501
            case 66:
3502
            case 67:
3503
            case 68:
3504
            case 69:
3505
            case 70:
3506
            case 72:
3507
            case 73:
3508
            case 74:
3509
            case 76:
3510
            case 78:
3511
            case 79:
3512
            case 80:
3513
            case 81:
3514
            case 82:
3515
            case 83:
3516
            case 84:
3517
            case 85:
3518
            case 86:
3519
            case 87:
3520
            case 88:
3521
            case 90:
3522
            case 91:
3523
            case 92:
3524
            case 93:
3525
            case 94:
3526
            	{
3527
57
            		alt15=2;
3528
            	}
3529
57
                break;
3530
3531
            default:
3532
                CONSTRUCTEX();
3533
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3534
                EXCEPTION->message      = (void *)"";
3535
                EXCEPTION->decisionNum  = 15;
3536
                EXCEPTION->state        = 0;
3537
3538
3539
                goto rulecnfFormulaEx;
3540
3541
            }
3542
3543
85
            switch (alt15)
3544
            {
3545
28
        	case 1:
3546
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:304:5: LPAREN_TOK cnfDisjunction[expr] RPAREN_TOK
3547
        	    {
3548
28
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_cnfFormula536);
3549
28
        	        if  (HASEXCEPTION())
3550
        	        {
3551
        	            goto rulecnfFormulaEx;
3552
        	        }
3553
3554
3555
28
        	        FOLLOWPUSH(FOLLOW_cnfDisjunction_in_cnfFormula538);
3556
28
        	        cnfDisjunction(ctx, expr);
3557
3558
28
        	        FOLLOWPOP();
3559
28
        	        if  (HASEXCEPTION())
3560
        	        {
3561
        	            goto rulecnfFormulaEx;
3562
        	        }
3563
3564
3565
28
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_cnfFormula541);
3566
28
        	        if  (HASEXCEPTION())
3567
        	        {
3568
        	            goto rulecnfFormulaEx;
3569
        	        }
3570
3571
3572
        	    }
3573
28
        	    break;
3574
57
        	case 2:
3575
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:305:5: cnfDisjunction[expr]
3576
        	    {
3577
57
        	        FOLLOWPUSH(FOLLOW_cnfDisjunction_in_cnfFormula547);
3578
57
        	        cnfDisjunction(ctx, expr);
3579
3580
57
        	        FOLLOWPOP();
3581
57
        	        if  (HASEXCEPTION())
3582
        	        {
3583
        	            goto rulecnfFormulaEx;
3584
        	        }
3585
3586
3587
        	    }
3588
57
        	    break;
3589
3590
            }
3591
        }
3592
    }
3593
3594
    // This is where rules clean up and exit
3595
    //
3596
85
    goto rulecnfFormulaEx; /* Prevent compiler warnings */
3597
85
    rulecnfFormulaEx: ;
3598
3599
85
            if (HASEXCEPTION())
3600
            {
3601
                PREPORTERROR();
3602
                PRECOVER();
3603
            }
3604
85
    return ;
3605
}
3606
/* $ANTLR end cnfFormula */
3607
3608
/**
3609
 * $ANTLR start cnfDisjunction
3610
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:308:1: cnfDisjunction[cvc5::api::Term& expr] : cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )* ;
3611
 */
3612
static void
3613
85
cnfDisjunction(pTptpParser ctx, cvc5::api::Term& expr)
3614
{
3615
3616
170
      std::vector<api::Term> args;
3617
3618
    /* Initialize rule variables
3619
     */
3620
3621
    {
3622
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:312:3: ( cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )* )
3623
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:312:5: cnfLiteral[expr] ( OR_TOK cnfLiteral[expr] )*
3624
        {
3625
85
            FOLLOWPUSH(FOLLOW_cnfLiteral_in_cnfDisjunction565);
3626
85
            cnfLiteral(ctx, expr);
3627
3628
85
            FOLLOWPOP();
3629
85
            if  (HASEXCEPTION())
3630
            {
3631
                goto rulecnfDisjunctionEx;
3632
            }
3633
3634
3635
            {
3636
85
                 args.push_back(expr);
3637
            }
3638
3639
3640
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:313:5: ( OR_TOK cnfLiteral[expr] )*
3641
3642
            for (;;)
3643
            {
3644
164
                int alt16=2;
3645
164
                switch ( LA(1) )
3646
                {
3647
79
                case OR_TOK:
3648
                	{
3649
79
                		alt16=1;
3650
                	}
3651
79
                    break;
3652
3653
                }
3654
3655
164
                switch (alt16)
3656
                {
3657
79
            	case 1:
3658
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:313:7: OR_TOK cnfLiteral[expr]
3659
            	    {
3660
79
            	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_cnfDisjunction576);
3661
79
            	        if  (HASEXCEPTION())
3662
            	        {
3663
            	            goto rulecnfDisjunctionEx;
3664
            	        }
3665
3666
3667
79
            	        FOLLOWPUSH(FOLLOW_cnfLiteral_in_cnfDisjunction578);
3668
79
            	        cnfLiteral(ctx, expr);
3669
3670
79
            	        FOLLOWPOP();
3671
79
            	        if  (HASEXCEPTION())
3672
            	        {
3673
            	            goto rulecnfDisjunctionEx;
3674
            	        }
3675
3676
3677
            	        {
3678
79
            	             args.push_back(expr);
3679
            	        }
3680
3681
3682
            	    }
3683
79
            	    break;
3684
3685
85
            	default:
3686
85
            	    goto loop16;	/* break out of the loop */
3687
            	    break;
3688
                }
3689
79
            }
3690
85
            loop16: ; /* Jump out to here if this rule does not match */
3691
3692
3693
            {
3694
85
                 if(args.size() > 1) {
3695
45
                        expr = MK_TERM(api::OR, args);
3696
                      } // else its already in the expr
3697
3698
            }
3699
3700
3701
        }
3702
3703
    }
3704
3705
    // This is where rules clean up and exit
3706
    //
3707
85
    goto rulecnfDisjunctionEx; /* Prevent compiler warnings */
3708
85
    rulecnfDisjunctionEx: ;
3709
3710
85
            if (HASEXCEPTION())
3711
            {
3712
                PREPORTERROR();
3713
                PRECOVER();
3714
            }
3715
170
    return ;
3716
}
3717
/* $ANTLR end cnfDisjunction */
3718
3719
/**
3720
 * $ANTLR start cnfLiteral
3721
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:320:1: cnfLiteral[cvc5::api::Term& expr] : ( atomicFormula[expr] | NOT_TOK atomicFormula[expr] );
3722
 */
3723
static void
3724
164
cnfLiteral(pTptpParser ctx, cvc5::api::Term& expr)
3725
{
3726
    /* Initialize rule variables
3727
     */
3728
3729
    {
3730
        {
3731
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:321:3: ( atomicFormula[expr] | NOT_TOK atomicFormula[expr] )
3732
3733
            ANTLR3_UINT32 alt17;
3734
3735
164
            alt17=2;
3736
3737
164
            switch ( LA(1) )
3738
            {
3739
119
            case AND_TOK:
3740
            case CNF_TOK:
3741
            case DISTINCT_OBJECT:
3742
            case FALSE_TOK:
3743
            case FOF_TOK:
3744
            case IMPLIES_TOK:
3745
            case INCLUDE_TOK:
3746
            case LOWER_WORD:
3747
            case LOWER_WORD_SINGLE_QUOTED:
3748
            case NUMBER:
3749
            case OR_TOK:
3750
            case SINGLE_QUOTED:
3751
            case TFF_TOK:
3752
            case THF_TOK:
3753
            case TRUE_TOK:
3754
            case TYPE_TOK:
3755
            case UPPER_WORD:
3756
            case 63:
3757
            case 64:
3758
            case 65:
3759
            case 66:
3760
            case 67:
3761
            case 68:
3762
            case 69:
3763
            case 70:
3764
            case 72:
3765
            case 73:
3766
            case 74:
3767
            case 76:
3768
            case 78:
3769
            case 79:
3770
            case 80:
3771
            case 81:
3772
            case 82:
3773
            case 83:
3774
            case 84:
3775
            case 85:
3776
            case 86:
3777
            case 87:
3778
            case 88:
3779
            case 90:
3780
            case 91:
3781
            case 92:
3782
            case 93:
3783
            case 94:
3784
            	{
3785
119
            		alt17=1;
3786
            	}
3787
119
                break;
3788
45
            case NOT_TOK:
3789
            	{
3790
45
            		alt17=2;
3791
            	}
3792
45
                break;
3793
3794
            default:
3795
                CONSTRUCTEX();
3796
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3797
                EXCEPTION->message      = (void *)"";
3798
                EXCEPTION->decisionNum  = 17;
3799
                EXCEPTION->state        = 0;
3800
3801
3802
                goto rulecnfLiteralEx;
3803
3804
            }
3805
3806
164
            switch (alt17)
3807
            {
3808
119
        	case 1:
3809
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:321:5: atomicFormula[expr]
3810
        	    {
3811
119
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_cnfLiteral602);
3812
119
        	        atomicFormula(ctx, expr);
3813
3814
119
        	        FOLLOWPOP();
3815
119
        	        if  (HASEXCEPTION())
3816
        	        {
3817
        	            goto rulecnfLiteralEx;
3818
        	        }
3819
3820
3821
        	    }
3822
119
        	    break;
3823
45
        	case 2:
3824
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:322:5: NOT_TOK atomicFormula[expr]
3825
        	    {
3826
45
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_cnfLiteral609);
3827
45
        	        if  (HASEXCEPTION())
3828
        	        {
3829
        	            goto rulecnfLiteralEx;
3830
        	        }
3831
3832
3833
45
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_cnfLiteral611);
3834
45
        	        atomicFormula(ctx, expr);
3835
3836
45
        	        FOLLOWPOP();
3837
45
        	        if  (HASEXCEPTION())
3838
        	        {
3839
        	            goto rulecnfLiteralEx;
3840
        	        }
3841
3842
3843
        	        {
3844
45
        	             expr = MK_TERM(api::NOT, expr);
3845
        	        }
3846
3847
3848
        	    }
3849
45
        	    break;
3850
3851
            }
3852
        }
3853
    }
3854
3855
    // This is where rules clean up and exit
3856
    //
3857
164
    goto rulecnfLiteralEx; /* Prevent compiler warnings */
3858
164
    rulecnfLiteralEx: ;
3859
3860
164
            if (HASEXCEPTION())
3861
            {
3862
                PREPORTERROR();
3863
                PRECOVER();
3864
            }
3865
164
    return ;
3866
}
3867
/* $ANTLR end cnfLiteral */
3868
3869
/**
3870
 * $ANTLR start atomicFormula
3871
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:325: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] );
3872
 */
3873
static void
3874
523
atomicFormula(pTptpParser ctx, cvc5::api::Term& expr)
3875
{
3876
3877
1046
      cvc5::api::Term expr2;
3878
1046
      std::string name;
3879
1046
      std::vector<cvc5::api::Term> args;
3880
      bool equal;
3881
1046
      ParseOp p;
3882
3883
    /* Initialize rule variables
3884
     */
3885
3886
    {
3887
        {
3888
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:333: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] )
3889
3890
            ANTLR3_UINT32 alt22;
3891
3892
523
            alt22=5;
3893
3894
523
            switch ( LA(1) )
3895
            {
3896
447
            case CNF_TOK:
3897
            case FOF_TOK:
3898
            case INCLUDE_TOK:
3899
            case LOWER_WORD:
3900
            case LOWER_WORD_SINGLE_QUOTED:
3901
            case SINGLE_QUOTED:
3902
            case TFF_TOK:
3903
            case THF_TOK:
3904
            case TYPE_TOK:
3905
            	{
3906
447
            		alt22=1;
3907
            	}
3908
447
                break;
3909
2
            case 63:
3910
            case 64:
3911
            case 66:
3912
            case 79:
3913
            case 80:
3914
            case 81:
3915
            case 82:
3916
            case 83:
3917
            case 84:
3918
            case 85:
3919
            case 86:
3920
            case 87:
3921
            case 88:
3922
            case 90:
3923
            case 91:
3924
            case 92:
3925
            case 93:
3926
            case 94:
3927
            	{
3928
2
            		alt22=2;
3929
            	}
3930
2
                break;
3931
37
            case DISTINCT_OBJECT:
3932
            case NUMBER:
3933
            case UPPER_WORD:
3934
            case 72:
3935
            case 76:
3936
            case 78:
3937
            	{
3938
37
            		alt22=3;
3939
            	}
3940
37
                break;
3941
25
            case AND_TOK:
3942
            case IMPLIES_TOK:
3943
            case OR_TOK:
3944
            case 65:
3945
            case 67:
3946
            case 68:
3947
            case 69:
3948
            case 70:
3949
            case 73:
3950
            case 74:
3951
            	{
3952
25
            		alt22=4;
3953
            	}
3954
25
                break;
3955
12
            case FALSE_TOK:
3956
            case TRUE_TOK:
3957
            	{
3958
12
            		alt22=5;
3959
            	}
3960
12
                break;
3961
3962
            default:
3963
                CONSTRUCTEX();
3964
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
3965
                EXCEPTION->message      = (void *)"";
3966
                EXCEPTION->decisionNum  = 22;
3967
                EXCEPTION->state        = 0;
3968
3969
3970
                goto ruleatomicFormulaEx;
3971
3972
            }
3973
3974
523
            switch (alt22)
3975
            {
3976
447
        	case 1:
3977
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:333:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ( equalOp[equal] term[expr2] |)
3978
        	    {
3979
447
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_atomicFormula633);
3980
447
        	        atomicWord(ctx, p.d_name);
3981
3982
447
        	        FOLLOWPOP();
3983
447
        	        if  (HASEXCEPTION())
3984
        	        {
3985
        	            goto ruleatomicFormulaEx;
3986
        	        }
3987
3988
3989
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:333:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
3990
        	        {
3991
447
        	            int alt18=2;
3992
447
        	            switch ( LA(1) )
3993
        	            {
3994
370
        	                case LPAREN_TOK:
3995
        	                	{
3996
370
        	                		alt18=1;
3997
        	                	}
3998
370
        	                    break;
3999
        	            }
4000
4001
447
        	            switch (alt18)
4002
        	            {
4003
370
        	        	case 1:
4004
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:333:27: LPAREN_TOK arguments[args] RPAREN_TOK
4005
        	        	    {
4006
370
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula637);
4007
370
        	        	        if  (HASEXCEPTION())
4008
        	        	        {
4009
        	        	            goto ruleatomicFormulaEx;
4010
        	        	        }
4011
4012
4013
370
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula639);
4014
370
        	        	        arguments(ctx, args);
4015
4016
370
        	        	        FOLLOWPOP();
4017
370
        	        	        if  (HASEXCEPTION())
4018
        	        	        {
4019
        	        	            goto ruleatomicFormulaEx;
4020
        	        	        }
4021
4022
4023
370
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula642);
4024
370
        	        	        if  (HASEXCEPTION())
4025
        	        	        {
4026
        	        	            goto ruleatomicFormulaEx;
4027
        	        	        }
4028
4029
4030
        	        	    }
4031
370
        	        	    break;
4032
4033
        	            }
4034
        	        }
4035
4036
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:334:5: ( equalOp[equal] term[expr2] |)
4037
        	        {
4038
447
        	            int alt19=2;
4039
447
        	            switch ( LA(1) )
4040
        	            {
4041
28
        	            case DISEQUAL_TOK:
4042
        	            case EQUAL_TOK:
4043
        	            	{
4044
28
        	            		alt19=1;
4045
        	            	}
4046
28
        	                break;
4047
419
        	            case EOF:
4048
        	            case AND_TOK:
4049
        	            case COMMA_TOK:
4050
        	            case IFF_TOK:
4051
        	            case IMPLIES_TOK:
4052
        	            case OR_TOK:
4053
        	            case REVAND_TOK:
4054
        	            case REVIFF_TOK:
4055
        	            case REVIMPLIES_TOK:
4056
        	            case REVOR_TOK:
4057
        	            case RPAREN_TOK:
4058
        	            	{
4059
419
        	            		alt19=2;
4060
        	            	}
4061
419
        	                break;
4062
4063
        	            default:
4064
        	                CONSTRUCTEX();
4065
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4066
        	                EXCEPTION->message      = (void *)"";
4067
        	                EXCEPTION->decisionNum  = 19;
4068
        	                EXCEPTION->state        = 0;
4069
4070
4071
        	                goto ruleatomicFormulaEx;
4072
4073
        	            }
4074
4075
447
        	            switch (alt19)
4076
        	            {
4077
28
        	        	case 1:
4078
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:334:7: equalOp[equal] term[expr2]
4079
        	        	    {
4080
28
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula652);
4081
28
        	        	        equalOp(ctx, equal);
4082
4083
28
        	        	        FOLLOWPOP();
4084
28
        	        	        if  (HASEXCEPTION())
4085
        	        	        {
4086
        	        	            goto ruleatomicFormulaEx;
4087
        	        	        }
4088
4089
4090
28
        	        	        FOLLOWPUSH(FOLLOW_term_in_atomicFormula655);
4091
28
        	        	        term(ctx, expr2);
4092
4093
28
        	        	        FOLLOWPOP();
4094
28
        	        	        if  (HASEXCEPTION())
4095
        	        	        {
4096
        	        	            goto ruleatomicFormulaEx;
4097
        	        	        }
4098
4099
4100
        	        	        {
4101
        	        	             // equality/disequality between terms
4102
49
        	        	                    expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4103
21
        	        	                                        : PARSER_STATE->applyParseOp(p, args);
4104
28
        	        	                    args.clear();
4105
28
        	        	                    args.push_back(expr);
4106
28
        	        	                    args.push_back(expr2);
4107
56
        	        	                    ParseOp p1(api::EQUAL);
4108
28
        	        	                    expr = PARSER_STATE->applyParseOp(p1, args);
4109
28
        	        	                    if (!equal)
4110
        	        	                    {
4111
13
        	        	                      expr = MK_TERM(api::NOT, expr);
4112
        	        	                    }
4113
4114
28
        	        	        }
4115
4116
4117
        	        	    }
4118
28
        	        	    break;
4119
419
        	        	case 2:
4120
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:348:7:
4121
        	        	    {
4122
        	        	        {
4123
        	        	             // predicate
4124
419
        	        	                    p.d_type = SOLVER->getBooleanSort();
4125
768
        	        	                    expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4126
349
        	        	                                        : PARSER_STATE->applyParseOp(p, args);
4127
4128
        	        	        }
4129
4130
4131
        	        	    }
4132
419
        	        	    break;
4133
4134
        	            }
4135
        	        }
4136
4137
        	    }
4138
447
        	    break;
4139
2
        	case 2:
4140
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:354:5: definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )
4141
        	    {
4142
2
        	        FOLLOWPUSH(FOLLOW_definedFun_in_atomicFormula684);
4143
2
        	        definedFun(ctx, p);
4144
4145
2
        	        FOLLOWPOP();
4146
2
        	        if  (HASEXCEPTION())
4147
        	        {
4148
        	            goto ruleatomicFormulaEx;
4149
        	        }
4150
4151
4152
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:355:5: ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )
4153
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:356:6: LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2]
4154
        	        {
4155
2
        	             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula698);
4156
2
        	            if  (HASEXCEPTION())
4157
        	            {
4158
        	                goto ruleatomicFormulaEx;
4159
        	            }
4160
4161
4162
2
        	            FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula700);
4163
2
        	            arguments(ctx, args);
4164
4165
2
        	            FOLLOWPOP();
4166
2
        	            if  (HASEXCEPTION())
4167
        	            {
4168
        	                goto ruleatomicFormulaEx;
4169
        	            }
4170
4171
4172
2
        	             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula703);
4173
2
        	            if  (HASEXCEPTION())
4174
        	            {
4175
        	                goto ruleatomicFormulaEx;
4176
        	            }
4177
4178
4179
2
        	            FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula710);
4180
2
        	            equalOp(ctx, equal);
4181
4182
2
        	            FOLLOWPOP();
4183
2
        	            if  (HASEXCEPTION())
4184
        	            {
4185
        	                goto ruleatomicFormulaEx;
4186
        	            }
4187
4188
4189
2
        	            FOLLOWPUSH(FOLLOW_term_in_atomicFormula713);
4190
2
        	            term(ctx, expr2);
4191
4192
2
        	            FOLLOWPOP();
4193
2
        	            if  (HASEXCEPTION())
4194
        	            {
4195
        	                goto ruleatomicFormulaEx;
4196
        	            }
4197
4198
4199
        	            {
4200
4201
2
        	                       expr = PARSER_STATE->applyParseOp(p, args);
4202
2
        	                       args.clear();
4203
2
        	                       args.push_back(expr);
4204
2
        	                       args.push_back(expr2);
4205
4
        	                       ParseOp p1(api::EQUAL);
4206
2
        	                       expr = PARSER_STATE->applyParseOp(p1, args);
4207
2
        	                       if (!equal)
4208
        	                       {
4209
        	                         expr = MK_TERM(api::NOT, expr);
4210
        	                       }
4211
4212
        	            }
4213
4214
4215
2
        	        }
4216
4217
4218
        	    }
4219
2
        	    break;
4220
37
        	case 3:
4221
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:371:5: ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] ) ( equalOp[equal] term[expr2] )?
4222
        	    {
4223
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:371:5: ( simpleTerm[expr] | letTerm[expr] | conditionalTerm[expr] )
4224
        	        {
4225
37
        	            int alt20=3;
4226
37
        	            switch ( LA(1) )
4227
        	            {
4228
37
        	            case DISTINCT_OBJECT:
4229
        	            case NUMBER:
4230
        	            case UPPER_WORD:
4231
        	            	{
4232
37
        	            		alt20=1;
4233
        	            	}
4234
37
        	                break;
4235
        	            case 76:
4236
        	            case 78:
4237
        	            	{
4238
        	            		alt20=2;
4239
        	            	}
4240
        	                break;
4241
        	            case 72:
4242
        	            	{
4243
        	            		alt20=3;
4244
        	            	}
4245
        	                break;
4246
4247
        	            default:
4248
        	                CONSTRUCTEX();
4249
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4250
        	                EXCEPTION->message      = (void *)"";
4251
        	                EXCEPTION->decisionNum  = 20;
4252
        	                EXCEPTION->state        = 0;
4253
4254
4255
        	                goto ruleatomicFormulaEx;
4256
4257
        	            }
4258
4259
37
        	            switch (alt20)
4260
        	            {
4261
37
        	        	case 1:
4262
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:371:6: simpleTerm[expr]
4263
        	        	    {
4264
37
        	        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_atomicFormula734);
4265
37
        	        	        simpleTerm(ctx, expr);
4266
4267
37
        	        	        FOLLOWPOP();
4268
37
        	        	        if  (HASEXCEPTION())
4269
        	        	        {
4270
        	        	            goto ruleatomicFormulaEx;
4271
        	        	        }
4272
4273
4274
        	        	    }
4275
37
        	        	    break;
4276
        	        	case 2:
4277
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:371:25: letTerm[expr]
4278
        	        	    {
4279
        	        	        FOLLOWPUSH(FOLLOW_letTerm_in_atomicFormula739);
4280
        	        	        letTerm(ctx, expr);
4281
4282
        	        	        FOLLOWPOP();
4283
        	        	        if  (HASEXCEPTION())
4284
        	        	        {
4285
        	        	            goto ruleatomicFormulaEx;
4286
        	        	        }
4287
4288
4289
        	        	    }
4290
        	        	    break;
4291
        	        	case 3:
4292
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:371:41: conditionalTerm[expr]
4293
        	        	    {
4294
        	        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_atomicFormula744);
4295
        	        	        conditionalTerm(ctx, expr);
4296
4297
        	        	        FOLLOWPOP();
4298
        	        	        if  (HASEXCEPTION())
4299
        	        	        {
4300
        	        	            goto ruleatomicFormulaEx;
4301
        	        	        }
4302
4303
4304
        	        	    }
4305
        	        	    break;
4306
4307
        	            }
4308
        	        }
4309
4310
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:372:5: ( equalOp[equal] term[expr2] )?
4311
        	        {
4312
37
        	            int alt21=2;
4313
37
        	            switch ( LA(1) )
4314
        	            {
4315
37
        	                case DISEQUAL_TOK:
4316
        	                case EQUAL_TOK:
4317
        	                	{
4318
37
        	                		alt21=1;
4319
        	                	}
4320
37
        	                    break;
4321
        	            }
4322
4323
37
        	            switch (alt21)
4324
        	            {
4325
37
        	        	case 1:
4326
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:373:7: equalOp[equal] term[expr2]
4327
        	        	    {
4328
37
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_atomicFormula760);
4329
37
        	        	        equalOp(ctx, equal);
4330
4331
37
        	        	        FOLLOWPOP();
4332
37
        	        	        if  (HASEXCEPTION())
4333
        	        	        {
4334
        	        	            goto ruleatomicFormulaEx;
4335
        	        	        }
4336
4337
4338
37
        	        	        FOLLOWPUSH(FOLLOW_term_in_atomicFormula763);
4339
37
        	        	        term(ctx, expr2);
4340
4341
37
        	        	        FOLLOWPOP();
4342
37
        	        	        if  (HASEXCEPTION())
4343
        	        	        {
4344
        	        	            goto ruleatomicFormulaEx;
4345
        	        	        }
4346
4347
4348
        	        	        {
4349
        	        	             // equality/disequality between terms
4350
37
        	        	                    args.push_back(expr);
4351
37
        	        	                    args.push_back(expr2);
4352
37
        	        	                    p.d_kind = api::EQUAL;
4353
37
        	        	                    expr = PARSER_STATE->applyParseOp(p, args);
4354
37
        	        	                    if (!equal)
4355
        	        	                    {
4356
10
        	        	                      expr = MK_TERM(api::NOT, expr);
4357
        	        	                    }
4358
4359
        	        	        }
4360
4361
4362
        	        	    }
4363
37
        	        	    break;
4364
4365
        	            }
4366
        	        }
4367
4368
        	    }
4369
37
        	    break;
4370
25
        	case 4:
4371
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:385:5: definedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )
4372
        	    {
4373
25
        	        FOLLOWPUSH(FOLLOW_definedPred_in_atomicFormula785);
4374
25
        	        definedPred(ctx, p);
4375
4376
25
        	        FOLLOWPOP();
4377
25
        	        if  (HASEXCEPTION())
4378
        	        {
4379
        	            goto ruleatomicFormulaEx;
4380
        	        }
4381
4382
4383
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:385:20: ( LPAREN_TOK arguments[args] RPAREN_TOK )
4384
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:385:21: LPAREN_TOK arguments[args] RPAREN_TOK
4385
        	        {
4386
25
        	             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_atomicFormula789);
4387
25
        	            if  (HASEXCEPTION())
4388
        	            {
4389
        	                goto ruleatomicFormulaEx;
4390
        	            }
4391
4392
4393
25
        	            FOLLOWPUSH(FOLLOW_arguments_in_atomicFormula791);
4394
25
        	            arguments(ctx, args);
4395
4396
25
        	            FOLLOWPOP();
4397
25
        	            if  (HASEXCEPTION())
4398
        	            {
4399
        	                goto ruleatomicFormulaEx;
4400
        	            }
4401
4402
4403
25
        	             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_atomicFormula794);
4404
25
        	            if  (HASEXCEPTION())
4405
        	            {
4406
        	                goto ruleatomicFormulaEx;
4407
        	            }
4408
4409
4410
        	        }
4411
4412
4413
        	        {
4414
4415
25
        	                  p.d_type = SOLVER->getBooleanSort();
4416
25
        	                  expr = PARSER_STATE->applyParseOp(p, args);
4417
4418
        	        }
4419
4420
4421
        	    }
4422
25
        	    break;
4423
12
        	case 5:
4424
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:390:5: definedProp[expr]
4425
        	    {
4426
12
        	        FOLLOWPUSH(FOLLOW_definedProp_in_atomicFormula807);
4427
12
        	        definedProp(ctx, expr);
4428
4429
12
        	        FOLLOWPOP();
4430
12
        	        if  (HASEXCEPTION())
4431
        	        {
4432
        	            goto ruleatomicFormulaEx;
4433
        	        }
4434
4435
4436
        	    }
4437
12
        	    break;
4438
4439
            }
4440
        }
4441
    }
4442
4443
    // This is where rules clean up and exit
4444
    //
4445
523
    goto ruleatomicFormulaEx; /* Prevent compiler warnings */
4446
523
    ruleatomicFormulaEx: ;
4447
4448
523
            if (HASEXCEPTION())
4449
            {
4450
                PREPORTERROR();
4451
                PRECOVER();
4452
            }
4453
1046
    return ;
4454
}
4455
/* $ANTLR end atomicFormula */
4456
4457
/**
4458
 * $ANTLR start thfAtomicFormula
4459
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:393: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] );
4460
 */
4461
static void
4462
5069
thfAtomicFormula(pTptpParser ctx, cvc5::ParseOp& p)
4463
{
4464
4465
10138
      cvc5::api::Term expr2;
4466
10138
      std::string name;
4467
10138
      std::vector<cvc5::api::Term> args;
4468
      bool equal;
4469
4470
    /* Initialize rule variables
4471
     */
4472
4473
    {
4474
        {
4475
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:400: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] )
4476
4477
            ANTLR3_UINT32 alt26;
4478
4479
5069
            alt26=7;
4480
4481
5069
            switch ( LA(1) )
4482
            {
4483
4989
            case CNF_TOK:
4484
            case FOF_TOK:
4485
            case INCLUDE_TOK:
4486
            case LOWER_WORD:
4487
            case LOWER_WORD_SINGLE_QUOTED:
4488
            case SINGLE_QUOTED:
4489
            case TFF_TOK:
4490
            case THF_TOK:
4491
            case TYPE_TOK:
4492
            	{
4493
4989
            		alt26=1;
4494
            	}
4495
4989
                break;
4496
            case 63:
4497
            case 64:
4498
            case 66:
4499
            case 79:
4500
            case 80:
4501
            case 81:
4502
            case 82:
4503
            case 83:
4504
            case 84:
4505
            case 85:
4506
            case 86:
4507
            case 87:
4508
            case 88:
4509
            case 90:
4510
            case 91:
4511
            case 92:
4512
            case 93:
4513
            case 94:
4514
            	{
4515
            		alt26=2;
4516
            	}
4517
                break;
4518
            case DISTINCT_OBJECT:
4519
            case NUMBER:
4520
            	{
4521
            		alt26=3;
4522
            	}
4523
                break;
4524
            case 76:
4525
            case 78:
4526
            	{
4527
            		alt26=4;
4528
            	}
4529
                break;
4530
            case 72:
4531
            	{
4532
            		alt26=5;
4533
            	}
4534
                break;
4535
68
            case LPAREN_TOK:
4536
            case 65:
4537
            case 67:
4538
            case 68:
4539
            case 69:
4540
            case 70:
4541
            case 73:
4542
            case 74:
4543
            	{
4544
68
            		alt26=6;
4545
            	}
4546
68
                break;
4547
12
            case FALSE_TOK:
4548
            case TRUE_TOK:
4549
            	{
4550
12
            		alt26=7;
4551
            	}
4552
12
                break;
4553
4554
            default:
4555
                CONSTRUCTEX();
4556
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4557
                EXCEPTION->message      = (void *)"";
4558
                EXCEPTION->decisionNum  = 26;
4559
                EXCEPTION->state        = 0;
4560
4561
4562
                goto rulethfAtomicFormulaEx;
4563
4564
            }
4565
4566
5069
            switch (alt26)
4567
            {
4568
4989
        	case 1:
4569
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:400:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4570
        	    {
4571
4989
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_thfAtomicFormula827);
4572
4989
        	        atomicWord(ctx, p.d_name);
4573
4574
4989
        	        FOLLOWPOP();
4575
4989
        	        if  (HASEXCEPTION())
4576
        	        {
4577
        	            goto rulethfAtomicFormulaEx;
4578
        	        }
4579
4580
4581
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:400:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4582
        	        {
4583
4989
        	            int alt23=2;
4584
4989
        	            switch ( LA(1) )
4585
        	            {
4586
        	                case LPAREN_TOK:
4587
        	                	{
4588
        	                		alt23=1;
4589
        	                	}
4590
        	                    break;
4591
        	            }
4592
4593
4989
        	            switch (alt23)
4594
        	            {
4595
        	        	case 1:
4596
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:400:27: LPAREN_TOK arguments[args] RPAREN_TOK
4597
        	        	    {
4598
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula831);
4599
        	        	        if  (HASEXCEPTION())
4600
        	        	        {
4601
        	        	            goto rulethfAtomicFormulaEx;
4602
        	        	        }
4603
4604
4605
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula833);
4606
        	        	        arguments(ctx, args);
4607
4608
        	        	        FOLLOWPOP();
4609
        	        	        if  (HASEXCEPTION())
4610
        	        	        {
4611
        	        	            goto rulethfAtomicFormulaEx;
4612
        	        	        }
4613
4614
4615
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula836);
4616
        	        	        if  (HASEXCEPTION())
4617
        	        	        {
4618
        	        	            goto rulethfAtomicFormulaEx;
4619
        	        	        }
4620
4621
4622
        	        	    }
4623
        	        	    break;
4624
4625
        	            }
4626
        	        }
4627
4628
        	        {
4629
4630
9978
        	                  p.d_expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
4631
4989
        	                                          : PARSER_STATE->applyParseOp(p, args);
4632
4633
        	        }
4634
4635
4636
        	    }
4637
4989
        	    break;
4638
        	case 2:
4639
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:405:5: definedFun[p] ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )?
4640
        	    {
4641
        	        FOLLOWPUSH(FOLLOW_definedFun_in_thfAtomicFormula850);
4642
        	        definedFun(ctx, p);
4643
4644
        	        FOLLOWPOP();
4645
        	        if  (HASEXCEPTION())
4646
        	        {
4647
        	            goto rulethfAtomicFormulaEx;
4648
        	        }
4649
4650
4651
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:406:5: ( LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2] )?
4652
        	        {
4653
        	            int alt24=2;
4654
        	            switch ( LA(1) )
4655
        	            {
4656
        	                case LPAREN_TOK:
4657
        	                	{
4658
        	                		alt24=1;
4659
        	                	}
4660
        	                    break;
4661
        	            }
4662
4663
        	            switch (alt24)
4664
        	            {
4665
        	        	case 1:
4666
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:407:7: LPAREN_TOK arguments[args] RPAREN_TOK equalOp[equal] term[expr2]
4667
        	        	    {
4668
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula865);
4669
        	        	        if  (HASEXCEPTION())
4670
        	        	        {
4671
        	        	            goto rulethfAtomicFormulaEx;
4672
        	        	        }
4673
4674
4675
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula867);
4676
        	        	        arguments(ctx, args);
4677
4678
        	        	        FOLLOWPOP();
4679
        	        	        if  (HASEXCEPTION())
4680
        	        	        {
4681
        	        	            goto rulethfAtomicFormulaEx;
4682
        	        	        }
4683
4684
4685
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula870);
4686
        	        	        if  (HASEXCEPTION())
4687
        	        	        {
4688
        	        	            goto rulethfAtomicFormulaEx;
4689
        	        	        }
4690
4691
4692
        	        	        FOLLOWPUSH(FOLLOW_equalOp_in_thfAtomicFormula878);
4693
        	        	        equalOp(ctx, equal);
4694
4695
        	        	        FOLLOWPOP();
4696
        	        	        if  (HASEXCEPTION())
4697
        	        	        {
4698
        	        	            goto rulethfAtomicFormulaEx;
4699
        	        	        }
4700
4701
4702
        	        	        FOLLOWPUSH(FOLLOW_term_in_thfAtomicFormula881);
4703
        	        	        term(ctx, expr2);
4704
4705
        	        	        FOLLOWPOP();
4706
        	        	        if  (HASEXCEPTION())
4707
        	        	        {
4708
        	        	            goto rulethfAtomicFormulaEx;
4709
        	        	        }
4710
4711
4712
        	        	        {
4713
4714
        	        	                    p.d_expr = PARSER_STATE->applyParseOp(p, args);
4715
        	        	                    args.clear();
4716
        	        	                    args.push_back(p.d_expr);
4717
        	        	                    args.push_back(expr2);
4718
        	        	                    ParseOp p1(api::EQUAL);
4719
        	        	                    p.d_expr = PARSER_STATE->applyParseOp(p1, args);
4720
        	        	                    if (!equal)
4721
        	        	                    {
4722
        	        	                      p.d_expr = MK_TERM(api::NOT, p.d_expr);
4723
        	        	                    }
4724
4725
        	        	        }
4726
4727
4728
        	        	    }
4729
        	        	    break;
4730
4731
        	            }
4732
        	        }
4733
4734
        	    }
4735
        	    break;
4736
        	case 3:
4737
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:422:5: thfSimpleTerm[p.d_expr]
4738
        	    {
4739
        	        FOLLOWPUSH(FOLLOW_thfSimpleTerm_in_thfAtomicFormula903);
4740
        	        thfSimpleTerm(ctx, p.d_expr);
4741
4742
        	        FOLLOWPOP();
4743
        	        if  (HASEXCEPTION())
4744
        	        {
4745
        	            goto rulethfAtomicFormulaEx;
4746
        	        }
4747
4748
4749
        	    }
4750
        	    break;
4751
        	case 4:
4752
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:423:5: letTerm[p.d_expr]
4753
        	    {
4754
        	        FOLLOWPUSH(FOLLOW_letTerm_in_thfAtomicFormula910);
4755
        	        letTerm(ctx, p.d_expr);
4756
4757
        	        FOLLOWPOP();
4758
        	        if  (HASEXCEPTION())
4759
        	        {
4760
        	            goto rulethfAtomicFormulaEx;
4761
        	        }
4762
4763
4764
        	    }
4765
        	    break;
4766
        	case 5:
4767
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:424:5: conditionalTerm[p.d_expr]
4768
        	    {
4769
        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_thfAtomicFormula917);
4770
        	        conditionalTerm(ctx, p.d_expr);
4771
4772
        	        FOLLOWPOP();
4773
        	        if  (HASEXCEPTION())
4774
        	        {
4775
        	            goto rulethfAtomicFormulaEx;
4776
        	        }
4777
4778
4779
        	    }
4780
        	    break;
4781
68
        	case 6:
4782
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:425:5: thfDefinedPred[p] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4783
        	    {
4784
68
        	        FOLLOWPUSH(FOLLOW_thfDefinedPred_in_thfAtomicFormula924);
4785
68
        	        thfDefinedPred(ctx, p);
4786
4787
68
        	        FOLLOWPOP();
4788
68
        	        if  (HASEXCEPTION())
4789
        	        {
4790
        	            goto rulethfAtomicFormulaEx;
4791
        	        }
4792
4793
4794
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:425:23: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
4795
        	        {
4796
68
        	            int alt25=2;
4797
68
        	            switch ( LA(1) )
4798
        	            {
4799
        	                case LPAREN_TOK:
4800
        	                	{
4801
        	                		alt25=1;
4802
        	                	}
4803
        	                    break;
4804
        	            }
4805
4806
68
        	            switch (alt25)
4807
        	            {
4808
        	        	case 1:
4809
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:425:24: LPAREN_TOK arguments[args] RPAREN_TOK
4810
        	        	    {
4811
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomicFormula928);
4812
        	        	        if  (HASEXCEPTION())
4813
        	        	        {
4814
        	        	            goto rulethfAtomicFormulaEx;
4815
        	        	        }
4816
4817
4818
        	        	        FOLLOWPUSH(FOLLOW_arguments_in_thfAtomicFormula930);
4819
        	        	        arguments(ctx, args);
4820
4821
        	        	        FOLLOWPOP();
4822
        	        	        if  (HASEXCEPTION())
4823
        	        	        {
4824
        	        	            goto rulethfAtomicFormulaEx;
4825
        	        	        }
4826
4827
4828
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomicFormula933);
4829
        	        	        if  (HASEXCEPTION())
4830
        	        	        {
4831
        	        	            goto rulethfAtomicFormulaEx;
4832
        	        	        }
4833
4834
4835
        	        	    }
4836
        	        	    break;
4837
4838
        	            }
4839
        	        }
4840
4841
        	        {
4842
4843
68
        	                  p.d_type = SOLVER->getBooleanSort();
4844
68
        	                  if (!args.empty())
4845
        	                  {
4846
        	                    p.d_expr = PARSER_STATE->applyParseOp(p, args);
4847
        	                  }
4848
4849
        	        }
4850
4851
4852
        	    }
4853
68
        	    break;
4854
12
        	case 7:
4855
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:433:5: definedProp[p.d_expr]
4856
        	    {
4857
12
        	        FOLLOWPUSH(FOLLOW_definedProp_in_thfAtomicFormula947);
4858
12
        	        definedProp(ctx, p.d_expr);
4859
4860
12
        	        FOLLOWPOP();
4861
12
        	        if  (HASEXCEPTION())
4862
        	        {
4863
        	            goto rulethfAtomicFormulaEx;
4864
        	        }
4865
4866
4867
        	    }
4868
12
        	    break;
4869
4870
            }
4871
        }
4872
    }
4873
4874
    // This is where rules clean up and exit
4875
    //
4876
5069
    goto rulethfAtomicFormulaEx; /* Prevent compiler warnings */
4877
5069
    rulethfAtomicFormulaEx: ;
4878
4879
5069
            if (HASEXCEPTION())
4880
            {
4881
                PREPORTERROR();
4882
                PRECOVER();
4883
            }
4884
10138
    return ;
4885
}
4886
/* $ANTLR end thfAtomicFormula */
4887
4888
/**
4889
 * $ANTLR start definedProp
4890
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:439:1: definedProp[cvc5::api::Term& expr] : ( TRUE_TOK | FALSE_TOK );
4891
 */
4892
static void
4893
24
definedProp(pTptpParser ctx, cvc5::api::Term& expr)
4894
{
4895
    /* Initialize rule variables
4896
     */
4897
4898
    {
4899
        {
4900
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:440:3: ( TRUE_TOK | FALSE_TOK )
4901
4902
            ANTLR3_UINT32 alt27;
4903
4904
24
            alt27=2;
4905
4906
24
            switch ( LA(1) )
4907
            {
4908
7
            case TRUE_TOK:
4909
            	{
4910
7
            		alt27=1;
4911
            	}
4912
7
                break;
4913
17
            case FALSE_TOK:
4914
            	{
4915
17
            		alt27=2;
4916
            	}
4917
17
                break;
4918
4919
            default:
4920
                CONSTRUCTEX();
4921
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
4922
                EXCEPTION->message      = (void *)"";
4923
                EXCEPTION->decisionNum  = 27;
4924
                EXCEPTION->state        = 0;
4925
4926
4927
                goto ruledefinedPropEx;
4928
4929
            }
4930
4931
24
            switch (alt27)
4932
            {
4933
7
        	case 1:
4934
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:440:5: TRUE_TOK
4935
        	    {
4936
7
        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_definedProp965);
4937
7
        	        if  (HASEXCEPTION())
4938
        	        {
4939
        	            goto ruledefinedPropEx;
4940
        	        }
4941
4942
4943
        	        {
4944
7
        	             expr = SOLVER->mkTrue();
4945
        	        }
4946
4947
4948
        	    }
4949
7
        	    break;
4950
17
        	case 2:
4951
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:441:5: FALSE_TOK
4952
        	    {
4953
17
        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_definedProp973);
4954
17
        	        if  (HASEXCEPTION())
4955
        	        {
4956
        	            goto ruledefinedPropEx;
4957
        	        }
4958
4959
4960
        	        {
4961
17
        	             expr = SOLVER->mkFalse();
4962
        	        }
4963
4964
4965
        	    }
4966
17
        	    break;
4967
4968
            }
4969
        }
4970
    }
4971
4972
    // This is where rules clean up and exit
4973
    //
4974
24
    goto ruledefinedPropEx; /* Prevent compiler warnings */
4975
24
    ruledefinedPropEx: ;
4976
4977
24
            if (HASEXCEPTION())
4978
            {
4979
                PREPORTERROR();
4980
                PRECOVER();
4981
            }
4982
24
    return ;
4983
}
4984
/* $ANTLR end definedProp */
4985
4986
/**
4987
 * $ANTLR start definedPred
4988
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:444:1: definedPred[cvc5::ParseOp& p] : ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | AND_TOK | IMPLIES_TOK | OR_TOK );
4989
 */
4990
static void
4991
25
definedPred(pTptpParser ctx, cvc5::ParseOp& p)
4992
{
4993
    /* Initialize rule variables
4994
     */
4995
4996
    {
4997
        {
4998
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:445:3: ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | AND_TOK | IMPLIES_TOK | OR_TOK )
4999
5000
            ANTLR3_UINT32 alt28;
5001
5002
25
            alt28=10;
5003
5004
25
            switch ( LA(1) )
5005
            {
5006
8
            case 73:
5007
            	{
5008
8
            		alt28=1;
5009
            	}
5010
8
                break;
5011
3
            case 74:
5012
            	{
5013
3
            		alt28=2;
5014
            	}
5015
3
                break;
5016
4
            case 67:
5017
            	{
5018
4
            		alt28=3;
5019
            	}
5020
4
                break;
5021
4
            case 68:
5022
            	{
5023
4
            		alt28=4;
5024
            	}
5025
4
                break;
5026
3
            case 70:
5027
            	{
5028
3
            		alt28=5;
5029
            	}
5030
3
                break;
5031
3
            case 69:
5032
            	{
5033
3
            		alt28=6;
5034
            	}
5035
3
                break;
5036
            case 65:
5037
            	{
5038
            		alt28=7;
5039
            	}
5040
                break;
5041
            case AND_TOK:
5042
            	{
5043
            		alt28=8;
5044
            	}
5045
                break;
5046
            case IMPLIES_TOK:
5047
            	{
5048
            		alt28=9;
5049
            	}
5050
                break;
5051
            case OR_TOK:
5052
            	{
5053
            		alt28=10;
5054
            	}
5055
                break;
5056
5057
            default:
5058
                CONSTRUCTEX();
5059
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5060
                EXCEPTION->message      = (void *)"";
5061
                EXCEPTION->decisionNum  = 28;
5062
                EXCEPTION->state        = 0;
5063
5064
5065
                goto ruledefinedPredEx;
5066
5067
            }
5068
5069
25
            switch (alt28)
5070
            {
5071
8
        	case 1:
5072
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:445:5: '$less'
5073
        	    {
5074
8
        	         MATCHT(73, &FOLLOW_73_in_definedPred990);
5075
8
        	        if  (HASEXCEPTION())
5076
        	        {
5077
        	            goto ruledefinedPredEx;
5078
        	        }
5079
5080
5081
        	        {
5082
5083
8
        	                  p.d_kind = api::LT;
5084
5085
        	        }
5086
5087
5088
        	    }
5089
8
        	    break;
5090
3
        	case 2:
5091
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:449:5: '$lesseq'
5092
        	    {
5093
3
        	         MATCHT(74, &FOLLOW_74_in_definedPred1002);
5094
3
        	        if  (HASEXCEPTION())
5095
        	        {
5096
        	            goto ruledefinedPredEx;
5097
        	        }
5098
5099
5100
        	        {
5101
5102
3
        	                  p.d_kind = api::LEQ;
5103
5104
        	        }
5105
5106
5107
        	    }
5108
3
        	    break;
5109
4
        	case 3:
5110
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:453:5: '$greater'
5111
        	    {
5112
4
        	         MATCHT(67, &FOLLOW_67_in_definedPred1014);
5113
4
        	        if  (HASEXCEPTION())
5114
        	        {
5115
        	            goto ruledefinedPredEx;
5116
        	        }
5117
5118
5119
        	        {
5120
5121
4
        	                  p.d_kind = api::GT;
5122
5123
        	        }
5124
5125
5126
        	    }
5127
4
        	    break;
5128
4
        	case 4:
5129
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:457:5: '$greatereq'
5130
        	    {
5131
4
        	         MATCHT(68, &FOLLOW_68_in_definedPred1026);
5132
4
        	        if  (HASEXCEPTION())
5133
        	        {
5134
        	            goto ruledefinedPredEx;
5135
        	        }
5136
5137
5138
        	        {
5139
5140
4
        	                  p.d_kind = api::GEQ;
5141
5142
        	        }
5143
5144
5145
        	    }
5146
4
        	    break;
5147
3
        	case 5:
5148
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:461:5: '$is_rat'
5149
        	    {
5150
3
        	         MATCHT(70, &FOLLOW_70_in_definedPred1038);
5151
3
        	        if  (HASEXCEPTION())
5152
        	        {
5153
        	            goto ruledefinedPredEx;
5154
        	        }
5155
5156
5157
        	        {
5158
5159
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5160
6
        	                  api::Term q = SOLVER->mkVar(SOLVER->getIntegerSort(), "Q");
5161
6
        	                  api::Term qr = MK_TERM(api::TO_REAL, q);
5162
6
        	                  api::Term r = SOLVER->mkVar(SOLVER->getIntegerSort(), "R");
5163
6
        	                  api::Term rr = MK_TERM(api::TO_REAL, r);
5164
        	                  api::Term body =
5165
3
        	                      MK_TERM(api::AND,
5166
9
        	                              MK_TERM(api::NOT,
5167
6
        	                                      MK_TERM(api::EQUAL, r, SOLVER->mkInteger(0))),
5168
12
        	                              MK_TERM(api::EQUAL, qr, MK_TERM(api::MULT, n, rr)));
5169
6
        	                  api::Term bvl = MK_TERM(api::BOUND_VAR_LIST, q, r);
5170
3
        	                  body = MK_TERM(api::EXISTS, bvl, body);
5171
6
        	                  api::Term lbvl = MK_TERM(api::BOUND_VAR_LIST, n);
5172
3
        	                  p.d_kind = api::LAMBDA;
5173
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, lbvl, body);
5174
5175
3
        	        }
5176
5177
5178
        	    }
5179
3
        	    break;
5180
3
        	case 6:
5181
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:482:5: '$is_int'
5182
        	    {
5183
3
        	         MATCHT(69, &FOLLOW_69_in_definedPred1065);
5184
3
        	        if  (HASEXCEPTION())
5185
        	        {
5186
        	            goto ruledefinedPredEx;
5187
        	        }
5188
5189
5190
        	        {
5191
5192
3
        	                  p.d_kind = api::IS_INTEGER;
5193
5194
        	        }
5195
5196
5197
        	    }
5198
3
        	    break;
5199
        	case 7:
5200
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:486:5: '$distinct'
5201
        	    {
5202
        	         MATCHT(65, &FOLLOW_65_in_definedPred1077);
5203
        	        if  (HASEXCEPTION())
5204
        	        {
5205
        	            goto ruledefinedPredEx;
5206
        	        }
5207
5208
5209
        	        {
5210
5211
        	                  p.d_kind = api::DISTINCT;
5212
5213
        	        }
5214
5215
5216
        	    }
5217
        	    break;
5218
        	case 8:
5219
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:490:5: AND_TOK
5220
        	    {
5221
        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_definedPred1089);
5222
        	        if  (HASEXCEPTION())
5223
        	        {
5224
        	            goto ruledefinedPredEx;
5225
        	        }
5226
5227
5228
        	        {
5229
5230
        	                  p.d_kind = api::AND;
5231
5232
        	        }
5233
5234
5235
        	    }
5236
        	    break;
5237
        	case 9:
5238
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:494:5: IMPLIES_TOK
5239
        	    {
5240
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_definedPred1101);
5241
        	        if  (HASEXCEPTION())
5242
        	        {
5243
        	            goto ruledefinedPredEx;
5244
        	        }
5245
5246
5247
        	        {
5248
5249
        	                  p.d_kind = api::IMPLIES;
5250
5251
        	        }
5252
5253
5254
        	    }
5255
        	    break;
5256
        	case 10:
5257
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:498:5: OR_TOK
5258
        	    {
5259
        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_definedPred1113);
5260
        	        if  (HASEXCEPTION())
5261
        	        {
5262
        	            goto ruledefinedPredEx;
5263
        	        }
5264
5265
5266
        	        {
5267
5268
        	                  p.d_kind = api::OR;
5269
5270
        	        }
5271
5272
5273
        	    }
5274
        	    break;
5275
5276
            }
5277
        }
5278
    }
5279
5280
    // This is where rules clean up and exit
5281
    //
5282
25
    goto ruledefinedPredEx; /* Prevent compiler warnings */
5283
25
    ruledefinedPredEx: ;
5284
5285
25
            if (HASEXCEPTION())
5286
            {
5287
                PREPORTERROR();
5288
                PRECOVER();
5289
            }
5290
25
    return ;
5291
}
5292
/* $ANTLR end definedPred */
5293
5294
/**
5295
 * $ANTLR start thfDefinedPred
5296
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:504:1: thfDefinedPred[cvc5::ParseOp& p] : ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK );
5297
 */
5298
static void
5299
68
thfDefinedPred(pTptpParser ctx, cvc5::ParseOp& p)
5300
{
5301
    /* Initialize rule variables
5302
     */
5303
5304
    {
5305
        {
5306
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:505:3: ( '$less' | '$lesseq' | '$greater' | '$greatereq' | '$is_rat' | '$is_int' | '$distinct' | LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK )
5307
5308
            ANTLR3_UINT32 alt30;
5309
5310
68
            alt30=8;
5311
5312
68
            switch ( LA(1) )
5313
            {
5314
            case 73:
5315
            	{
5316
            		alt30=1;
5317
            	}
5318
                break;
5319
            case 74:
5320
            	{
5321
            		alt30=2;
5322
            	}
5323
                break;
5324
            case 67:
5325
            	{
5326
            		alt30=3;
5327
            	}
5328
                break;
5329
            case 68:
5330
            	{
5331
            		alt30=4;
5332
            	}
5333
                break;
5334
            case 70:
5335
            	{
5336
            		alt30=5;
5337
            	}
5338
                break;
5339
            case 69:
5340
            	{
5341
            		alt30=6;
5342
            	}
5343
                break;
5344
            case 65:
5345
            	{
5346
            		alt30=7;
5347
            	}
5348
                break;
5349
68
            case LPAREN_TOK:
5350
            	{
5351
68
            		alt30=8;
5352
            	}
5353
68
                break;
5354
5355
            default:
5356
                CONSTRUCTEX();
5357
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5358
                EXCEPTION->message      = (void *)"";
5359
                EXCEPTION->decisionNum  = 30;
5360
                EXCEPTION->state        = 0;
5361
5362
5363
                goto rulethfDefinedPredEx;
5364
5365
            }
5366
5367
68
            switch (alt30)
5368
            {
5369
        	case 1:
5370
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:505:5: '$less'
5371
        	    {
5372
        	         MATCHT(73, &FOLLOW_73_in_thfDefinedPred1133);
5373
        	        if  (HASEXCEPTION())
5374
        	        {
5375
        	            goto rulethfDefinedPredEx;
5376
        	        }
5377
5378
5379
        	        {
5380
5381
        	                   p.d_kind = api::LT;
5382
5383
        	        }
5384
5385
5386
        	    }
5387
        	    break;
5388
        	case 2:
5389
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:509:5: '$lesseq'
5390
        	    {
5391
        	         MATCHT(74, &FOLLOW_74_in_thfDefinedPred1146);
5392
        	        if  (HASEXCEPTION())
5393
        	        {
5394
        	            goto rulethfDefinedPredEx;
5395
        	        }
5396
5397
5398
        	        {
5399
5400
        	                  p.d_kind = api::LEQ;
5401
5402
        	        }
5403
5404
5405
        	    }
5406
        	    break;
5407
        	case 3:
5408
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:513:5: '$greater'
5409
        	    {
5410
        	         MATCHT(67, &FOLLOW_67_in_thfDefinedPred1158);
5411
        	        if  (HASEXCEPTION())
5412
        	        {
5413
        	            goto rulethfDefinedPredEx;
5414
        	        }
5415
5416
5417
        	        {
5418
5419
        	                  p.d_kind = api::GT;
5420
5421
        	        }
5422
5423
5424
        	    }
5425
        	    break;
5426
        	case 4:
5427
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:517:5: '$greatereq'
5428
        	    {
5429
        	         MATCHT(68, &FOLLOW_68_in_thfDefinedPred1170);
5430
        	        if  (HASEXCEPTION())
5431
        	        {
5432
        	            goto rulethfDefinedPredEx;
5433
        	        }
5434
5435
5436
        	        {
5437
5438
        	                  p.d_kind = api::GEQ;
5439
5440
        	        }
5441
5442
5443
        	    }
5444
        	    break;
5445
        	case 5:
5446
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:521:5: '$is_rat'
5447
        	    {
5448
        	         MATCHT(70, &FOLLOW_70_in_thfDefinedPred1182);
5449
        	        if  (HASEXCEPTION())
5450
        	        {
5451
        	            goto rulethfDefinedPredEx;
5452
        	        }
5453
5454
5455
        	        {
5456
5457
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5458
        	                  api::Term q = SOLVER->mkVar(SOLVER->getIntegerSort(), "Q");
5459
        	                  api::Term qr = MK_TERM(api::TO_REAL, q);
5460
        	                  api::Term r = SOLVER->mkVar(SOLVER->getIntegerSort(), "R");
5461
        	                  api::Term rr = MK_TERM(api::TO_REAL, r);
5462
        	                  api::Term body = MK_TERM(
5463
        	                      api::AND,
5464
        	                      MK_TERM(api::NOT,
5465
        	                              MK_TERM(api::EQUAL, r, SOLVER->mkInteger(0))),
5466
        	                      MK_TERM(api::EQUAL, qr, MK_TERM(api::MULT, n, rr)));
5467
        	                  api::Term bvl = MK_TERM(api::BOUND_VAR_LIST, q, r);
5468
        	                  body = MK_TERM(api::EXISTS, bvl, body);
5469
        	                  api::Term lbvl = MK_TERM(api::BOUND_VAR_LIST, n);
5470
        	                  p.d_kind = api::LAMBDA;
5471
        	                  p.d_expr = MK_TERM(api::LAMBDA, lbvl, body);
5472
5473
        	        }
5474
5475
5476
        	    }
5477
        	    break;
5478
        	case 6:
5479
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:542:5: '$is_int'
5480
        	    {
5481
        	         MATCHT(69, &FOLLOW_69_in_thfDefinedPred1209);
5482
        	        if  (HASEXCEPTION())
5483
        	        {
5484
        	            goto rulethfDefinedPredEx;
5485
        	        }
5486
5487
5488
        	        {
5489
5490
        	                  p.d_kind = api::IS_INTEGER;
5491
5492
        	        }
5493
5494
5495
        	    }
5496
        	    break;
5497
        	case 7:
5498
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:546:5: '$distinct'
5499
        	    {
5500
        	         MATCHT(65, &FOLLOW_65_in_thfDefinedPred1221);
5501
        	        if  (HASEXCEPTION())
5502
        	        {
5503
        	            goto rulethfDefinedPredEx;
5504
        	        }
5505
5506
5507
        	        {
5508
5509
        	                  p.d_kind = api::DISTINCT;
5510
5511
        	        }
5512
5513
5514
        	    }
5515
        	    break;
5516
68
        	case 8:
5517
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:550:5: LPAREN_TOK ( AND_TOK | OR_TOK | IMPLIES_TOK ) RPAREN_TOK
5518
        	    {
5519
68
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfDefinedPred1233);
5520
68
        	        if  (HASEXCEPTION())
5521
        	        {
5522
        	            goto rulethfDefinedPredEx;
5523
        	        }
5524
5525
5526
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:551:5: ( AND_TOK | OR_TOK | IMPLIES_TOK )
5527
        	        {
5528
68
        	            int alt29=3;
5529
68
        	            switch ( LA(1) )
5530
        	            {
5531
42
        	            case AND_TOK:
5532
        	            	{
5533
42
        	            		alt29=1;
5534
        	            	}
5535
42
        	                break;
5536
20
        	            case OR_TOK:
5537
        	            	{
5538
20
        	            		alt29=2;
5539
        	            	}
5540
20
        	                break;
5541
6
        	            case IMPLIES_TOK:
5542
        	            	{
5543
6
        	            		alt29=3;
5544
        	            	}
5545
6
        	                break;
5546
5547
        	            default:
5548
        	                CONSTRUCTEX();
5549
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5550
        	                EXCEPTION->message      = (void *)"";
5551
        	                EXCEPTION->decisionNum  = 29;
5552
        	                EXCEPTION->state        = 0;
5553
5554
5555
        	                goto rulethfDefinedPredEx;
5556
5557
        	            }
5558
5559
68
        	            switch (alt29)
5560
        	            {
5561
42
        	        	case 1:
5562
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:552:7: AND_TOK
5563
        	        	    {
5564
42
        	        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_thfDefinedPred1247);
5565
42
        	        	        if  (HASEXCEPTION())
5566
        	        	        {
5567
        	        	            goto rulethfDefinedPredEx;
5568
        	        	        }
5569
5570
5571
        	        	        {
5572
5573
42
        	        	                    p.d_kind = api::AND;
5574
5575
        	        	        }
5576
5577
5578
        	        	    }
5579
42
        	        	    break;
5580
20
        	        	case 2:
5581
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:556:7: OR_TOK
5582
        	        	    {
5583
20
        	        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_thfDefinedPred1263);
5584
20
        	        	        if  (HASEXCEPTION())
5585
        	        	        {
5586
        	        	            goto rulethfDefinedPredEx;
5587
        	        	        }
5588
5589
5590
        	        	        {
5591
5592
20
        	        	                    p.d_kind = api::OR;
5593
5594
        	        	        }
5595
5596
5597
        	        	    }
5598
20
        	        	    break;
5599
6
        	        	case 3:
5600
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:560:7: IMPLIES_TOK
5601
        	        	    {
5602
6
        	        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_thfDefinedPred1279);
5603
6
        	        	        if  (HASEXCEPTION())
5604
        	        	        {
5605
        	        	            goto rulethfDefinedPredEx;
5606
        	        	        }
5607
5608
5609
        	        	        {
5610
5611
6
        	        	                    p.d_kind = api::IMPLIES;
5612
5613
        	        	        }
5614
5615
5616
        	        	    }
5617
6
        	        	    break;
5618
5619
        	            }
5620
        	        }
5621
5622
68
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfDefinedPred1299);
5623
68
        	        if  (HASEXCEPTION())
5624
        	        {
5625
        	            goto rulethfDefinedPredEx;
5626
68
        	        }
5627
5628
5629
        	    }
5630
68
        	    break;
5631
5632
            }
5633
        }
5634
    }
5635
5636
    // This is where rules clean up and exit
5637
    //
5638
68
    goto rulethfDefinedPredEx; /* Prevent compiler warnings */
5639
68
    rulethfDefinedPredEx: ;
5640
5641
68
            if (HASEXCEPTION())
5642
            {
5643
                PREPORTERROR();
5644
                PRECOVER();
5645
            }
5646
68
    return ;
5647
}
5648
/* $ANTLR end thfDefinedPred */
5649
5650
/**
5651
 * $ANTLR start definedFun
5652
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:568: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' );
5653
 */
5654
static void
5655
57
definedFun(pTptpParser ctx, cvc5::ParseOp& p)
5656
{
5657
5658
57
      bool remainder = false;
5659
5660
    /* Initialize rule variables
5661
     */
5662
5663
    {
5664
        {
5665
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:572: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' )
5666
5667
            ANTLR3_UINT32 alt34;
5668
5669
57
            alt34=15;
5670
5671
57
            switch ( LA(1) )
5672
            {
5673
3
            case 94:
5674
            	{
5675
3
            		alt34=1;
5676
            	}
5677
3
                break;
5678
6
            case 88:
5679
            	{
5680
6
            		alt34=2;
5681
            	}
5682
6
                break;
5683
3
            case 64:
5684
            	{
5685
3
            		alt34=3;
5686
            	}
5687
3
                break;
5688
3
            case 79:
5689
            	{
5690
3
            		alt34=4;
5691
            	}
5692
3
                break;
5693
3
            case 80:
5694
            	{
5695
3
            		alt34=5;
5696
            	}
5697
3
                break;
5698
6
            case 81:
5699
            case 84:
5700
            	{
5701
6
            		alt34=6;
5702
            	}
5703
6
                break;
5704
6
            case 83:
5705
            case 86:
5706
            	{
5707
6
            		alt34=7;
5708
            	}
5709
6
                break;
5710
6
            case 82:
5711
            case 85:
5712
            	{
5713
6
            		alt34=8;
5714
            	}
5715
6
                break;
5716
3
            case 66:
5717
            	{
5718
3
            		alt34=9;
5719
            	}
5720
3
                break;
5721
3
            case 63:
5722
            	{
5723
3
            		alt34=10;
5724
            	}
5725
3
                break;
5726
3
            case 93:
5727
            	{
5728
3
            		alt34=11;
5729
            	}
5730
3
                break;
5731
            case 87:
5732
            	{
5733
            		alt34=12;
5734
            	}
5735
                break;
5736
4
            case 90:
5737
            	{
5738
4
            		alt34=13;
5739
            	}
5740
4
                break;
5741
4
            case 91:
5742
            	{
5743
4
            		alt34=14;
5744
            	}
5745
4
                break;
5746
4
            case 92:
5747
            	{
5748
4
            		alt34=15;
5749
            	}
5750
4
                break;
5751
5752
            default:
5753
                CONSTRUCTEX();
5754
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5755
                EXCEPTION->message      = (void *)"";
5756
                EXCEPTION->decisionNum  = 34;
5757
                EXCEPTION->state        = 0;
5758
5759
5760
                goto ruledefinedFunEx;
5761
5762
            }
5763
5764
57
            switch (alt34)
5765
            {
5766
3
        	case 1:
5767
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:572:5: '$uminus'
5768
        	    {
5769
3
        	         MATCHT(94, &FOLLOW_94_in_definedFun1318);
5770
3
        	        if  (HASEXCEPTION())
5771
        	        {
5772
        	            goto ruledefinedFunEx;
5773
        	        }
5774
5775
5776
        	        {
5777
5778
3
        	                  p.d_kind = api::UMINUS;
5779
5780
        	        }
5781
5782
5783
        	    }
5784
3
        	    break;
5785
6
        	case 2:
5786
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:576:5: '$sum'
5787
        	    {
5788
6
        	         MATCHT(88, &FOLLOW_88_in_definedFun1330);
5789
6
        	        if  (HASEXCEPTION())
5790
        	        {
5791
        	            goto ruledefinedFunEx;
5792
        	        }
5793
5794
5795
        	        {
5796
5797
6
        	                  p.d_kind = api::PLUS;
5798
5799
        	        }
5800
5801
5802
        	    }
5803
6
        	    break;
5804
3
        	case 3:
5805
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:580:5: '$difference'
5806
        	    {
5807
3
        	         MATCHT(64, &FOLLOW_64_in_definedFun1342);
5808
3
        	        if  (HASEXCEPTION())
5809
        	        {
5810
        	            goto ruledefinedFunEx;
5811
        	        }
5812
5813
5814
        	        {
5815
5816
3
        	                  p.d_kind = api::MINUS;
5817
5818
        	        }
5819
5820
5821
        	    }
5822
3
        	    break;
5823
3
        	case 4:
5824
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:584:5: '$product'
5825
        	    {
5826
3
        	         MATCHT(79, &FOLLOW_79_in_definedFun1354);
5827
3
        	        if  (HASEXCEPTION())
5828
        	        {
5829
        	            goto ruledefinedFunEx;
5830
        	        }
5831
5832
5833
        	        {
5834
5835
3
        	                  p.d_kind = api::MULT;
5836
5837
        	        }
5838
5839
5840
        	    }
5841
3
        	    break;
5842
3
        	case 5:
5843
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:588:5: '$quotient'
5844
        	    {
5845
3
        	         MATCHT(80, &FOLLOW_80_in_definedFun1366);
5846
3
        	        if  (HASEXCEPTION())
5847
        	        {
5848
        	            goto ruledefinedFunEx;
5849
        	        }
5850
5851
5852
        	        {
5853
5854
3
        	                  p.d_kind = api::DIVISION;
5855
5856
        	        }
5857
5858
5859
        	    }
5860
3
        	    break;
5861
6
        	case 6:
5862
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:592:5: ( '$quotient_e' | '$remainder_e' )
5863
        	    {
5864
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:592:5: ( '$quotient_e' | '$remainder_e' )
5865
        	        {
5866
6
        	            int alt31=2;
5867
6
        	            switch ( LA(1) )
5868
        	            {
5869
3
        	            case 81:
5870
        	            	{
5871
3
        	            		alt31=1;
5872
        	            	}
5873
3
        	                break;
5874
3
        	            case 84:
5875
        	            	{
5876
3
        	            		alt31=2;
5877
        	            	}
5878
3
        	                break;
5879
5880
        	            default:
5881
        	                CONSTRUCTEX();
5882
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5883
        	                EXCEPTION->message      = (void *)"";
5884
        	                EXCEPTION->decisionNum  = 31;
5885
        	                EXCEPTION->state        = 0;
5886
5887
5888
        	                goto ruledefinedFunEx;
5889
5890
        	            }
5891
5892
6
        	            switch (alt31)
5893
        	            {
5894
3
        	        	case 1:
5895
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:592:7: '$quotient_e'
5896
        	        	    {
5897
3
        	        	         MATCHT(81, &FOLLOW_81_in_definedFun1380);
5898
3
        	        	        if  (HASEXCEPTION())
5899
        	        	        {
5900
        	        	            goto ruledefinedFunEx;
5901
        	        	        }
5902
5903
5904
        	        	        {
5905
3
        	        	             remainder = false;
5906
        	        	        }
5907
5908
5909
        	        	    }
5910
3
        	        	    break;
5911
3
        	        	case 2:
5912
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:593:7: '$remainder_e'
5913
        	        	    {
5914
3
        	        	         MATCHT(84, &FOLLOW_84_in_definedFun1390);
5915
3
        	        	        if  (HASEXCEPTION())
5916
        	        	        {
5917
        	        	            goto ruledefinedFunEx;
5918
        	        	        }
5919
5920
5921
        	        	        {
5922
3
        	        	             remainder = true;
5923
        	        	        }
5924
5925
5926
        	        	    }
5927
3
        	        	    break;
5928
5929
        	            }
5930
        	        }
5931
5932
        	        {
5933
5934
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
5935
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
5936
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
5937
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
5938
12
        	                  expr = MK_TERM(api::ITE,
5939
12
        	                                 MK_TERM(api::GEQ, d, SOLVER->mkReal(0)),
5940
12
        	                                 MK_TERM(api::TO_INTEGER, expr),
5941
18
        	                                 MK_TERM(api::UMINUS,
5942
18
        	                                         MK_TERM(api::TO_INTEGER,
5943
12
        	                                                 MK_TERM(api::UMINUS, expr))));
5944
6
        	                  if (remainder)
5945
        	                  {
5946
6
        	                    expr = MK_TERM(
5947
        	                        api::TO_INTEGER,
5948
6
        	                        MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
5949
        	                  }
5950
6
        	                  p.d_kind = api::LAMBDA;
5951
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
5952
5953
6
        	        }
5954
5955
5956
        	    }
5957
6
        	    break;
5958
6
        	case 7:
5959
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:615:5: ( '$quotient_t' | '$remainder_t' )
5960
        	    {
5961
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:615:5: ( '$quotient_t' | '$remainder_t' )
5962
        	        {
5963
6
        	            int alt32=2;
5964
6
        	            switch ( LA(1) )
5965
        	            {
5966
3
        	            case 83:
5967
        	            	{
5968
3
        	            		alt32=1;
5969
        	            	}
5970
3
        	                break;
5971
3
        	            case 86:
5972
        	            	{
5973
3
        	            		alt32=2;
5974
        	            	}
5975
3
        	                break;
5976
5977
        	            default:
5978
        	                CONSTRUCTEX();
5979
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
5980
        	                EXCEPTION->message      = (void *)"";
5981
        	                EXCEPTION->decisionNum  = 32;
5982
        	                EXCEPTION->state        = 0;
5983
5984
5985
        	                goto ruledefinedFunEx;
5986
5987
        	            }
5988
5989
6
        	            switch (alt32)
5990
        	            {
5991
3
        	        	case 1:
5992
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:615:7: '$quotient_t'
5993
        	        	    {
5994
3
        	        	         MATCHT(83, &FOLLOW_83_in_definedFun1412);
5995
3
        	        	        if  (HASEXCEPTION())
5996
        	        	        {
5997
        	        	            goto ruledefinedFunEx;
5998
        	        	        }
5999
6000
6001
        	        	        {
6002
3
        	        	             remainder = false;
6003
        	        	        }
6004
6005
6006
        	        	    }
6007
3
        	        	    break;
6008
3
        	        	case 2:
6009
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:616:7: '$remainder_t'
6010
        	        	    {
6011
3
        	        	         MATCHT(86, &FOLLOW_86_in_definedFun1422);
6012
3
        	        	        if  (HASEXCEPTION())
6013
        	        	        {
6014
        	        	            goto ruledefinedFunEx;
6015
        	        	        }
6016
6017
6018
        	        	        {
6019
3
        	        	             remainder = true;
6020
        	        	        }
6021
6022
6023
        	        	    }
6024
3
        	        	    break;
6025
6026
        	            }
6027
        	        }
6028
6029
        	        {
6030
6031
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6032
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
6033
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
6034
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
6035
12
        	                  expr = MK_TERM(api::ITE,
6036
12
        	                                 MK_TERM(api::GEQ, expr, SOLVER->mkReal(0)),
6037
12
        	                                 MK_TERM(api::TO_INTEGER, expr),
6038
18
        	                                 MK_TERM(api::UMINUS,
6039
18
        	                                         MK_TERM(api::TO_INTEGER,
6040
12
        	                                                 MK_TERM(api::UMINUS, expr))));
6041
6
        	                  if (remainder)
6042
        	                  {
6043
6
        	                    expr = MK_TERM(
6044
        	                        api::TO_INTEGER,
6045
6
        	                        MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
6046
        	                  }
6047
6
        	                  p.d_kind = api::LAMBDA;
6048
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6049
6050
6
        	        }
6051
6052
6053
        	    }
6054
6
        	    break;
6055
6
        	case 8:
6056
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:638:5: ( '$quotient_f' | '$remainder_f' )
6057
        	    {
6058
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:638:5: ( '$quotient_f' | '$remainder_f' )
6059
        	        {
6060
6
        	            int alt33=2;
6061
6
        	            switch ( LA(1) )
6062
        	            {
6063
3
        	            case 82:
6064
        	            	{
6065
3
        	            		alt33=1;
6066
        	            	}
6067
3
        	                break;
6068
3
        	            case 85:
6069
        	            	{
6070
3
        	            		alt33=2;
6071
        	            	}
6072
3
        	                break;
6073
6074
        	            default:
6075
        	                CONSTRUCTEX();
6076
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6077
        	                EXCEPTION->message      = (void *)"";
6078
        	                EXCEPTION->decisionNum  = 33;
6079
        	                EXCEPTION->state        = 0;
6080
6081
6082
        	                goto ruledefinedFunEx;
6083
6084
        	            }
6085
6086
6
        	            switch (alt33)
6087
        	            {
6088
3
        	        	case 1:
6089
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:638:7: '$quotient_f'
6090
        	        	    {
6091
3
        	        	         MATCHT(82, &FOLLOW_82_in_definedFun1444);
6092
3
        	        	        if  (HASEXCEPTION())
6093
        	        	        {
6094
        	        	            goto ruledefinedFunEx;
6095
        	        	        }
6096
6097
6098
        	        	        {
6099
3
        	        	             remainder = false;
6100
        	        	        }
6101
6102
6103
        	        	    }
6104
3
        	        	    break;
6105
3
        	        	case 2:
6106
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:639:7: '$remainder_f'
6107
        	        	    {
6108
3
        	        	         MATCHT(85, &FOLLOW_85_in_definedFun1454);
6109
3
        	        	        if  (HASEXCEPTION())
6110
        	        	        {
6111
        	        	            goto ruledefinedFunEx;
6112
        	        	        }
6113
6114
6115
        	        	        {
6116
3
        	        	             remainder = true;
6117
        	        	        }
6118
6119
6120
        	        	    }
6121
3
        	        	    break;
6122
6123
        	            }
6124
        	        }
6125
6126
        	        {
6127
6128
12
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6129
12
        	                  api::Term d = SOLVER->mkVar(SOLVER->getRealSort(), "D");
6130
12
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n, d);
6131
12
        	                  api::Term expr = MK_TERM(api::DIVISION, n, d);
6132
6
        	                  expr = MK_TERM(api::TO_INTEGER, expr);
6133
6
        	                  if (remainder)
6134
        	                  {
6135
6
        	                    expr = MK_TERM(api::TO_INTEGER,
6136
6
        	                                   MK_TERM(api::MINUS, n, MK_TERM(api::MULT, expr, d)));
6137
        	                  }
6138
6
        	                  p.d_kind = api::LAMBDA;
6139
6
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6140
6141
6
        	        }
6142
6143
6144
        	    }
6145
6
        	    break;
6146
3
        	case 9:
6147
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:655:5: '$floor'
6148
        	    {
6149
3
        	         MATCHT(66, &FOLLOW_66_in_definedFun1474);
6150
3
        	        if  (HASEXCEPTION())
6151
        	        {
6152
        	            goto ruledefinedFunEx;
6153
        	        }
6154
6155
6156
        	        {
6157
6158
3
        	                  p.d_kind = api::TO_INTEGER;
6159
6160
        	        }
6161
6162
6163
        	    }
6164
3
        	    break;
6165
3
        	case 10:
6166
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:659:5: '$ceiling'
6167
        	    {
6168
3
        	         MATCHT(63, &FOLLOW_63_in_definedFun1486);
6169
3
        	        if  (HASEXCEPTION())
6170
        	        {
6171
        	            goto ruledefinedFunEx;
6172
        	        }
6173
6174
6175
        	        {
6176
6177
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6178
6
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6179
3
        	                  api::Term expr = MK_TERM(api::UMINUS,
6180
6
        	                                      MK_TERM(api::TO_INTEGER, MK_TERM(api::UMINUS, n)));
6181
3
        	                  p.d_kind = api::LAMBDA;
6182
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6183
6184
3
        	        }
6185
6186
6187
        	    }
6188
3
        	    break;
6189
3
        	case 11:
6190
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:668:5: '$truncate'
6191
        	    {
6192
3
        	         MATCHT(93, &FOLLOW_93_in_definedFun1498);
6193
3
        	        if  (HASEXCEPTION())
6194
        	        {
6195
        	            goto ruledefinedFunEx;
6196
        	        }
6197
6198
6199
        	        {
6200
6201
6
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6202
6
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6203
        	                  api::Term expr =
6204
3
        	                      MK_TERM(api::ITE,
6205
6
        	                              MK_TERM(api::GEQ, n, SOLVER->mkReal(0)),
6206
6
        	                              MK_TERM(api::TO_INTEGER, n),
6207
9
        	                              MK_TERM(api::UMINUS,
6208
15
        	                                      MK_TERM(api::TO_INTEGER, MK_TERM(api::UMINUS, n))));
6209
3
        	                  p.d_kind = api::LAMBDA;
6210
3
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6211
6212
3
        	        }
6213
6214
6215
        	    }
6216
3
        	    break;
6217
        	case 12:
6218
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:681:5: '$round'
6219
        	    {
6220
        	         MATCHT(87, &FOLLOW_87_in_definedFun1510);
6221
        	        if  (HASEXCEPTION())
6222
        	        {
6223
        	            goto ruledefinedFunEx;
6224
        	        }
6225
6226
6227
        	        {
6228
6229
        	                  api::Term n = SOLVER->mkVar(SOLVER->getRealSort(), "N");
6230
        	                  api::Term formals = MK_TERM(api::BOUND_VAR_LIST, n);
6231
        	                  api::Term decPart = MK_TERM(api::MINUS, n, MK_TERM(api::TO_INTEGER, n));
6232
        	                  api::Term expr = MK_TERM(
6233
        	                      api::ITE,
6234
        	                      MK_TERM(api::LT, decPart, SOLVER->mkReal(1, 2)),
6235
        	                      // if decPart < 0.5, round down
6236
        	                      MK_TERM(api::TO_INTEGER, n),
6237
        	                      MK_TERM(api::ITE,
6238
        	                              MK_TERM(api::GT, decPart, SOLVER->mkReal(1, 2)),
6239
        	                              // if decPart > 0.5, round up
6240
        	                              MK_TERM(api::TO_INTEGER,
6241
        	                                      MK_TERM(api::PLUS, n, SOLVER->mkReal(1))),
6242
        	                              // if decPart == 0.5, round to nearest even integer:
6243
        	                              // result is: to_int(n/2 + .5) * 2
6244
        	                              MK_TERM(api::MULT,
6245
        	                                      MK_TERM(api::TO_INTEGER,
6246
        	                                              MK_TERM(api::PLUS,
6247
        	                                                      MK_TERM(api::DIVISION,
6248
        	                                                              n,
6249
        	                                                              SOLVER->mkReal(2)),
6250
        	                                                      SOLVER->mkReal(1, 2))),
6251
        	                                      SOLVER->mkInteger(2))));
6252
        	                  p.d_kind = api::LAMBDA;
6253
        	                  p.d_expr = MK_TERM(api::LAMBDA, formals, expr);
6254
6255
        	        }
6256
6257
6258
        	    }
6259
        	    break;
6260
4
        	case 13:
6261
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:709:5: '$to_int'
6262
        	    {
6263
4
        	         MATCHT(90, &FOLLOW_90_in_definedFun1522);
6264
4
        	        if  (HASEXCEPTION())
6265
        	        {
6266
        	            goto ruledefinedFunEx;
6267
        	        }
6268
6269
6270
        	        {
6271
6272
4
        	                  p.d_kind = api::TO_INTEGER;
6273
6274
        	        }
6275
6276
6277
        	    }
6278
4
        	    break;
6279
4
        	case 14:
6280
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:713:5: '$to_rat'
6281
        	    {
6282
4
        	         MATCHT(91, &FOLLOW_91_in_definedFun1534);
6283
4
        	        if  (HASEXCEPTION())
6284
        	        {
6285
        	            goto ruledefinedFunEx;
6286
        	        }
6287
6288
6289
        	        {
6290
6291
4
        	                  p.d_kind = api::TO_REAL;
6292
6293
        	        }
6294
6295
6296
        	    }
6297
4
        	    break;
6298
4
        	case 15:
6299
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:717:5: '$to_real'
6300
        	    {
6301
4
        	         MATCHT(92, &FOLLOW_92_in_definedFun1546);
6302
4
        	        if  (HASEXCEPTION())
6303
        	        {
6304
        	            goto ruledefinedFunEx;
6305
        	        }
6306
6307
6308
        	        {
6309
6310
4
        	                  p.d_kind = api::TO_REAL;
6311
6312
        	        }
6313
6314
6315
        	    }
6316
4
        	    break;
6317
6318
            }
6319
        }
6320
    }
6321
6322
    // This is where rules clean up and exit
6323
    //
6324
57
    goto ruledefinedFunEx; /* Prevent compiler warnings */
6325
57
    ruledefinedFunEx: ;
6326
6327
57
            if (HASEXCEPTION())
6328
            {
6329
                PREPORTERROR();
6330
                PRECOVER();
6331
            }
6332
57
    return ;
6333
}
6334
/* $ANTLR end definedFun */
6335
6336
/**
6337
 * $ANTLR start equalOp
6338
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:726:1: equalOp[bool& equal] : ( EQUAL_TOK | DISEQUAL_TOK );
6339
 */
6340
static void
6341
1026
equalOp(pTptpParser ctx, bool& equal)
6342
{
6343
    /* Initialize rule variables
6344
     */
6345
6346
    {
6347
        {
6348
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:727:3: ( EQUAL_TOK | DISEQUAL_TOK )
6349
6350
            ANTLR3_UINT32 alt35;
6351
6352
1026
            alt35=2;
6353
6354
1026
            switch ( LA(1) )
6355
            {
6356
896
            case EQUAL_TOK:
6357
            	{
6358
896
            		alt35=1;
6359
            	}
6360
896
                break;
6361
130
            case DISEQUAL_TOK:
6362
            	{
6363
130
            		alt35=2;
6364
            	}
6365
130
                break;
6366
6367
            default:
6368
                CONSTRUCTEX();
6369
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6370
                EXCEPTION->message      = (void *)"";
6371
                EXCEPTION->decisionNum  = 35;
6372
                EXCEPTION->state        = 0;
6373
6374
6375
                goto ruleequalOpEx;
6376
6377
            }
6378
6379
1026
            switch (alt35)
6380
            {
6381
896
        	case 1:
6382
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:727:5: EQUAL_TOK
6383
        	    {
6384
896
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_equalOp1569);
6385
896
        	        if  (HASEXCEPTION())
6386
        	        {
6387
        	            goto ruleequalOpEx;
6388
        	        }
6389
6390
6391
        	        {
6392
896
        	             equal = true;
6393
        	        }
6394
6395
6396
        	    }
6397
896
        	    break;
6398
130
        	case 2:
6399
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:728:5: DISEQUAL_TOK
6400
        	    {
6401
130
        	         MATCHT(DISEQUAL_TOK, &FOLLOW_DISEQUAL_TOK_in_equalOp1580);
6402
130
        	        if  (HASEXCEPTION())
6403
        	        {
6404
        	            goto ruleequalOpEx;
6405
        	        }
6406
6407
6408
        	        {
6409
130
        	             equal = false;
6410
        	        }
6411
6412
6413
        	    }
6414
130
        	    break;
6415
6416
            }
6417
        }
6418
    }
6419
6420
    // This is where rules clean up and exit
6421
    //
6422
1026
    goto ruleequalOpEx; /* Prevent compiler warnings */
6423
1026
    ruleequalOpEx: ;
6424
6425
1026
            if (HASEXCEPTION())
6426
            {
6427
                PREPORTERROR();
6428
                PRECOVER();
6429
            }
6430
1026
    return ;
6431
}
6432
/* $ANTLR end equalOp */
6433
6434
/**
6435
 * $ANTLR start term
6436
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:731:1: term[cvc5::api::Term& expr] : ( functionTerm[expr] | conditionalTerm[expr] | simpleTerm[expr] | letTerm[expr] );
6437
 */
6438
static void
6439
917
term(pTptpParser ctx, cvc5::api::Term& expr)
6440
{
6441
    /* Initialize rule variables
6442
     */
6443
6444
    {
6445
        {
6446
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:732:3: ( functionTerm[expr] | conditionalTerm[expr] | simpleTerm[expr] | letTerm[expr] )
6447
6448
            ANTLR3_UINT32 alt36;
6449
6450
917
            alt36=4;
6451
6452
917
            switch ( LA(1) )
6453
            {
6454
360
            case CNF_TOK:
6455
            case FOF_TOK:
6456
            case INCLUDE_TOK:
6457
            case LOWER_WORD:
6458
            case LOWER_WORD_SINGLE_QUOTED:
6459
            case SINGLE_QUOTED:
6460
            case TFF_TOK:
6461
            case THF_TOK:
6462
            case TYPE_TOK:
6463
            case 63:
6464
            case 64:
6465
            case 66:
6466
            case 79:
6467
            case 80:
6468
            case 81:
6469
            case 82:
6470
            case 83:
6471
            case 84:
6472
            case 85:
6473
            case 86:
6474
            case 87:
6475
            case 88:
6476
            case 90:
6477
            case 91:
6478
            case 92:
6479
            case 93:
6480
            case 94:
6481
            	{
6482
360
            		alt36=1;
6483
            	}
6484
360
                break;
6485
2
            case 72:
6486
            	{
6487
2
            		alt36=2;
6488
            	}
6489
2
                break;
6490
553
            case DISTINCT_OBJECT:
6491
            case NUMBER:
6492
            case UPPER_WORD:
6493
            	{
6494
553
            		alt36=3;
6495
            	}
6496
553
                break;
6497
2
            case 76:
6498
            case 78:
6499
            	{
6500
2
            		alt36=4;
6501
            	}
6502
2
                break;
6503
6504
            default:
6505
                CONSTRUCTEX();
6506
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6507
                EXCEPTION->message      = (void *)"";
6508
                EXCEPTION->decisionNum  = 36;
6509
                EXCEPTION->state        = 0;
6510
6511
6512
                goto ruletermEx;
6513
6514
            }
6515
6516
917
            switch (alt36)
6517
            {
6518
360
        	case 1:
6519
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:732:5: functionTerm[expr]
6520
        	    {
6521
360
        	        FOLLOWPUSH(FOLLOW_functionTerm_in_term1596);
6522
360
        	        functionTerm(ctx, expr);
6523
6524
360
        	        FOLLOWPOP();
6525
360
        	        if  (HASEXCEPTION())
6526
        	        {
6527
        	            goto ruletermEx;
6528
        	        }
6529
6530
6531
        	    }
6532
360
        	    break;
6533
2
        	case 2:
6534
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:733:5: conditionalTerm[expr]
6535
        	    {
6536
2
        	        FOLLOWPUSH(FOLLOW_conditionalTerm_in_term1603);
6537
2
        	        conditionalTerm(ctx, expr);
6538
6539
2
        	        FOLLOWPOP();
6540
2
        	        if  (HASEXCEPTION())
6541
        	        {
6542
        	            goto ruletermEx;
6543
        	        }
6544
6545
6546
        	    }
6547
2
        	    break;
6548
553
        	case 3:
6549
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:734:5: simpleTerm[expr]
6550
        	    {
6551
553
        	        FOLLOWPUSH(FOLLOW_simpleTerm_in_term1610);
6552
553
        	        simpleTerm(ctx, expr);
6553
6554
553
        	        FOLLOWPOP();
6555
553
        	        if  (HASEXCEPTION())
6556
        	        {
6557
        	            goto ruletermEx;
6558
        	        }
6559
6560
6561
        	    }
6562
553
        	    break;
6563
2
        	case 4:
6564
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:735:5: letTerm[expr]
6565
        	    {
6566
2
        	        FOLLOWPUSH(FOLLOW_letTerm_in_term1617);
6567
2
        	        letTerm(ctx, expr);
6568
6569
2
        	        FOLLOWPOP();
6570
2
        	        if  (HASEXCEPTION())
6571
        	        {
6572
        	            goto ruletermEx;
6573
        	        }
6574
6575
6576
        	    }
6577
2
        	    break;
6578
6579
            }
6580
        }
6581
    }
6582
6583
    // This is where rules clean up and exit
6584
    //
6585
917
    goto ruletermEx; /* Prevent compiler warnings */
6586
917
    ruletermEx: ;
6587
6588
917
            if (HASEXCEPTION())
6589
            {
6590
                PREPORTERROR();
6591
                PRECOVER();
6592
            }
6593
917
    return ;
6594
}
6595
/* $ANTLR end term */
6596
6597
/**
6598
 * $ANTLR start letTerm
6599
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:738: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 );
6600
 */
6601
static void
6602
2
letTerm(pTptpParser ctx, cvc5::api::Term& expr)
6603
{
6604
6605
4
      cvc5::api::Term lhs, rhs;
6606
6607
    /* Initialize rule variables
6608
     */
6609
6610
    {
6611
        {
6612
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:742: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 )
6613
6614
            ANTLR3_UINT32 alt37;
6615
6616
2
            alt37=2;
6617
6618
2
            switch ( LA(1) )
6619
            {
6620
1
            case 76:
6621
            	{
6622
1
            		alt37=1;
6623
            	}
6624
1
                break;
6625
1
            case 78:
6626
            	{
6627
1
            		alt37=2;
6628
            	}
6629
1
                break;
6630
6631
            default:
6632
                CONSTRUCTEX();
6633
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6634
                EXCEPTION->message      = (void *)"";
6635
                EXCEPTION->decisionNum  = 37;
6636
                EXCEPTION->state        = 0;
6637
6638
6639
                goto ruleletTermEx;
6640
6641
            }
6642
6643
2
            switch (alt37)
6644
            {
6645
1
        	case 1:
6646
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:742:5: '$let_ft' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK
6647
        	    {
6648
1
        	         MATCHT(76, &FOLLOW_76_in_letTerm1637);
6649
1
        	        if  (HASEXCEPTION())
6650
        	        {
6651
        	            goto ruleletTermEx;
6652
        	        }
6653
6654
6655
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_letTerm1639);
6656
1
        	        if  (HASEXCEPTION())
6657
        	        {
6658
        	            goto ruleletTermEx;
6659
        	        }
6660
6661
6662
        	        {
6663
1
        	             PARSER_STATE->pushScope();
6664
        	        }
6665
6666
6667
1
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaDefn_in_letTerm1647);
6668
1
        	        tffLetFormulaDefn(ctx, lhs, rhs);
6669
6670
1
        	        FOLLOWPOP();
6671
1
        	        if  (HASEXCEPTION())
6672
        	        {
6673
        	            goto ruleletTermEx;
6674
        	        }
6675
6676
6677
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_letTerm1650);
6678
1
        	        if  (HASEXCEPTION())
6679
        	        {
6680
        	            goto ruleletTermEx;
6681
        	        }
6682
6683
6684
1
        	        FOLLOWPUSH(FOLLOW_term_in_letTerm1656);
6685
1
        	        term(ctx, expr);
6686
6687
1
        	        FOLLOWPOP();
6688
1
        	        if  (HASEXCEPTION())
6689
        	        {
6690
        	            goto ruleletTermEx;
6691
        	        }
6692
6693
6694
        	        {
6695
1
        	             PARSER_STATE->popScope();
6696
1
        	                  expr = expr.substitute(lhs, rhs);
6697
6698
        	        }
6699
6700
6701
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_letTerm1669);
6702
1
        	        if  (HASEXCEPTION())
6703
        	        {
6704
        	            goto ruleletTermEx;
6705
        	        }
6706
6707
6708
        	    }
6709
1
        	    break;
6710
1
        	case 2:
6711
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:749:5: '$let_tt' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK term[expr] RPAREN_TOK
6712
        	    {
6713
1
        	         MATCHT(78, &FOLLOW_78_in_letTerm1675);
6714
1
        	        if  (HASEXCEPTION())
6715
        	        {
6716
        	            goto ruleletTermEx;
6717
        	        }
6718
6719
6720
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_letTerm1677);
6721
1
        	        if  (HASEXCEPTION())
6722
        	        {
6723
        	            goto ruleletTermEx;
6724
        	        }
6725
6726
6727
        	        {
6728
1
        	             PARSER_STATE->pushScope();
6729
        	        }
6730
6731
6732
1
        	        FOLLOWPUSH(FOLLOW_tffLetTermDefn_in_letTerm1685);
6733
1
        	        tffLetTermDefn(ctx, lhs, rhs);
6734
6735
1
        	        FOLLOWPOP();
6736
1
        	        if  (HASEXCEPTION())
6737
        	        {
6738
        	            goto ruleletTermEx;
6739
        	        }
6740
6741
6742
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_letTerm1688);
6743
1
        	        if  (HASEXCEPTION())
6744
        	        {
6745
        	            goto ruleletTermEx;
6746
        	        }
6747
6748
6749
1
        	        FOLLOWPUSH(FOLLOW_term_in_letTerm1694);
6750
1
        	        term(ctx, expr);
6751
6752
1
        	        FOLLOWPOP();
6753
1
        	        if  (HASEXCEPTION())
6754
        	        {
6755
        	            goto ruleletTermEx;
6756
        	        }
6757
6758
6759
        	        {
6760
1
        	             PARSER_STATE->popScope();
6761
1
        	                  expr = expr.substitute(lhs, rhs);
6762
6763
        	        }
6764
6765
6766
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_letTerm1707);
6767
1
        	        if  (HASEXCEPTION())
6768
        	        {
6769
        	            goto ruleletTermEx;
6770
        	        }
6771
6772
6773
        	    }
6774
1
        	    break;
6775
6776
            }
6777
        }
6778
    }
6779
6780
    // This is where rules clean up and exit
6781
    //
6782
2
    goto ruleletTermEx; /* Prevent compiler warnings */
6783
2
    ruleletTermEx: ;
6784
6785
2
            if (HASEXCEPTION())
6786
            {
6787
                PREPORTERROR();
6788
                PRECOVER();
6789
            }
6790
4
    return ;
6791
}
6792
/* $ANTLR end letTerm */
6793
6794
/**
6795
 * $ANTLR start simpleTerm
6796
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:759:1: simpleTerm[cvc5::api::Term& expr] : ( variable[expr] | NUMBER | DISTINCT_OBJECT );
6797
 */
6798
static void
6799
590
simpleTerm(pTptpParser ctx, cvc5::api::Term& expr)
6800
{
6801
    pANTLR3_COMMON_TOKEN    DISTINCT_OBJECT2;
6802
6803
    /* Initialize rule variables
6804
     */
6805
6806
590
    DISTINCT_OBJECT2       = NULL;
6807
6808
    {
6809
        {
6810
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:760:3: ( variable[expr] | NUMBER | DISTINCT_OBJECT )
6811
6812
            ANTLR3_UINT32 alt38;
6813
6814
590
            alt38=3;
6815
6816
590
            switch ( LA(1) )
6817
            {
6818
431
            case UPPER_WORD:
6819
            	{
6820
431
            		alt38=1;
6821
            	}
6822
431
                break;
6823
153
            case NUMBER:
6824
            	{
6825
153
            		alt38=2;
6826
            	}
6827
153
                break;
6828
6
            case DISTINCT_OBJECT:
6829
            	{
6830
6
            		alt38=3;
6831
            	}
6832
6
                break;
6833
6834
            default:
6835
                CONSTRUCTEX();
6836
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6837
                EXCEPTION->message      = (void *)"";
6838
                EXCEPTION->decisionNum  = 38;
6839
                EXCEPTION->state        = 0;
6840
6841
6842
                goto rulesimpleTermEx;
6843
6844
            }
6845
6846
590
            switch (alt38)
6847
            {
6848
431
        	case 1:
6849
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:760:5: variable[expr]
6850
        	    {
6851
431
        	        FOLLOWPUSH(FOLLOW_variable_in_simpleTerm1723);
6852
431
        	        variable(ctx, expr);
6853
6854
431
        	        FOLLOWPOP();
6855
431
        	        if  (HASEXCEPTION())
6856
        	        {
6857
        	            goto rulesimpleTermEx;
6858
        	        }
6859
6860
6861
        	    }
6862
431
        	    break;
6863
153
        	case 2:
6864
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:761:5: NUMBER
6865
        	    {
6866
153
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_simpleTerm1730);
6867
153
        	        if  (HASEXCEPTION())
6868
        	        {
6869
        	            goto rulesimpleTermEx;
6870
        	        }
6871
6872
6873
        	        {
6874
153
        	             expr = PARSER_STATE->d_tmp_expr;
6875
        	        }
6876
6877
6878
        	    }
6879
153
        	    break;
6880
6
        	case 3:
6881
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:762:5: DISTINCT_OBJECT
6882
        	    {
6883
6
        	        DISTINCT_OBJECT2 = (pANTLR3_COMMON_TOKEN) MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_simpleTerm1738);
6884
6
        	        if  (HASEXCEPTION())
6885
        	        {
6886
        	            goto rulesimpleTermEx;
6887
        	        }
6888
6889
6890
        	        {
6891
6
        	             expr = PARSER_STATE->convertStrToUnsorted(AntlrInput::tokenText(DISTINCT_OBJECT2));
6892
        	        }
6893
6894
6895
        	    }
6896
6
        	    break;
6897
6898
            }
6899
        }
6900
    }
6901
6902
    // This is where rules clean up and exit
6903
    //
6904
590
    goto rulesimpleTermEx; /* Prevent compiler warnings */
6905
590
    rulesimpleTermEx: ;
6906
6907
590
            if (HASEXCEPTION())
6908
            {
6909
                PREPORTERROR();
6910
                PRECOVER();
6911
            }
6912
590
    return ;
6913
}
6914
/* $ANTLR end simpleTerm */
6915
6916
/**
6917
 * $ANTLR start thfSimpleTerm
6918
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:766:1: thfSimpleTerm[cvc5::api::Term& expr] : ( NUMBER | DISTINCT_OBJECT );
6919
 */
6920
static void
6921
thfSimpleTerm(pTptpParser ctx, cvc5::api::Term& expr)
6922
{
6923
    pANTLR3_COMMON_TOKEN    DISTINCT_OBJECT3;
6924
6925
    /* Initialize rule variables
6926
     */
6927
6928
    DISTINCT_OBJECT3       = NULL;
6929
6930
    {
6931
        {
6932
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:767:3: ( NUMBER | DISTINCT_OBJECT )
6933
6934
            ANTLR3_UINT32 alt39;
6935
6936
            alt39=2;
6937
6938
            switch ( LA(1) )
6939
            {
6940
            case NUMBER:
6941
            	{
6942
            		alt39=1;
6943
            	}
6944
                break;
6945
            case DISTINCT_OBJECT:
6946
            	{
6947
            		alt39=2;
6948
            	}
6949
                break;
6950
6951
            default:
6952
                CONSTRUCTEX();
6953
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
6954
                EXCEPTION->message      = (void *)"";
6955
                EXCEPTION->decisionNum  = 39;
6956
                EXCEPTION->state        = 0;
6957
6958
6959
                goto rulethfSimpleTermEx;
6960
6961
            }
6962
6963
            switch (alt39)
6964
            {
6965
        	case 1:
6966
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:767:5: NUMBER
6967
        	    {
6968
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_thfSimpleTerm1756);
6969
        	        if  (HASEXCEPTION())
6970
        	        {
6971
        	            goto rulethfSimpleTermEx;
6972
        	        }
6973
6974
6975
        	        {
6976
        	             expr = PARSER_STATE->d_tmp_expr;
6977
        	        }
6978
6979
6980
        	    }
6981
        	    break;
6982
        	case 2:
6983
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:768:5: DISTINCT_OBJECT
6984
        	    {
6985
        	        DISTINCT_OBJECT3 = (pANTLR3_COMMON_TOKEN) MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_thfSimpleTerm1764);
6986
        	        if  (HASEXCEPTION())
6987
        	        {
6988
        	            goto rulethfSimpleTermEx;
6989
        	        }
6990
6991
6992
        	        {
6993
6994
        	                  expr = PARSER_STATE->convertStrToUnsorted(
6995
        	                      AntlrInput::tokenText(DISTINCT_OBJECT3));
6996
6997
        	        }
6998
6999
7000
        	    }
7001
        	    break;
7002
7003
            }
7004
        }
7005
    }
7006
7007
    // This is where rules clean up and exit
7008
    //
7009
    goto rulethfSimpleTermEx; /* Prevent compiler warnings */
7010
    rulethfSimpleTermEx: ;
7011
7012
            if (HASEXCEPTION())
7013
            {
7014
                PREPORTERROR();
7015
                PRECOVER();
7016
            }
7017
    return ;
7018
}
7019
/* $ANTLR end thfSimpleTerm */
7020
7021
/**
7022
 * $ANTLR start functionTerm
7023
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:775:1: functionTerm[cvc5::api::Term& expr] : ( plainTerm[expr] | definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK );
7024
 */
7025
static void
7026
360
functionTerm(pTptpParser ctx, cvc5::api::Term& expr)
7027
{
7028
7029
720
      std::vector<cvc5::api::Term> args;
7030
720
      ParseOp p;
7031
7032
    /* Initialize rule variables
7033
     */
7034
7035
    {
7036
        {
7037
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:780:3: ( plainTerm[expr] | definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK )
7038
7039
            ANTLR3_UINT32 alt40;
7040
7041
360
            alt40=2;
7042
7043
360
            switch ( LA(1) )
7044
            {
7045
305
            case CNF_TOK:
7046
            case FOF_TOK:
7047
            case INCLUDE_TOK:
7048
            case LOWER_WORD:
7049
            case LOWER_WORD_SINGLE_QUOTED:
7050
            case SINGLE_QUOTED:
7051
            case TFF_TOK:
7052
            case THF_TOK:
7053
            case TYPE_TOK:
7054
            	{
7055
305
            		alt40=1;
7056
            	}
7057
305
                break;
7058
55
            case 63:
7059
            case 64:
7060
            case 66:
7061
            case 79:
7062
            case 80:
7063
            case 81:
7064
            case 82:
7065
            case 83:
7066
            case 84:
7067
            case 85:
7068
            case 86:
7069
            case 87:
7070
            case 88:
7071
            case 90:
7072
            case 91:
7073
            case 92:
7074
            case 93:
7075
            case 94:
7076
            	{
7077
55
            		alt40=2;
7078
            	}
7079
55
                break;
7080
7081
            default:
7082
                CONSTRUCTEX();
7083
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7084
                EXCEPTION->message      = (void *)"";
7085
                EXCEPTION->decisionNum  = 40;
7086
                EXCEPTION->state        = 0;
7087
7088
7089
                goto rulefunctionTermEx;
7090
7091
            }
7092
7093
360
            switch (alt40)
7094
            {
7095
305
        	case 1:
7096
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:780:5: plainTerm[expr]
7097
        	    {
7098
305
        	        FOLLOWPUSH(FOLLOW_plainTerm_in_functionTerm1789);
7099
305
        	        plainTerm(ctx, expr);
7100
7101
305
        	        FOLLOWPOP();
7102
305
        	        if  (HASEXCEPTION())
7103
        	        {
7104
        	            goto rulefunctionTermEx;
7105
        	        }
7106
7107
7108
        	    }
7109
305
        	    break;
7110
55
        	case 2:
7111
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:781:5: definedFun[p] LPAREN_TOK arguments[args] RPAREN_TOK
7112
        	    {
7113
55
        	        FOLLOWPUSH(FOLLOW_definedFun_in_functionTerm1796);
7114
55
        	        definedFun(ctx, p);
7115
7116
55
        	        FOLLOWPOP();
7117
55
        	        if  (HASEXCEPTION())
7118
        	        {
7119
        	            goto rulefunctionTermEx;
7120
        	        }
7121
7122
7123
55
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_functionTerm1799);
7124
55
        	        if  (HASEXCEPTION())
7125
        	        {
7126
        	            goto rulefunctionTermEx;
7127
        	        }
7128
7129
7130
55
        	        FOLLOWPUSH(FOLLOW_arguments_in_functionTerm1801);
7131
55
        	        arguments(ctx, args);
7132
7133
55
        	        FOLLOWPOP();
7134
55
        	        if  (HASEXCEPTION())
7135
        	        {
7136
        	            goto rulefunctionTermEx;
7137
        	        }
7138
7139
7140
55
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_functionTerm1804);
7141
55
        	        if  (HASEXCEPTION())
7142
        	        {
7143
        	            goto rulefunctionTermEx;
7144
        	        }
7145
7146
7147
        	        {
7148
7149
55
        	                  expr = PARSER_STATE->applyParseOp(p, args);
7150
7151
        	        }
7152
7153
7154
        	    }
7155
55
        	    break;
7156
7157
            }
7158
        }
7159
    }
7160
7161
    // This is where rules clean up and exit
7162
    //
7163
360
    goto rulefunctionTermEx; /* Prevent compiler warnings */
7164
360
    rulefunctionTermEx: ;
7165
7166
360
            if (HASEXCEPTION())
7167
            {
7168
                PREPORTERROR();
7169
                PRECOVER();
7170
            }
7171
720
    return ;
7172
}
7173
/* $ANTLR end functionTerm */
7174
7175
/**
7176
 * $ANTLR start conditionalTerm
7177
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:787:1: conditionalTerm[cvc5::api::Term& expr] : '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK ;
7178
 */
7179
static void
7180
2
conditionalTerm(pTptpParser ctx, cvc5::api::Term& expr)
7181
{
7182
7183
4
      cvc5::api::Term expr2, expr3;
7184
7185
    /* Initialize rule variables
7186
     */
7187
7188
    {
7189
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:791:3: ( '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK )
7190
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:791:5: '$ite_t' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK term[expr2] COMMA_TOK term[expr3] RPAREN_TOK
7191
        {
7192
2
             MATCHT(72, &FOLLOW_72_in_conditionalTerm1829);
7193
2
            if  (HASEXCEPTION())
7194
            {
7195
                goto ruleconditionalTermEx;
7196
            }
7197
7198
7199
2
             MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_conditionalTerm1831);
7200
2
            if  (HASEXCEPTION())
7201
            {
7202
                goto ruleconditionalTermEx;
7203
            }
7204
7205
7206
2
            FOLLOWPUSH(FOLLOW_tffLogicFormula_in_conditionalTerm1833);
7207
2
            tffLogicFormula(ctx, expr);
7208
7209
2
            FOLLOWPOP();
7210
2
            if  (HASEXCEPTION())
7211
            {
7212
                goto ruleconditionalTermEx;
7213
            }
7214
7215
7216
2
             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_conditionalTerm1836);
7217
2
            if  (HASEXCEPTION())
7218
            {
7219
                goto ruleconditionalTermEx;
7220
            }
7221
7222
7223
2
            FOLLOWPUSH(FOLLOW_term_in_conditionalTerm1838);
7224
2
            term(ctx, expr2);
7225
7226
2
            FOLLOWPOP();
7227
2
            if  (HASEXCEPTION())
7228
            {
7229
                goto ruleconditionalTermEx;
7230
            }
7231
7232
7233
2
             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_conditionalTerm1841);
7234
2
            if  (HASEXCEPTION())
7235
            {
7236
                goto ruleconditionalTermEx;
7237
            }
7238
7239
7240
2
            FOLLOWPUSH(FOLLOW_term_in_conditionalTerm1843);
7241
2
            term(ctx, expr3);
7242
7243
2
            FOLLOWPOP();
7244
2
            if  (HASEXCEPTION())
7245
            {
7246
                goto ruleconditionalTermEx;
7247
            }
7248
7249
7250
2
             MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_conditionalTerm1846);
7251
2
            if  (HASEXCEPTION())
7252
            {
7253
                goto ruleconditionalTermEx;
7254
            }
7255
7256
7257
            {
7258
2
                 expr = MK_TERM(api::ITE, expr, expr2, expr3);
7259
            }
7260
7261
7262
        }
7263
7264
    }
7265
7266
    // This is where rules clean up and exit
7267
    //
7268
2
    goto ruleconditionalTermEx; /* Prevent compiler warnings */
7269
2
    ruleconditionalTermEx: ;
7270
7271
2
            if (HASEXCEPTION())
7272
            {
7273
                PREPORTERROR();
7274
                PRECOVER();
7275
            }
7276
4
    return ;
7277
}
7278
/* $ANTLR end conditionalTerm */
7279
7280
/**
7281
 * $ANTLR start plainTerm
7282
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:795:1: plainTerm[cvc5::api::Term& expr] : atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? ;
7283
 */
7284
static void
7285
305
plainTerm(pTptpParser ctx, cvc5::api::Term& expr)
7286
{
7287
7288
610
      std::string name;
7289
610
      std::vector<api::Term> args;
7290
610
      ParseOp p;
7291
7292
    /* Initialize rule variables
7293
     */
7294
7295
    {
7296
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:801:3: ( atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )? )
7297
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:801:5: atomicWord[p.d_name] ( LPAREN_TOK arguments[args] RPAREN_TOK )?
7298
        {
7299
305
            FOLLOWPUSH(FOLLOW_atomicWord_in_plainTerm1871);
7300
305
            atomicWord(ctx, p.d_name);
7301
7302
305
            FOLLOWPOP();
7303
305
            if  (HASEXCEPTION())
7304
            {
7305
                goto ruleplainTermEx;
7306
            }
7307
7308
7309
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:801:26: ( LPAREN_TOK arguments[args] RPAREN_TOK )?
7310
            {
7311
305
                int alt41=2;
7312
305
                switch ( LA(1) )
7313
                {
7314
135
                    case LPAREN_TOK:
7315
                    	{
7316
135
                    		alt41=1;
7317
                    	}
7318
135
                        break;
7319
                }
7320
7321
305
                switch (alt41)
7322
                {
7323
135
            	case 1:
7324
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:801:27: LPAREN_TOK arguments[args] RPAREN_TOK
7325
            	    {
7326
135
            	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_plainTerm1875);
7327
135
            	        if  (HASEXCEPTION())
7328
            	        {
7329
            	            goto ruleplainTermEx;
7330
            	        }
7331
7332
7333
135
            	        FOLLOWPUSH(FOLLOW_arguments_in_plainTerm1877);
7334
135
            	        arguments(ctx, args);
7335
7336
135
            	        FOLLOWPOP();
7337
135
            	        if  (HASEXCEPTION())
7338
            	        {
7339
            	            goto ruleplainTermEx;
7340
            	        }
7341
7342
7343
135
            	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_plainTerm1880);
7344
135
            	        if  (HASEXCEPTION())
7345
            	        {
7346
            	            goto ruleplainTermEx;
7347
            	        }
7348
7349
7350
            	    }
7351
135
            	    break;
7352
7353
                }
7354
            }
7355
7356
            {
7357
7358
440
                      expr = args.empty() ? PARSER_STATE->parseOpToExpr(p)
7359
135
                                          : PARSER_STATE->applyParseOp(p, args);
7360
7361
            }
7362
7363
7364
        }
7365
7366
    }
7367
7368
    // This is where rules clean up and exit
7369
    //
7370
305
    goto ruleplainTermEx; /* Prevent compiler warnings */
7371
305
    ruleplainTermEx: ;
7372
7373
305
            if (HASEXCEPTION())
7374
            {
7375
                PREPORTERROR();
7376
                PRECOVER();
7377
            }
7378
610
    return ;
7379
}
7380
/* $ANTLR end plainTerm */
7381
7382
/**
7383
 * $ANTLR start arguments
7384
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:808:1: arguments[std::vector<cvc5::api::Term>& args] : term[expr] ( COMMA_TOK term[expr] )* ;
7385
 */
7386
static void
7387
587
arguments(pTptpParser ctx, std::vector<cvc5::api::Term>& args)
7388
{
7389
7390
1174
      cvc5::api::Term expr;
7391
7392
    /* Initialize rule variables
7393
     */
7394
7395
    {
7396
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:812:3: ( term[expr] ( COMMA_TOK term[expr] )* )
7397
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:813:3: term[expr] ( COMMA_TOK term[expr] )*
7398
        {
7399
587
            FOLLOWPUSH(FOLLOW_term_in_arguments1909);
7400
587
            term(ctx, expr);
7401
7402
587
            FOLLOWPOP();
7403
587
            if  (HASEXCEPTION())
7404
            {
7405
                goto ruleargumentsEx;
7406
            }
7407
7408
7409
            {
7410
587
                 args.push_back(expr);
7411
            }
7412
7413
7414
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:813:40: ( COMMA_TOK term[expr] )*
7415
7416
            for (;;)
7417
            {
7418
842
                int alt42=2;
7419
842
                switch ( LA(1) )
7420
                {
7421
255
                case COMMA_TOK:
7422
                	{
7423
255
                		alt42=1;
7424
                	}
7425
255
                    break;
7426
7427
                }
7428
7429
842
                switch (alt42)
7430
                {
7431
255
            	case 1:
7432
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:813:42: COMMA_TOK term[expr]
7433
            	    {
7434
255
            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_arguments1916);
7435
255
            	        if  (HASEXCEPTION())
7436
            	        {
7437
            	            goto ruleargumentsEx;
7438
            	        }
7439
7440
7441
255
            	        FOLLOWPUSH(FOLLOW_term_in_arguments1918);
7442
255
            	        term(ctx, expr);
7443
7444
255
            	        FOLLOWPOP();
7445
255
            	        if  (HASEXCEPTION())
7446
            	        {
7447
            	            goto ruleargumentsEx;
7448
            	        }
7449
7450
7451
            	        {
7452
255
            	             args.push_back(expr);
7453
            	        }
7454
7455
7456
            	    }
7457
255
            	    break;
7458
7459
587
            	default:
7460
587
            	    goto loop42;	/* break out of the loop */
7461
            	    break;
7462
                }
7463
255
            }
7464
587
            loop42: ; /* Jump out to here if this rule does not match */
7465
7466
7467
        }
7468
7469
    }
7470
7471
    // This is where rules clean up and exit
7472
    //
7473
587
    goto ruleargumentsEx; /* Prevent compiler warnings */
7474
587
    ruleargumentsEx: ;
7475
7476
587
            if (HASEXCEPTION())
7477
            {
7478
                PREPORTERROR();
7479
                PRECOVER();
7480
            }
7481
1174
    return ;
7482
}
7483
/* $ANTLR end arguments */
7484
7485
/**
7486
 * $ANTLR start variable
7487
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:816:1: variable[cvc5::api::Term& expr] : UPPER_WORD ;
7488
 */
7489
static void
7490
6163
variable(pTptpParser ctx, cvc5::api::Term& expr)
7491
{
7492
    pANTLR3_COMMON_TOKEN    UPPER_WORD4;
7493
7494
    /* Initialize rule variables
7495
     */
7496
7497
6163
    UPPER_WORD4       = NULL;
7498
7499
    {
7500
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:817:3: ( UPPER_WORD )
7501
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:817:5: UPPER_WORD
7502
        {
7503
6163
            UPPER_WORD4 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_variable1938);
7504
6163
            if  (HASEXCEPTION())
7505
            {
7506
                goto rulevariableEx;
7507
            }
7508
7509
7510
            {
7511
7512
12326
                      std::string name = AntlrInput::tokenText(UPPER_WORD4);
7513
6163
                      if(!PARSER_STATE->cnf() || PARSER_STATE->isDeclared(name)) {
7514
6104
                        expr = PARSER_STATE->getVariable(name);
7515
                      } else {
7516
59
                        expr = PARSER_STATE->bindBoundVar(name, PARSER_STATE->d_unsorted);
7517
59
                        if(PARSER_STATE->cnf()) PARSER_STATE->addFreeVar(expr);
7518
                      }
7519
7520
            }
7521
7522
7523
        }
7524
7525
    }
7526
7527
    // This is where rules clean up and exit
7528
    //
7529
6163
    goto rulevariableEx; /* Prevent compiler warnings */
7530
6163
    rulevariableEx: ;
7531
7532
6163
            if (HASEXCEPTION())
7533
            {
7534
                PREPORTERROR();
7535
                PRECOVER();
7536
            }
7537
6163
    return ;
7538
}
7539
/* $ANTLR end variable */
7540
7541
/**
7542
 * $ANTLR start fofFormula
7543
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:831:1: fofFormula[cvc5::api::Term& expr] : fofLogicFormula[expr] ;
7544
 */
7545
static void
7546
75
fofFormula(pTptpParser ctx, cvc5::api::Term& expr)
7547
{
7548
    /* Initialize rule variables
7549
     */
7550
7551
    {
7552
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:831:35: ( fofLogicFormula[expr] )
7553
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:831:37: fofLogicFormula[expr]
7554
        {
7555
75
            FOLLOWPUSH(FOLLOW_fofLogicFormula_in_fofFormula1962);
7556
75
            fofLogicFormula(ctx, expr);
7557
7558
75
            FOLLOWPOP();
7559
75
            if  (HASEXCEPTION())
7560
            {
7561
                goto rulefofFormulaEx;
7562
            }
7563
7564
7565
        }
7566
7567
    }
7568
7569
    // This is where rules clean up and exit
7570
    //
7571
75
    goto rulefofFormulaEx; /* Prevent compiler warnings */
7572
75
    rulefofFormulaEx: ;
7573
7574
75
            if (HASEXCEPTION())
7575
            {
7576
                PREPORTERROR();
7577
                PRECOVER();
7578
            }
7579
75
    return ;
7580
}
7581
/* $ANTLR end fofFormula */
7582
7583
/**
7584
 * $ANTLR start fofLogicFormula
7585
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:833:1: fofLogicFormula[cvc5::api::Term& expr] : fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )? ;
7586
 */
7587
static void
7588
207
fofLogicFormula(pTptpParser ctx, cvc5::api::Term& expr)
7589
{
7590
7591
      tptp::NonAssoc na;
7592
414
      std::vector< cvc5::api::Term > args;
7593
414
      cvc5::api::Term expr2;
7594
7595
    /* Initialize rule variables
7596
     */
7597
7598
    {
7599
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:839:3: ( fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )? )
7600
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:839:5: fofUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )?
7601
        {
7602
207
            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula1980);
7603
207
            fofUnitaryFormula(ctx, expr);
7604
7605
207
            FOLLOWPOP();
7606
207
            if  (HASEXCEPTION())
7607
            {
7608
                goto rulefofLogicFormulaEx;
7609
            }
7610
7611
7612
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:840:5: ( ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] ) | ( ( AND_TOK fofUnitaryFormula[expr] )+ ) | ( ( OR_TOK fofUnitaryFormula[expr] )+ ) )?
7613
            {
7614
207
                int alt45=4;
7615
207
                switch ( LA(1) )
7616
                {
7617
36
                    case IFF_TOK:
7618
                    case IMPLIES_TOK:
7619
                    case REVAND_TOK:
7620
                    case REVIFF_TOK:
7621
                    case REVIMPLIES_TOK:
7622
                    case REVOR_TOK:
7623
                    	{
7624
36
                    		alt45=1;
7625
                    	}
7626
36
                        break;
7627
26
                    case AND_TOK:
7628
                    	{
7629
26
                    		alt45=2;
7630
                    	}
7631
26
                        break;
7632
11
                    case OR_TOK:
7633
                    	{
7634
11
                    		alt45=3;
7635
                    	}
7636
11
                        break;
7637
                }
7638
7639
207
                switch (alt45)
7640
                {
7641
36
            	case 1:
7642
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:841:7: ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] )
7643
            	    {
7644
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:841:7: ( fofBinaryNonAssoc[na] fofUnitaryFormula[expr2] )
7645
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:841:9: fofBinaryNonAssoc[na] fofUnitaryFormula[expr2]
7646
            	        {
7647
36
            	            FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_fofLogicFormula1998);
7648
36
            	            fofBinaryNonAssoc(ctx, na);
7649
7650
36
            	            FOLLOWPOP();
7651
36
            	            if  (HASEXCEPTION())
7652
            	            {
7653
            	                goto rulefofLogicFormulaEx;
7654
            	            }
7655
7656
7657
36
            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2001);
7658
36
            	            fofUnitaryFormula(ctx, expr2);
7659
7660
36
            	            FOLLOWPOP();
7661
36
            	            if  (HASEXCEPTION())
7662
            	            {
7663
            	                goto rulefofLogicFormulaEx;
7664
            	            }
7665
7666
7667
            	            {
7668
36
            	                 switch(na) {
7669
6
            	                           case tptp::NA_IFF:
7670
6
            	                             expr = MK_TERM(api::EQUAL,expr,expr2);
7671
6
            	                             break;
7672
1
            	                           case tptp::NA_REVIFF:
7673
1
            	                             expr = MK_TERM(api::XOR,expr,expr2);
7674
1
            	                             break;
7675
26
            	                           case tptp::NA_IMPLIES:
7676
26
            	                             expr = MK_TERM(api::IMPLIES,expr,expr2);
7677
26
            	                             break;
7678
1
            	                           case tptp::NA_REVIMPLIES:
7679
1
            	                             expr = MK_TERM(api::IMPLIES,expr2,expr);
7680
1
            	                             break;
7681
1
            	                           case tptp::NA_REVOR:
7682
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::OR,expr,expr2));
7683
1
            	                             break;
7684
1
            	                           case tptp::NA_REVAND:
7685
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::AND,expr,expr2));
7686
1
            	                             break;
7687
            	                          }
7688
7689
            	            }
7690
7691
7692
            	        }
7693
7694
7695
            	    }
7696
36
            	    break;
7697
26
            	case 2:
7698
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:865:7: ( ( AND_TOK fofUnitaryFormula[expr] )+ )
7699
            	    {
7700
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:865:7: ( ( AND_TOK fofUnitaryFormula[expr] )+ )
7701
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:865:9: ( AND_TOK fofUnitaryFormula[expr] )+
7702
            	        {
7703
            	            {
7704
26
            	                 args.push_back(expr);
7705
            	            }
7706
7707
7708
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:866:9: ( AND_TOK fofUnitaryFormula[expr] )+
7709
            	            {
7710
26
            	                int cnt43=0;
7711
7712
            	                for (;;)
7713
            	                {
7714
52
            	                    int alt43=2;
7715
52
            	            	switch ( LA(1) )
7716
            	            	{
7717
26
            	            	case AND_TOK:
7718
            	            		{
7719
26
            	            			alt43=1;
7720
            	            		}
7721
26
            	            	    break;
7722
7723
            	            	}
7724
7725
52
            	            	switch (alt43)
7726
            	            	{
7727
26
            	            	    case 1:
7728
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:866:11: AND_TOK fofUnitaryFormula[expr]
7729
            	            	        {
7730
26
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_fofLogicFormula2049);
7731
26
            	            	            if  (HASEXCEPTION())
7732
            	            	            {
7733
            	            	                goto rulefofLogicFormulaEx;
7734
            	            	            }
7735
7736
7737
26
            	            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2051);
7738
26
            	            	            fofUnitaryFormula(ctx, expr);
7739
7740
26
            	            	            FOLLOWPOP();
7741
26
            	            	            if  (HASEXCEPTION())
7742
            	            	            {
7743
            	            	                goto rulefofLogicFormulaEx;
7744
            	            	            }
7745
7746
7747
            	            	            {
7748
26
            	            	                 args.push_back(expr);
7749
            	            	            }
7750
7751
7752
            	            	        }
7753
26
            	            	        break;
7754
7755
26
            	            	    default:
7756
7757
26
            	            		if ( cnt43 >= 1 )
7758
            	            		{
7759
26
            	            		    goto loop43;
7760
            	            		}
7761
            	            		/* mismatchedSetEx()
7762
            	            		 */
7763
            	            		CONSTRUCTEX();
7764
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
7765
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
7766
7767
7768
            	            		goto rulefofLogicFormulaEx;
7769
            	            	}
7770
26
            	            	cnt43++;
7771
26
            	                }
7772
26
            	                loop43: ;	/* Jump to here if this rule does not match */
7773
            	            }
7774
7775
            	            {
7776
26
            	                 expr = MK_TERM(api::AND, args);
7777
            	            }
7778
7779
7780
            	        }
7781
7782
7783
            	    }
7784
26
            	    break;
7785
11
            	case 3:
7786
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:870:7: ( ( OR_TOK fofUnitaryFormula[expr] )+ )
7787
            	    {
7788
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:870:7: ( ( OR_TOK fofUnitaryFormula[expr] )+ )
7789
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:870:9: ( OR_TOK fofUnitaryFormula[expr] )+
7790
            	        {
7791
            	            {
7792
11
            	                 args.push_back(expr);
7793
            	            }
7794
7795
7796
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:871:9: ( OR_TOK fofUnitaryFormula[expr] )+
7797
            	            {
7798
11
            	                int cnt44=0;
7799
7800
            	                for (;;)
7801
            	                {
7802
36
            	                    int alt44=2;
7803
36
            	            	switch ( LA(1) )
7804
            	            	{
7805
25
            	            	case OR_TOK:
7806
            	            		{
7807
25
            	            			alt44=1;
7808
            	            		}
7809
25
            	            	    break;
7810
7811
            	            	}
7812
7813
36
            	            	switch (alt44)
7814
            	            	{
7815
25
            	            	    case 1:
7816
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:871:11: OR_TOK fofUnitaryFormula[expr]
7817
            	            	        {
7818
25
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_fofLogicFormula2104);
7819
25
            	            	            if  (HASEXCEPTION())
7820
            	            	            {
7821
            	            	                goto rulefofLogicFormulaEx;
7822
            	            	            }
7823
7824
7825
25
            	            	            FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofLogicFormula2106);
7826
25
            	            	            fofUnitaryFormula(ctx, expr);
7827
7828
25
            	            	            FOLLOWPOP();
7829
25
            	            	            if  (HASEXCEPTION())
7830
            	            	            {
7831
            	            	                goto rulefofLogicFormulaEx;
7832
            	            	            }
7833
7834
7835
            	            	            {
7836
25
            	            	                 args.push_back(expr);
7837
            	            	            }
7838
7839
7840
            	            	        }
7841
25
            	            	        break;
7842
7843
11
            	            	    default:
7844
7845
11
            	            		if ( cnt44 >= 1 )
7846
            	            		{
7847
11
            	            		    goto loop44;
7848
            	            		}
7849
            	            		/* mismatchedSetEx()
7850
            	            		 */
7851
            	            		CONSTRUCTEX();
7852
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
7853
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
7854
7855
7856
            	            		goto rulefofLogicFormulaEx;
7857
            	            	}
7858
25
            	            	cnt44++;
7859
25
            	                }
7860
11
            	                loop44: ;	/* Jump to here if this rule does not match */
7861
            	            }
7862
7863
            	            {
7864
11
            	                 expr = MK_TERM(api::OR, args);
7865
            	            }
7866
7867
7868
            	        }
7869
7870
7871
            	    }
7872
11
            	    break;
7873
7874
                }
7875
            }
7876
7877
        }
7878
7879
    }
7880
7881
    // This is where rules clean up and exit
7882
    //
7883
207
    goto rulefofLogicFormulaEx; /* Prevent compiler warnings */
7884
207
    rulefofLogicFormulaEx: ;
7885
7886
207
            if (HASEXCEPTION())
7887
            {
7888
                PREPORTERROR();
7889
                PRECOVER();
7890
            }
7891
414
    return ;
7892
}
7893
/* $ANTLR end fofLogicFormula */
7894
7895
/**
7896
 * $ANTLR start fofUnitaryFormula
7897
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:877: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] );
7898
 */
7899
static void
7900
366
fofUnitaryFormula(pTptpParser ctx, cvc5::api::Term& expr)
7901
{
7902
7903
      api::Kind kind;
7904
732
      std::vector< cvc5::api::Term > bv;
7905
7906
    /* Initialize rule variables
7907
     */
7908
7909
    {
7910
        {
7911
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:882: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] )
7912
7913
            ANTLR3_UINT32 alt47;
7914
7915
366
            alt47=4;
7916
7917
366
            switch ( LA(1) )
7918
            {
7919
162
            case AND_TOK:
7920
            case CNF_TOK:
7921
            case DISTINCT_OBJECT:
7922
            case FALSE_TOK:
7923
            case FOF_TOK:
7924
            case IMPLIES_TOK:
7925
            case INCLUDE_TOK:
7926
            case LOWER_WORD:
7927
            case LOWER_WORD_SINGLE_QUOTED:
7928
            case NUMBER:
7929
            case OR_TOK:
7930
            case SINGLE_QUOTED:
7931
            case TFF_TOK:
7932
            case THF_TOK:
7933
            case TRUE_TOK:
7934
            case TYPE_TOK:
7935
            case UPPER_WORD:
7936
            case 63:
7937
            case 64:
7938
            case 65:
7939
            case 66:
7940
            case 67:
7941
            case 68:
7942
            case 69:
7943
            case 70:
7944
            case 72:
7945
            case 73:
7946
            case 74:
7947
            case 76:
7948
            case 78:
7949
            case 79:
7950
            case 80:
7951
            case 81:
7952
            case 82:
7953
            case 83:
7954
            case 84:
7955
            case 85:
7956
            case 86:
7957
            case 87:
7958
            case 88:
7959
            case 90:
7960
            case 91:
7961
            case 92:
7962
            case 93:
7963
            case 94:
7964
            	{
7965
162
            		alt47=1;
7966
            	}
7967
162
                break;
7968
132
            case LPAREN_TOK:
7969
            	{
7970
132
            		alt47=2;
7971
            	}
7972
132
                break;
7973
17
            case NOT_TOK:
7974
            	{
7975
17
            		alt47=3;
7976
            	}
7977
17
                break;
7978
55
            case EXISTS_TOK:
7979
            case FORALL_TOK:
7980
            	{
7981
55
            		alt47=4;
7982
            	}
7983
55
                break;
7984
7985
            default:
7986
                CONSTRUCTEX();
7987
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
7988
                EXCEPTION->message      = (void *)"";
7989
                EXCEPTION->decisionNum  = 47;
7990
                EXCEPTION->state        = 0;
7991
7992
7993
                goto rulefofUnitaryFormulaEx;
7994
7995
            }
7996
7997
366
            switch (alt47)
7998
            {
7999
162
        	case 1:
8000
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:882:5: atomicFormula[expr]
8001
        	    {
8002
162
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_fofUnitaryFormula2156);
8003
162
        	        atomicFormula(ctx, expr);
8004
8005
162
        	        FOLLOWPOP();
8006
162
        	        if  (HASEXCEPTION())
8007
        	        {
8008
        	            goto rulefofUnitaryFormulaEx;
8009
        	        }
8010
8011
8012
        	    }
8013
162
        	    break;
8014
132
        	case 2:
8015
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:883:5: LPAREN_TOK fofLogicFormula[expr] RPAREN_TOK
8016
        	    {
8017
132
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_fofUnitaryFormula2163);
8018
132
        	        if  (HASEXCEPTION())
8019
        	        {
8020
        	            goto rulefofUnitaryFormulaEx;
8021
        	        }
8022
8023
8024
132
        	        FOLLOWPUSH(FOLLOW_fofLogicFormula_in_fofUnitaryFormula2165);
8025
132
        	        fofLogicFormula(ctx, expr);
8026
8027
132
        	        FOLLOWPOP();
8028
132
        	        if  (HASEXCEPTION())
8029
        	        {
8030
        	            goto rulefofUnitaryFormulaEx;
8031
        	        }
8032
8033
8034
132
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_fofUnitaryFormula2168);
8035
132
        	        if  (HASEXCEPTION())
8036
        	        {
8037
        	            goto rulefofUnitaryFormulaEx;
8038
        	        }
8039
8040
8041
        	    }
8042
132
        	    break;
8043
17
        	case 3:
8044
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:884:5: NOT_TOK fofUnitaryFormula[expr]
8045
        	    {
8046
17
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_fofUnitaryFormula2174);
8047
17
        	        if  (HASEXCEPTION())
8048
        	        {
8049
        	            goto rulefofUnitaryFormulaEx;
8050
        	        }
8051
8052
8053
17
        	        FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2176);
8054
17
        	        fofUnitaryFormula(ctx, expr);
8055
8056
17
        	        FOLLOWPOP();
8057
17
        	        if  (HASEXCEPTION())
8058
        	        {
8059
        	            goto rulefofUnitaryFormulaEx;
8060
        	        }
8061
8062
8063
        	        {
8064
17
        	             expr = MK_TERM(api::NOT,expr);
8065
        	        }
8066
8067
8068
        	    }
8069
17
        	    break;
8070
55
        	case 4:
8071
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:886:5: folQuantifier[kind] LBRACK_TOK ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* ) RBRACK_TOK COLON_TOK fofUnitaryFormula[expr]
8072
        	    {
8073
55
        	        FOLLOWPUSH(FOLLOW_folQuantifier_in_fofUnitaryFormula2190);
8074
55
        	        folQuantifier(ctx, kind);
8075
8076
55
        	        FOLLOWPOP();
8077
55
        	        if  (HASEXCEPTION())
8078
        	        {
8079
        	            goto rulefofUnitaryFormulaEx;
8080
        	        }
8081
8082
8083
55
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_fofUnitaryFormula2193);
8084
55
        	        if  (HASEXCEPTION())
8085
        	        {
8086
        	            goto rulefofUnitaryFormulaEx;
8087
        	        }
8088
8089
8090
        	        {
8091
55
        	            PARSER_STATE->pushScope();
8092
        	        }
8093
8094
8095
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:887:5: ( bindvariable[expr] ( COMMA_TOK bindvariable[expr] )* )
8096
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:887:7: bindvariable[expr] ( COMMA_TOK bindvariable[expr] )*
8097
        	        {
8098
55
        	            FOLLOWPUSH(FOLLOW_bindvariable_in_fofUnitaryFormula2203);
8099
55
        	            bindvariable(ctx, expr);
8100
8101
55
        	            FOLLOWPOP();
8102
55
        	            if  (HASEXCEPTION())
8103
        	            {
8104
        	                goto rulefofUnitaryFormulaEx;
8105
        	            }
8106
8107
8108
        	            {
8109
55
        	                 bv.push_back(expr);
8110
        	            }
8111
8112
8113
        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:888:7: ( COMMA_TOK bindvariable[expr] )*
8114
8115
        	            for (;;)
8116
        	            {
8117
81
        	                int alt46=2;
8118
81
        	                switch ( LA(1) )
8119
        	                {
8120
26
        	                case COMMA_TOK:
8121
        	                	{
8122
26
        	                		alt46=1;
8123
        	                	}
8124
26
        	                    break;
8125
8126
        	                }
8127
8128
81
        	                switch (alt46)
8129
        	                {
8130
26
        	            	case 1:
8131
        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:888:9: COMMA_TOK bindvariable[expr]
8132
        	            	    {
8133
26
        	            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_fofUnitaryFormula2216);
8134
26
        	            	        if  (HASEXCEPTION())
8135
        	            	        {
8136
        	            	            goto rulefofUnitaryFormulaEx;
8137
        	            	        }
8138
8139
8140
26
        	            	        FOLLOWPUSH(FOLLOW_bindvariable_in_fofUnitaryFormula2218);
8141
26
        	            	        bindvariable(ctx, expr);
8142
8143
26
        	            	        FOLLOWPOP();
8144
26
        	            	        if  (HASEXCEPTION())
8145
        	            	        {
8146
        	            	            goto rulefofUnitaryFormulaEx;
8147
        	            	        }
8148
8149
8150
        	            	        {
8151
26
        	            	             bv.push_back(expr);
8152
        	            	        }
8153
8154
8155
        	            	    }
8156
26
        	            	    break;
8157
8158
55
        	            	default:
8159
55
        	            	    goto loop46;	/* break out of the loop */
8160
        	            	    break;
8161
        	                }
8162
26
        	            }
8163
55
        	            loop46: ; /* Jump out to here if this rule does not match */
8164
8165
8166
        	        }
8167
8168
8169
55
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_fofUnitaryFormula2228);
8170
55
        	        if  (HASEXCEPTION())
8171
        	        {
8172
        	            goto rulefofUnitaryFormulaEx;
8173
        	        }
8174
8175
8176
55
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_fofUnitaryFormula2234);
8177
55
        	        if  (HASEXCEPTION())
8178
        	        {
8179
        	            goto rulefofUnitaryFormulaEx;
8180
        	        }
8181
8182
8183
55
        	        FOLLOWPUSH(FOLLOW_fofUnitaryFormula_in_fofUnitaryFormula2236);
8184
55
        	        fofUnitaryFormula(ctx, expr);
8185
8186
55
        	        FOLLOWPOP();
8187
55
        	        if  (HASEXCEPTION())
8188
        	        {
8189
        	            goto rulefofUnitaryFormulaEx;
8190
        	        }
8191
8192
8193
        	        {
8194
55
        	             PARSER_STATE->popScope();
8195
55
        	                  expr = MK_TERM(kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
8196
8197
        	        }
8198
8199
8200
        	    }
8201
55
        	    break;
8202
8203
            }
8204
        }
8205
    }
8206
8207
    // This is where rules clean up and exit
8208
    //
8209
366
    goto rulefofUnitaryFormulaEx; /* Prevent compiler warnings */
8210
366
    rulefofUnitaryFormulaEx: ;
8211
8212
366
            if (HASEXCEPTION())
8213
            {
8214
                PREPORTERROR();
8215
                PRECOVER();
8216
            }
8217
732
    return ;
8218
}
8219
/* $ANTLR end fofUnitaryFormula */
8220
8221
/**
8222
 * $ANTLR start bindvariable
8223
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:895:1: bindvariable[cvc5::api::Term& expr] : UPPER_WORD ;
8224
 */
8225
static void
8226
81
bindvariable(pTptpParser ctx, cvc5::api::Term& expr)
8227
{
8228
    pANTLR3_COMMON_TOKEN    UPPER_WORD5;
8229
8230
    /* Initialize rule variables
8231
     */
8232
8233
81
    UPPER_WORD5       = NULL;
8234
8235
    {
8236
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:896:3: ( UPPER_WORD )
8237
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:896:5: UPPER_WORD
8238
        {
8239
81
            UPPER_WORD5 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_bindvariable2257);
8240
81
            if  (HASEXCEPTION())
8241
            {
8242
                goto rulebindvariableEx;
8243
            }
8244
8245
8246
            {
8247
162
                 std::string name = AntlrInput::tokenText(UPPER_WORD5);
8248
81
                      expr = PARSER_STATE->bindBoundVar(name, PARSER_STATE->d_unsorted);
8249
8250
            }
8251
8252
8253
        }
8254
8255
    }
8256
8257
    // This is where rules clean up and exit
8258
    //
8259
81
    goto rulebindvariableEx; /* Prevent compiler warnings */
8260
81
    rulebindvariableEx: ;
8261
8262
81
            if (HASEXCEPTION())
8263
            {
8264
                PREPORTERROR();
8265
                PRECOVER();
8266
            }
8267
81
    return ;
8268
}
8269
/* $ANTLR end bindvariable */
8270
8271
/**
8272
 * $ANTLR start fofBinaryNonAssoc
8273
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:902:1: fofBinaryNonAssoc[cvc5::parser::tptp::NonAssoc& na] : ( IFF_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | IMPLIES_TOK | REVIMPLIES_TOK );
8274
 */
8275
static void
8276
2109
fofBinaryNonAssoc(pTptpParser ctx, cvc5::parser::tptp::NonAssoc& na)
8277
{
8278
    /* Initialize rule variables
8279
     */
8280
8281
    {
8282
        {
8283
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:903:3: ( IFF_TOK | REVIFF_TOK | REVOR_TOK | REVAND_TOK | IMPLIES_TOK | REVIMPLIES_TOK )
8284
8285
            ANTLR3_UINT32 alt48;
8286
8287
2109
            alt48=6;
8288
8289
2109
            switch ( LA(1) )
8290
            {
8291
194
            case IFF_TOK:
8292
            	{
8293
194
            		alt48=1;
8294
            	}
8295
194
                break;
8296
2
            case REVIFF_TOK:
8297
            	{
8298
2
            		alt48=2;
8299
            	}
8300
2
                break;
8301
2
            case REVOR_TOK:
8302
            	{
8303
2
            		alt48=3;
8304
            	}
8305
2
                break;
8306
2
            case REVAND_TOK:
8307
            	{
8308
2
            		alt48=4;
8309
            	}
8310
2
                break;
8311
1907
            case IMPLIES_TOK:
8312
            	{
8313
1907
            		alt48=5;
8314
            	}
8315
1907
                break;
8316
2
            case REVIMPLIES_TOK:
8317
            	{
8318
2
            		alt48=6;
8319
            	}
8320
2
                break;
8321
8322
            default:
8323
                CONSTRUCTEX();
8324
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8325
                EXCEPTION->message      = (void *)"";
8326
                EXCEPTION->decisionNum  = 48;
8327
                EXCEPTION->state        = 0;
8328
8329
8330
                goto rulefofBinaryNonAssocEx;
8331
8332
            }
8333
8334
2109
            switch (alt48)
8335
            {
8336
194
        	case 1:
8337
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:903:5: IFF_TOK
8338
        	    {
8339
194
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_fofBinaryNonAssoc2277);
8340
194
        	        if  (HASEXCEPTION())
8341
        	        {
8342
        	            goto rulefofBinaryNonAssocEx;
8343
        	        }
8344
8345
8346
        	        {
8347
194
        	             na = tptp::NA_IFF;
8348
        	        }
8349
8350
8351
        	    }
8352
194
        	    break;
8353
2
        	case 2:
8354
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:904:5: REVIFF_TOK
8355
        	    {
8356
2
        	         MATCHT(REVIFF_TOK, &FOLLOW_REVIFF_TOK_in_fofBinaryNonAssoc2290);
8357
2
        	        if  (HASEXCEPTION())
8358
        	        {
8359
        	            goto rulefofBinaryNonAssocEx;
8360
        	        }
8361
8362
8363
        	        {
8364
2
        	             na = tptp::NA_REVIFF;
8365
        	        }
8366
8367
8368
        	    }
8369
2
        	    break;
8370
2
        	case 3:
8371
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:905:5: REVOR_TOK
8372
        	    {
8373
2
        	         MATCHT(REVOR_TOK, &FOLLOW_REVOR_TOK_in_fofBinaryNonAssoc2300);
8374
2
        	        if  (HASEXCEPTION())
8375
        	        {
8376
        	            goto rulefofBinaryNonAssocEx;
8377
        	        }
8378
8379
8380
        	        {
8381
2
        	             na = tptp::NA_REVOR;
8382
        	        }
8383
8384
8385
        	    }
8386
2
        	    break;
8387
2
        	case 4:
8388
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:906:5: REVAND_TOK
8389
        	    {
8390
2
        	         MATCHT(REVAND_TOK, &FOLLOW_REVAND_TOK_in_fofBinaryNonAssoc2311);
8391
2
        	        if  (HASEXCEPTION())
8392
        	        {
8393
        	            goto rulefofBinaryNonAssocEx;
8394
        	        }
8395
8396
8397
        	        {
8398
2
        	             na = tptp::NA_REVAND;
8399
        	        }
8400
8401
8402
        	    }
8403
2
        	    break;
8404
1907
        	case 5:
8405
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:907:5: IMPLIES_TOK
8406
        	    {
8407
1907
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_fofBinaryNonAssoc2321);
8408
1907
        	        if  (HASEXCEPTION())
8409
        	        {
8410
        	            goto rulefofBinaryNonAssocEx;
8411
        	        }
8412
8413
8414
        	        {
8415
1907
        	             na = tptp::NA_IMPLIES;
8416
        	        }
8417
8418
8419
        	    }
8420
1907
        	    break;
8421
2
        	case 6:
8422
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:908:5: REVIMPLIES_TOK
8423
        	    {
8424
2
        	         MATCHT(REVIMPLIES_TOK, &FOLLOW_REVIMPLIES_TOK_in_fofBinaryNonAssoc2332);
8425
2
        	        if  (HASEXCEPTION())
8426
        	        {
8427
        	            goto rulefofBinaryNonAssocEx;
8428
        	        }
8429
8430
8431
        	        {
8432
2
        	             na = tptp::NA_REVIMPLIES;
8433
        	        }
8434
8435
8436
        	    }
8437
2
        	    break;
8438
8439
            }
8440
        }
8441
    }
8442
8443
    // This is where rules clean up and exit
8444
    //
8445
2109
    goto rulefofBinaryNonAssocEx; /* Prevent compiler warnings */
8446
2109
    rulefofBinaryNonAssocEx: ;
8447
8448
2109
            if (HASEXCEPTION())
8449
            {
8450
                PREPORTERROR();
8451
                PRECOVER();
8452
            }
8453
2109
    return ;
8454
}
8455
/* $ANTLR end fofBinaryNonAssoc */
8456
8457
/**
8458
 * $ANTLR start folQuantifier
8459
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:911:1: folQuantifier[cvc5::api::Kind& kind] : ( FORALL_TOK | EXISTS_TOK );
8460
 */
8461
static void
8462
119
folQuantifier(pTptpParser ctx, cvc5::api::Kind& kind)
8463
{
8464
    /* Initialize rule variables
8465
     */
8466
8467
    {
8468
        {
8469
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:912:3: ( FORALL_TOK | EXISTS_TOK )
8470
8471
            ANTLR3_UINT32 alt49;
8472
8473
119
            alt49=2;
8474
8475
119
            switch ( LA(1) )
8476
            {
8477
86
            case FORALL_TOK:
8478
            	{
8479
86
            		alt49=1;
8480
            	}
8481
86
                break;
8482
33
            case EXISTS_TOK:
8483
            	{
8484
33
            		alt49=2;
8485
            	}
8486
33
                break;
8487
8488
            default:
8489
                CONSTRUCTEX();
8490
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8491
                EXCEPTION->message      = (void *)"";
8492
                EXCEPTION->decisionNum  = 49;
8493
                EXCEPTION->state        = 0;
8494
8495
8496
                goto rulefolQuantifierEx;
8497
8498
            }
8499
8500
119
            switch (alt49)
8501
            {
8502
86
        	case 1:
8503
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:912:5: FORALL_TOK
8504
        	    {
8505
86
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_folQuantifier2348);
8506
86
        	        if  (HASEXCEPTION())
8507
        	        {
8508
        	            goto rulefolQuantifierEx;
8509
        	        }
8510
8511
8512
        	        {
8513
86
        	             kind = api::FORALL;
8514
        	        }
8515
8516
8517
        	    }
8518
86
        	    break;
8519
33
        	case 2:
8520
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:913:5: EXISTS_TOK
8521
        	    {
8522
33
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_folQuantifier2356);
8523
33
        	        if  (HASEXCEPTION())
8524
        	        {
8525
        	            goto rulefolQuantifierEx;
8526
        	        }
8527
8528
8529
        	        {
8530
33
        	             kind = api::EXISTS;
8531
        	        }
8532
8533
8534
        	    }
8535
33
        	    break;
8536
8537
            }
8538
        }
8539
    }
8540
8541
    // This is where rules clean up and exit
8542
    //
8543
119
    goto rulefolQuantifierEx; /* Prevent compiler warnings */
8544
119
    rulefolQuantifierEx: ;
8545
8546
119
            if (HASEXCEPTION())
8547
            {
8548
                PREPORTERROR();
8549
                PRECOVER();
8550
            }
8551
119
    return ;
8552
}
8553
/* $ANTLR end folQuantifier */
8554
8555
/**
8556
 * $ANTLR start thfQuantifier
8557
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:919:1: thfQuantifier[cvc5::api::Kind& kind] : ( FORALL_TOK | EXISTS_TOK | LAMBDA_TOK | CHOICE_TOK | DEF_DESC_TOK | ( TH1_UN_A | TH1_UN_E ) );
8558
 */
8559
static void
8560
1280
thfQuantifier(pTptpParser ctx, cvc5::api::Kind& kind)
8561
{
8562
    /* Initialize rule variables
8563
     */
8564
8565
    {
8566
        {
8567
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:920:3: ( FORALL_TOK | EXISTS_TOK | LAMBDA_TOK | CHOICE_TOK | DEF_DESC_TOK | ( TH1_UN_A | TH1_UN_E ) )
8568
8569
            ANTLR3_UINT32 alt50;
8570
8571
1280
            alt50=6;
8572
8573
1280
            switch ( LA(1) )
8574
            {
8575
1072
            case FORALL_TOK:
8576
            	{
8577
1072
            		alt50=1;
8578
            	}
8579
1072
                break;
8580
56
            case EXISTS_TOK:
8581
            	{
8582
56
            		alt50=2;
8583
            	}
8584
56
                break;
8585
152
            case LAMBDA_TOK:
8586
            	{
8587
152
            		alt50=3;
8588
            	}
8589
152
                break;
8590
            case CHOICE_TOK:
8591
            	{
8592
            		alt50=4;
8593
            	}
8594
                break;
8595
            case DEF_DESC_TOK:
8596
            	{
8597
            		alt50=5;
8598
            	}
8599
                break;
8600
            case TH1_UN_A:
8601
            case TH1_UN_E:
8602
            	{
8603
            		alt50=6;
8604
            	}
8605
                break;
8606
8607
            default:
8608
                CONSTRUCTEX();
8609
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8610
                EXCEPTION->message      = (void *)"";
8611
                EXCEPTION->decisionNum  = 50;
8612
                EXCEPTION->state        = 0;
8613
8614
8615
                goto rulethfQuantifierEx;
8616
8617
            }
8618
8619
1280
            switch (alt50)
8620
            {
8621
1072
        	case 1:
8622
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:920:5: FORALL_TOK
8623
        	    {
8624
1072
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_thfQuantifier2377);
8625
1072
        	        if  (HASEXCEPTION())
8626
        	        {
8627
        	            goto rulethfQuantifierEx;
8628
        	        }
8629
8630
8631
        	        {
8632
1072
        	             kind = api::FORALL;
8633
        	        }
8634
8635
8636
        	    }
8637
1072
        	    break;
8638
56
        	case 2:
8639
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:921:5: EXISTS_TOK
8640
        	    {
8641
56
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_thfQuantifier2385);
8642
56
        	        if  (HASEXCEPTION())
8643
        	        {
8644
        	            goto rulethfQuantifierEx;
8645
        	        }
8646
8647
8648
        	        {
8649
56
        	             kind = api::EXISTS;
8650
        	        }
8651
8652
8653
        	    }
8654
56
        	    break;
8655
152
        	case 3:
8656
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:922:5: LAMBDA_TOK
8657
        	    {
8658
152
        	         MATCHT(LAMBDA_TOK, &FOLLOW_LAMBDA_TOK_in_thfQuantifier2393);
8659
152
        	        if  (HASEXCEPTION())
8660
        	        {
8661
        	            goto rulethfQuantifierEx;
8662
        	        }
8663
8664
8665
        	        {
8666
152
        	             kind = api::LAMBDA;
8667
        	        }
8668
8669
8670
        	    }
8671
152
        	    break;
8672
        	case 4:
8673
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:923:5: CHOICE_TOK
8674
        	    {
8675
        	         MATCHT(CHOICE_TOK, &FOLLOW_CHOICE_TOK_in_thfQuantifier2401);
8676
        	        if  (HASEXCEPTION())
8677
        	        {
8678
        	            goto rulethfQuantifierEx;
8679
        	        }
8680
8681
8682
        	        {
8683
8684
        	                  UNSUPPORTED("Choice operator");
8685
8686
        	        }
8687
8688
8689
        	    }
8690
        	    break;
8691
        	case 5:
8692
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:927:5: DEF_DESC_TOK
8693
        	    {
8694
        	         MATCHT(DEF_DESC_TOK, &FOLLOW_DEF_DESC_TOK_in_thfQuantifier2413);
8695
        	        if  (HASEXCEPTION())
8696
        	        {
8697
        	            goto rulethfQuantifierEx;
8698
        	        }
8699
8700
8701
        	        {
8702
8703
        	                  UNSUPPORTED("Description quantifier");
8704
8705
        	        }
8706
8707
8708
        	    }
8709
        	    break;
8710
        	case 6:
8711
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:931:5: ( TH1_UN_A | TH1_UN_E )
8712
        	    {
8713
        	        if ( ((LA(1) >= TH1_UN_A) && (LA(1) <= TH1_UN_E)) )
8714
        	        {
8715
        	            CONSUME();
8716
        	            PERRORRECOVERY=ANTLR3_FALSE;
8717
        	        }
8718
        	        else
8719
        	        {
8720
        	            CONSTRUCTEX();
8721
        	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
8722
        	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
8723
        	            EXCEPTION->expectingSet = NULL;
8724
8725
        	            goto rulethfQuantifierEx;
8726
        	        }
8727
8728
8729
        	        {
8730
8731
        	                  UNSUPPORTED("TH1 operator");
8732
8733
        	        }
8734
8735
8736
        	    }
8737
        	    break;
8738
8739
            }
8740
        }
8741
    }
8742
8743
    // This is where rules clean up and exit
8744
    //
8745
1280
    goto rulethfQuantifierEx; /* Prevent compiler warnings */
8746
1280
    rulethfQuantifierEx: ;
8747
8748
1280
            if (HASEXCEPTION())
8749
            {
8750
                PREPORTERROR();
8751
                PRECOVER();
8752
            }
8753
1280
    return ;
8754
}
8755
/* $ANTLR end thfQuantifier */
8756
8757
/**
8758
 * $ANTLR start thfAtomTyping
8759
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:937:1: thfAtomTyping[cvc5::Command*& cmd] : ( LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseThfType[type] ) );
8760
 */
8761
static void
8762
569
thfAtomTyping(pTptpParser ctx, cvc5::Command*& cmd)
8763
{
8764
8765
1138
      cvc5::api::Term expr;
8766
1138
      cvc5::api::Sort type;
8767
1138
      std::string name;
8768
8769
    /* Initialize rule variables
8770
     */
8771
8772
    {
8773
        {
8774
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:944:3: ( LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseThfType[type] ) )
8775
8776
            ANTLR3_UINT32 alt52;
8777
8778
569
            alt52=2;
8779
8780
569
            switch ( LA(1) )
8781
            {
8782
264
            case LPAREN_TOK:
8783
            	{
8784
264
            		alt52=1;
8785
            	}
8786
264
                break;
8787
305
            case CNF_TOK:
8788
            case FOF_TOK:
8789
            case INCLUDE_TOK:
8790
            case LOWER_WORD:
8791
            case LOWER_WORD_SINGLE_QUOTED:
8792
            case NUMBER:
8793
            case SINGLE_QUOTED:
8794
            case TFF_TOK:
8795
            case THF_TOK:
8796
            case TYPE_TOK:
8797
            	{
8798
305
            		alt52=2;
8799
            	}
8800
305
                break;
8801
8802
            default:
8803
                CONSTRUCTEX();
8804
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8805
                EXCEPTION->message      = (void *)"";
8806
                EXCEPTION->decisionNum  = 52;
8807
                EXCEPTION->state        = 0;
8808
8809
8810
                goto rulethfAtomTypingEx;
8811
8812
            }
8813
8814
569
            switch (alt52)
8815
            {
8816
264
        	case 1:
8817
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:944:5: LPAREN_TOK thfAtomTyping[cmd] RPAREN_TOK
8818
        	    {
8819
264
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfAtomTyping2457);
8820
264
        	        if  (HASEXCEPTION())
8821
        	        {
8822
        	            goto rulethfAtomTypingEx;
8823
        	        }
8824
8825
8826
264
        	        FOLLOWPUSH(FOLLOW_thfAtomTyping_in_thfAtomTyping2459);
8827
264
        	        thfAtomTyping(ctx, cmd);
8828
8829
264
        	        FOLLOWPOP();
8830
264
        	        if  (HASEXCEPTION())
8831
        	        {
8832
        	            goto rulethfAtomTypingEx;
8833
        	        }
8834
8835
8836
264
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfAtomTyping2462);
8837
264
        	        if  (HASEXCEPTION())
8838
        	        {
8839
        	            goto rulethfAtomTypingEx;
8840
        	        }
8841
8842
8843
        	    }
8844
264
        	    break;
8845
305
        	case 2:
8846
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:945:5: nameN[name] COLON_TOK ( '$tType' | parseThfType[type] )
8847
        	    {
8848
305
        	        FOLLOWPUSH(FOLLOW_nameN_in_thfAtomTyping2468);
8849
305
        	        nameN(ctx, name);
8850
8851
305
        	        FOLLOWPOP();
8852
305
        	        if  (HASEXCEPTION())
8853
        	        {
8854
        	            goto rulethfAtomTypingEx;
8855
        	        }
8856
8857
8858
305
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfAtomTyping2471);
8859
305
        	        if  (HASEXCEPTION())
8860
        	        {
8861
        	            goto rulethfAtomTypingEx;
8862
        	        }
8863
8864
8865
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:946:5: ( '$tType' | parseThfType[type] )
8866
        	        {
8867
305
        	            int alt51=2;
8868
305
        	            switch ( LA(1) )
8869
        	            {
8870
22
        	            case 89:
8871
        	            	{
8872
22
        	            		alt51=1;
8873
        	            	}
8874
22
        	                break;
8875
283
        	            case CNF_TOK:
8876
        	            case DEFINED_SYMBOL:
8877
        	            case FOF_TOK:
8878
        	            case INCLUDE_TOK:
8879
        	            case LBRACK_TOK:
8880
        	            case LOWER_WORD:
8881
        	            case LOWER_WORD_SINGLE_QUOTED:
8882
        	            case LPAREN_TOK:
8883
        	            case SINGLE_QUOTED:
8884
        	            case TFF_TOK:
8885
        	            case THF_TOK:
8886
        	            case TYPE_TOK:
8887
        	            	{
8888
283
        	            		alt51=2;
8889
        	            	}
8890
283
        	                break;
8891
8892
        	            default:
8893
        	                CONSTRUCTEX();
8894
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
8895
        	                EXCEPTION->message      = (void *)"";
8896
        	                EXCEPTION->decisionNum  = 51;
8897
        	                EXCEPTION->state        = 0;
8898
8899
8900
        	                goto rulethfAtomTypingEx;
8901
8902
        	            }
8903
8904
305
        	            switch (alt51)
8905
        	            {
8906
22
        	        	case 1:
8907
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:946:7: '$tType'
8908
        	        	    {
8909
22
        	        	         MATCHT(89, &FOLLOW_89_in_thfAtomTyping2479);
8910
22
        	        	        if  (HASEXCEPTION())
8911
        	        	        {
8912
        	        	            goto rulethfAtomTypingEx;
8913
        	        	        }
8914
8915
8916
        	        	        {
8917
8918
22
        	        	                    if (PARSER_STATE->isDeclared(name, SYM_SORT))
8919
        	        	                    {
8920
        	        	                      // duplicate declaration is fine, they're compatible
8921
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
8922
        	        	                    }
8923
22
        	        	                    else if (PARSER_STATE->isDeclared(name, SYM_VARIABLE))
8924
        	        	                    {
8925
        	        	                      // error: cannot be both sort and constant
8926
        	        	                      PARSER_STATE->parseError(
8927
        	        	                          "Symbol `" + name
8928
        	        	                          + "' previously declared as a constant; cannot also be a sort");
8929
        	        	                    }
8930
        	        	                    else
8931
        	        	                    {
8932
        	        	                      // as yet, it's undeclared
8933
44
        	        	                      api::Sort atype = PARSER_STATE->mkSort(name);
8934
22
        	        	                      cmd = new DeclareSortCommand(name, 0, atype);
8935
        	        	                    }
8936
8937
        	        	        }
8938
8939
8940
        	        	    }
8941
22
        	        	    break;
8942
283
        	        	case 2:
8943
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:967:7: parseThfType[type]
8944
        	        	    {
8945
283
        	        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfAtomTyping2495);
8946
283
        	        	        parseThfType(ctx, type);
8947
8948
283
        	        	        FOLLOWPOP();
8949
283
        	        	        if  (HASEXCEPTION())
8950
        	        	        {
8951
        	        	            goto rulethfAtomTypingEx;
8952
        	        	        }
8953
8954
8955
        	        	        {
8956
8957
283
        	        	                    if (PARSER_STATE->isDeclared(name, SYM_SORT))
8958
        	        	                    {
8959
        	        	                      // error: cannot be both sort and constant
8960
        	        	                      PARSER_STATE->parseError("Symbol `" + name
8961
        	        	                                               + "' previously declared as a sort");
8962
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
8963
        	        	                    }
8964
283
        	        	                    else if (PARSER_STATE->isDeclared(name, SYM_VARIABLE))
8965
        	        	                    {
8966
        	        	                      if (type == PARSER_STATE->getVariable(name).getSort())
8967
        	        	                      {
8968
        	        	                        // duplicate declaration is fine, they're compatible
8969
        	        	                        cmd = new EmptyCommand("compatible redeclaration of constant "
8970
        	        	                                               + name);
8971
        	        	                      }
8972
        	        	                      else
8973
        	        	                      {
8974
        	        	                        // error: sorts incompatible
8975
        	        	                        PARSER_STATE->parseError(
8976
        	        	                            "Symbol `" + name
8977
        	        	                            + "' declared previously with a different sort");
8978
        	        	                      }
8979
        	        	                    }
8980
        	        	                    else
8981
        	        	                    {
8982
        	        	                      // as of yet, it's undeclared
8983
566
        	        	                      cvc5::api::Term freshExpr;
8984
283
        	        	                      if (type.isFunction())
8985
        	        	                      {
8986
140
        	        	                        freshExpr = PARSER_STATE->bindVar(name, type);
8987
        	        	                      }
8988
        	        	                      else
8989
        	        	                      {
8990
143
        	        	                        freshExpr = PARSER_STATE->bindVar(name, type);
8991
        	        	                      }
8992
283
        	        	                      cmd = new DeclareFunctionCommand(name, freshExpr, type);
8993
        	        	                    }
8994
8995
        	        	        }
8996
8997
8998
        	        	    }
8999
283
        	        	    break;
9000
9001
        	            }
9002
        	        }
9003
9004
        	    }
9005
305
        	    break;
9006
9007
            }
9008
        }
9009
    }
9010
9011
    // This is where rules clean up and exit
9012
    //
9013
569
    goto rulethfAtomTypingEx; /* Prevent compiler warnings */
9014
569
    rulethfAtomTypingEx: ;
9015
9016
569
            if (HASEXCEPTION())
9017
            {
9018
                PREPORTERROR();
9019
                PRECOVER();
9020
            }
9021
1138
    return ;
9022
}
9023
/* $ANTLR end thfAtomTyping */
9024
9025
/**
9026
 * $ANTLR start thfLogicFormula
9027
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1010: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 ) )+ )? ;
9028
 */
9029
static void
9030
9081
thfLogicFormula(pTptpParser ctx, cvc5::ParseOp& p)
9031
{
9032
9033
      tptp::NonAssoc na;
9034
18162
      std::vector<cvc5::api::Term> args;
9035
18162
      std::vector<ParseOp> p_args;
9036
18162
      cvc5::api::Term expr2;
9037
      bool equal;
9038
18162
      ParseOp p1;
9039
9040
    /* Initialize rule variables
9041
     */
9042
9043
    {
9044
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1021: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 ) )+ )? )
9045
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1021: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 ) )+ )?
9046
        {
9047
9081
            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2535);
9048
9081
            thfUnitaryFormula(ctx, p);
9049
9050
9081
            FOLLOWPOP();
9051
9081
            if  (HASEXCEPTION())
9052
            {
9053
                goto rulethfLogicFormulaEx;
9054
            }
9055
9056
9057
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1022: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 ) )+ )?
9058
            {
9059
9081
                int alt57=6;
9060
9081
                switch ( LA(1) )
9061
                {
9062
959
                    case DISEQUAL_TOK:
9063
                    case EQUAL_TOK:
9064
                    	{
9065
959
                    		alt57=1;
9066
                    	}
9067
959
                        break;
9068
2055
                    case IFF_TOK:
9069
                    case IMPLIES_TOK:
9070
                    case REVAND_TOK:
9071
                    case REVIFF_TOK:
9072
                    case REVIMPLIES_TOK:
9073
                    case REVOR_TOK:
9074
                    	{
9075
2055
                    		alt57=2;
9076
                    	}
9077
2055
                        break;
9078
115
                    case AND_TOK:
9079
                    	{
9080
115
                    		alt57=3;
9081
                    	}
9082
115
                        break;
9083
41
                    case OR_TOK:
9084
                    	{
9085
41
                    		alt57=4;
9086
                    	}
9087
41
                        break;
9088
3883
                    case APP_TOK:
9089
                    	{
9090
3883
                    		alt57=5;
9091
                    	}
9092
3883
                        break;
9093
                }
9094
9095
9081
                switch (alt57)
9096
                {
9097
959
            	case 1:
9098
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1023:7: equalOp[equal] thfUnitaryFormula[p1]
9099
            	    {
9100
959
            	        FOLLOWPUSH(FOLLOW_equalOp_in_thfLogicFormula2551);
9101
959
            	        equalOp(ctx, equal);
9102
9103
959
            	        FOLLOWPOP();
9104
959
            	        if  (HASEXCEPTION())
9105
            	        {
9106
            	            goto rulethfLogicFormulaEx;
9107
            	        }
9108
9109
9110
959
            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2560);
9111
959
            	        thfUnitaryFormula(ctx, p1);
9112
9113
959
            	        FOLLOWPOP();
9114
959
            	        if  (HASEXCEPTION())
9115
            	        {
9116
            	            goto rulethfLogicFormulaEx;
9117
            	        }
9118
9119
9120
            	        {
9121
9122
959
            	                    if (p.d_expr.isNull() && !p1.d_expr.isNull())
9123
            	                    {
9124
            	                      // make p.d_expr with a lambda of the same type as p1.d_expr
9125
            	                      p.d_expr =
9126
            	                          PARSER_STATE->mkLambdaWrapper(p.d_kind, p1.d_expr.getSort());
9127
            	                    }
9128
959
            	                    else if (p1.d_expr.isNull() && !p.d_expr.isNull())
9129
            	                    {
9130
            	                      // make p1.d_expr with a lambda of the same type as p.d_expr
9131
            	                      p1.d_expr =
9132
            	                          PARSER_STATE->mkLambdaWrapper(p1.d_kind, p.d_expr.getSort());
9133
            	                    }
9134
959
            	                    else if (p.d_expr.isNull() && p1.d_expr.isNull())
9135
            	                    {
9136
            	                      // Without a reference type it's not possible in general to know what
9137
            	                      // the lambda wrapping should be, so we fail in these cases
9138
            	                      UNSUPPORTED("Equality between theory functions");
9139
            	                    }
9140
959
            	                    args.push_back(p.d_expr);
9141
959
            	                    args.push_back(p1.d_expr);
9142
959
            	                    p.d_expr = MK_TERM(api::EQUAL, args);
9143
959
            	                    if (!equal)
9144
            	                    {
9145
107
            	                      p.d_expr = MK_TERM(api::NOT, p.d_expr);
9146
            	                    }
9147
9148
            	        }
9149
9150
9151
            	    }
9152
959
            	    break;
9153
2055
            	case 2:
9154
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1053:7: fofBinaryNonAssoc[na] thfUnitaryFormula[p1]
9155
            	    {
9156
2055
            	        FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_thfLogicFormula2584);
9157
2055
            	        fofBinaryNonAssoc(ctx, na);
9158
9159
2055
            	        FOLLOWPOP();
9160
2055
            	        if  (HASEXCEPTION())
9161
            	        {
9162
            	            goto rulethfLogicFormulaEx;
9163
            	        }
9164
9165
9166
2055
            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2587);
9167
2055
            	        thfUnitaryFormula(ctx, p1);
9168
9169
2055
            	        FOLLOWPOP();
9170
2055
            	        if  (HASEXCEPTION())
9171
            	        {
9172
            	            goto rulethfLogicFormulaEx;
9173
            	        }
9174
9175
9176
            	        {
9177
9178
2055
            	                    if (p.d_expr.isNull() || p1.d_expr.isNull())
9179
            	                    {
9180
            	                      PARSER_STATE->parseError(
9181
            	                          "Non-associative operator must be applied to formulas");
9182
            	                    }
9183
2055
            	                    switch (na)
9184
            	                    {
9185
187
            	                      case tptp::NA_IFF:
9186
187
            	                        p.d_expr = MK_TERM(api::EQUAL, p.d_expr, p1.d_expr);
9187
187
            	                        break;
9188
            	                      case tptp::NA_REVIFF:
9189
            	                        p.d_expr = MK_TERM(api::XOR, p.d_expr, p1.d_expr);
9190
            	                        break;
9191
1868
            	                      case tptp::NA_IMPLIES:
9192
1868
            	                        p.d_expr = MK_TERM(api::IMPLIES, p.d_expr, p1.d_expr);
9193
1868
            	                        break;
9194
            	                      case tptp::NA_REVIMPLIES:
9195
            	                        p.d_expr = MK_TERM(api::IMPLIES, p1.d_expr, p.d_expr);
9196
            	                        break;
9197
            	                      case tptp::NA_REVOR:
9198
            	                        p.d_expr =
9199
            	                            MK_TERM(api::NOT, MK_TERM(api::OR, p.d_expr, p1.d_expr));
9200
            	                        break;
9201
            	                      case tptp::NA_REVAND:
9202
            	                        p.d_expr =
9203
            	                            MK_TERM(api::NOT, MK_TERM(api::AND, p.d_expr, p1.d_expr));
9204
            	                        break;
9205
            	                    }
9206
9207
            	        }
9208
9209
9210
            	    }
9211
2055
            	    break;
9212
115
            	case 3:
9213
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1085:7: ( ( AND_TOK thfUnitaryFormula[p] )+ )
9214
            	    {
9215
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1085:7: ( ( AND_TOK thfUnitaryFormula[p] )+ )
9216
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1086:9: ( AND_TOK thfUnitaryFormula[p] )+
9217
            	        {
9218
            	            {
9219
9220
115
            	                          if (p.d_expr.isNull())
9221
            	                          {
9222
            	                            PARSER_STATE->parseError("AND must be applied to a formula");
9223
            	                          }
9224
115
            	                          args.push_back(p.d_expr);
9225
115
            	                          p = ParseOp();
9226
9227
            	            }
9228
9229
9230
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1094:9: ( AND_TOK thfUnitaryFormula[p] )+
9231
            	            {
9232
115
            	                int cnt53=0;
9233
9234
            	                for (;;)
9235
            	                {
9236
246
            	                    int alt53=2;
9237
246
            	            	switch ( LA(1) )
9238
            	            	{
9239
131
            	            	case AND_TOK:
9240
            	            		{
9241
131
            	            			alt53=1;
9242
            	            		}
9243
131
            	            	    break;
9244
9245
            	            	}
9246
9247
246
            	            	switch (alt53)
9248
            	            	{
9249
131
            	            	    case 1:
9250
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1094:11: AND_TOK thfUnitaryFormula[p]
9251
            	            	        {
9252
131
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_thfLogicFormula2633);
9253
131
            	            	            if  (HASEXCEPTION())
9254
            	            	            {
9255
            	            	                goto rulethfLogicFormulaEx;
9256
            	            	            }
9257
9258
9259
131
            	            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2635);
9260
131
            	            	            thfUnitaryFormula(ctx, p);
9261
9262
131
            	            	            FOLLOWPOP();
9263
131
            	            	            if  (HASEXCEPTION())
9264
            	            	            {
9265
            	            	                goto rulethfLogicFormulaEx;
9266
            	            	            }
9267
9268
9269
            	            	            {
9270
9271
131
            	            	                            if (p.d_expr.isNull())
9272
            	            	                            {
9273
            	            	                              PARSER_STATE->parseError("AND must be applied to a formula");
9274
            	            	                            }
9275
131
            	            	                            args.push_back(p.d_expr);
9276
131
            	            	                            p = ParseOp();
9277
9278
            	            	            }
9279
9280
9281
            	            	        }
9282
131
            	            	        break;
9283
9284
115
            	            	    default:
9285
9286
115
            	            		if ( cnt53 >= 1 )
9287
            	            		{
9288
115
            	            		    goto loop53;
9289
            	            		}
9290
            	            		/* mismatchedSetEx()
9291
            	            		 */
9292
            	            		CONSTRUCTEX();
9293
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9294
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9295
9296
9297
            	            		goto rulethfLogicFormulaEx;
9298
            	            	}
9299
131
            	            	cnt53++;
9300
131
            	                }
9301
115
            	                loop53: ;	/* Jump to here if this rule does not match */
9302
            	            }
9303
9304
            	            {
9305
9306
115
            	                          p.d_expr = MK_TERM(api::AND, args);
9307
9308
            	            }
9309
9310
9311
            	        }
9312
9313
9314
            	    }
9315
115
            	    break;
9316
41
            	case 4:
9317
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1109:7: ( ( OR_TOK thfUnitaryFormula[p] )+ )
9318
            	    {
9319
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1109:7: ( ( OR_TOK thfUnitaryFormula[p] )+ )
9320
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1110:9: ( OR_TOK thfUnitaryFormula[p] )+
9321
            	        {
9322
            	            {
9323
9324
41
            	                          if (p.d_expr.isNull())
9325
            	                          {
9326
            	                            PARSER_STATE->parseError("OR must be applied to a formula");
9327
            	                          }
9328
41
            	                          args.push_back(p.d_expr);
9329
41
            	                          p = ParseOp();
9330
9331
            	            }
9332
9333
9334
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1118:9: ( OR_TOK thfUnitaryFormula[p] )+
9335
            	            {
9336
41
            	                int cnt54=0;
9337
9338
            	                for (;;)
9339
            	                {
9340
83
            	                    int alt54=2;
9341
83
            	            	switch ( LA(1) )
9342
            	            	{
9343
42
            	            	case OR_TOK:
9344
            	            		{
9345
42
            	            			alt54=1;
9346
            	            		}
9347
42
            	            	    break;
9348
9349
            	            	}
9350
9351
83
            	            	switch (alt54)
9352
            	            	{
9353
42
            	            	    case 1:
9354
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1118:11: OR_TOK thfUnitaryFormula[p]
9355
            	            	        {
9356
42
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_thfLogicFormula2714);
9357
42
            	            	            if  (HASEXCEPTION())
9358
            	            	            {
9359
            	            	                goto rulethfLogicFormulaEx;
9360
            	            	            }
9361
9362
9363
42
            	            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2716);
9364
42
            	            	            thfUnitaryFormula(ctx, p);
9365
9366
42
            	            	            FOLLOWPOP();
9367
42
            	            	            if  (HASEXCEPTION())
9368
            	            	            {
9369
            	            	                goto rulethfLogicFormulaEx;
9370
            	            	            }
9371
9372
9373
            	            	            {
9374
9375
42
            	            	                            if (p.d_expr.isNull())
9376
            	            	                            {
9377
            	            	                              PARSER_STATE->parseError("OR must be applied to a formula");
9378
            	            	                            }
9379
42
            	            	                            args.push_back(p.d_expr);
9380
42
            	            	                            p = ParseOp();
9381
9382
            	            	            }
9383
9384
9385
            	            	        }
9386
42
            	            	        break;
9387
9388
41
            	            	    default:
9389
9390
41
            	            		if ( cnt54 >= 1 )
9391
            	            		{
9392
41
            	            		    goto loop54;
9393
            	            		}
9394
            	            		/* mismatchedSetEx()
9395
            	            		 */
9396
            	            		CONSTRUCTEX();
9397
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9398
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9399
9400
9401
            	            		goto rulethfLogicFormulaEx;
9402
            	            	}
9403
42
            	            	cnt54++;
9404
42
            	                }
9405
41
            	                loop54: ;	/* Jump to here if this rule does not match */
9406
            	            }
9407
9408
            	            {
9409
9410
41
            	                          p.d_expr = MK_TERM(api::OR, args);
9411
9412
            	            }
9413
9414
9415
            	        }
9416
9417
9418
            	    }
9419
41
            	    break;
9420
3883
            	case 5:
9421
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1138:7: ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+
9422
            	    {
9423
            	        {
9424
9425
3883
            	                    p_args.push_back(p);
9426
3883
            	                    p = ParseOp();
9427
9428
            	        }
9429
9430
9431
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1142:7: ( APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK ) )+
9432
            	        {
9433
3883
            	            int cnt56=0;
9434
9435
            	            for (;;)
9436
            	            {
9437
10495
            	                int alt56=2;
9438
10495
            	        	switch ( LA(1) )
9439
            	        	{
9440
6612
            	        	case APP_TOK:
9441
            	        		{
9442
6612
            	        			alt56=1;
9443
            	        		}
9444
6612
            	        	    break;
9445
9446
            	        	}
9447
9448
10495
            	        	switch (alt56)
9449
            	        	{
9450
6612
            	        	    case 1:
9451
            	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1142:9: APP_TOK ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK )
9452
            	        	        {
9453
6612
            	        	             MATCHT(APP_TOK, &FOLLOW_APP_TOK_in_thfLogicFormula2818);
9454
6612
            	        	            if  (HASEXCEPTION())
9455
            	        	            {
9456
            	        	                goto rulethfLogicFormulaEx;
9457
            	        	            }
9458
9459
9460
            	        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1143:9: ( thfUnitaryFormula[p] | LBRACK_TOK thfTupleForm[args] RBRACK_TOK )
9461
            	        	            {
9462
6612
            	        	                int alt55=2;
9463
6612
            	        	                switch ( LA(1) )
9464
            	        	                {
9465
6612
            	        	                case CHOICE_TOK:
9466
            	        	                case CNF_TOK:
9467
            	        	                case DEF_DESC_TOK:
9468
            	        	                case DISTINCT_OBJECT:
9469
            	        	                case EXISTS_TOK:
9470
            	        	                case FALSE_TOK:
9471
            	        	                case FOF_TOK:
9472
            	        	                case FORALL_TOK:
9473
            	        	                case INCLUDE_TOK:
9474
            	        	                case LAMBDA_TOK:
9475
            	        	                case LOWER_WORD:
9476
            	        	                case LOWER_WORD_SINGLE_QUOTED:
9477
            	        	                case LPAREN_TOK:
9478
            	        	                case NOT_TOK:
9479
            	        	                case NUMBER:
9480
            	        	                case SINGLE_QUOTED:
9481
            	        	                case TFF_TOK:
9482
            	        	                case TH1_UN_A:
9483
            	        	                case TH1_UN_E:
9484
            	        	                case THF_TOK:
9485
            	        	                case TRUE_TOK:
9486
            	        	                case TYPE_TOK:
9487
            	        	                case UPPER_WORD:
9488
            	        	                case 63:
9489
            	        	                case 64:
9490
            	        	                case 65:
9491
            	        	                case 66:
9492
            	        	                case 67:
9493
            	        	                case 68:
9494
            	        	                case 69:
9495
            	        	                case 70:
9496
            	        	                case 72:
9497
            	        	                case 73:
9498
            	        	                case 74:
9499
            	        	                case 76:
9500
            	        	                case 78:
9501
            	        	                case 79:
9502
            	        	                case 80:
9503
            	        	                case 81:
9504
            	        	                case 82:
9505
            	        	                case 83:
9506
            	        	                case 84:
9507
            	        	                case 85:
9508
            	        	                case 86:
9509
            	        	                case 87:
9510
            	        	                case 88:
9511
            	        	                case 90:
9512
            	        	                case 91:
9513
            	        	                case 92:
9514
            	        	                case 93:
9515
            	        	                case 94:
9516
            	        	                	{
9517
6612
            	        	                		alt55=1;
9518
            	        	                	}
9519
6612
            	        	                    break;
9520
            	        	                case LBRACK_TOK:
9521
            	        	                	{
9522
            	        	                		alt55=2;
9523
            	        	                	}
9524
            	        	                    break;
9525
9526
            	        	                default:
9527
            	        	                    CONSTRUCTEX();
9528
            	        	                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9529
            	        	                    EXCEPTION->message      = (void *)"";
9530
            	        	                    EXCEPTION->decisionNum  = 55;
9531
            	        	                    EXCEPTION->state        = 0;
9532
9533
9534
            	        	                    goto rulethfLogicFormulaEx;
9535
9536
            	        	                }
9537
9538
6612
            	        	                switch (alt55)
9539
            	        	                {
9540
6612
            	        	            	case 1:
9541
            	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1144:10: thfUnitaryFormula[p]
9542
            	        	            	    {
9543
6612
            	        	            	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfLogicFormula2839);
9544
6612
            	        	            	        thfUnitaryFormula(ctx, p);
9545
9546
6612
            	        	            	        FOLLOWPOP();
9547
6612
            	        	            	        if  (HASEXCEPTION())
9548
            	        	            	        {
9549
            	        	            	            goto rulethfLogicFormulaEx;
9550
            	        	            	        }
9551
9552
9553
            	        	            	        {
9554
9555
6612
            	        	            	                       p_args.push_back(p);
9556
6612
            	        	            	                       p = ParseOp();
9557
9558
            	        	            	        }
9559
9560
9561
            	        	            	    }
9562
6612
            	        	            	    break;
9563
            	        	            	case 2:
9564
            	        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1149:12: LBRACK_TOK thfTupleForm[args] RBRACK_TOK
9565
            	        	            	    {
9566
            	        	            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfLogicFormula2864);
9567
            	        	            	        if  (HASEXCEPTION())
9568
            	        	            	        {
9569
            	        	            	            goto rulethfLogicFormulaEx;
9570
            	        	            	        }
9571
9572
9573
            	        	            	        {
9574
            	        	            	             UNSUPPORTED("Tuple terms");
9575
            	        	            	        }
9576
9577
9578
            	        	            	        FOLLOWPUSH(FOLLOW_thfTupleForm_in_thfLogicFormula2890);
9579
            	        	            	        thfTupleForm(ctx, args);
9580
9581
            	        	            	        FOLLOWPOP();
9582
            	        	            	        if  (HASEXCEPTION())
9583
            	        	            	        {
9584
            	        	            	            goto rulethfLogicFormulaEx;
9585
            	        	            	        }
9586
9587
9588
            	        	            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfLogicFormula2904);
9589
            	        	            	        if  (HASEXCEPTION())
9590
            	        	            	        {
9591
            	        	            	            goto rulethfLogicFormulaEx;
9592
            	        	            	        }
9593
9594
9595
            	        	            	    }
9596
            	        	            	    break;
9597
9598
            	        	                }
9599
            	        	            }
9600
9601
            	        	        }
9602
6612
            	        	        break;
9603
9604
3883
            	        	    default:
9605
9606
3883
            	        		if ( cnt56 >= 1 )
9607
            	        		{
9608
3883
            	        		    goto loop56;
9609
            	        		}
9610
            	        		/* mismatchedSetEx()
9611
            	        		 */
9612
            	        		CONSTRUCTEX();
9613
            	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9614
            	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9615
9616
9617
            	        		goto rulethfLogicFormulaEx;
9618
            	        	}
9619
6612
            	        	cnt56++;
9620
6612
            	            }
9621
3883
            	            loop56: ;	/* Jump to here if this rule does not match */
9622
            	        }
9623
9624
            	        {
9625
9626
3883
            	                    if (p_args[0].d_expr.isNull())
9627
            	                    {
9628
218
            	                      for (unsigned i = 1, size = p_args.size(); i < size; ++i)
9629
            	                      {
9630
143
            	                        if (p_args[i].d_expr.isNull())
9631
            	                        {
9632
            	                          PARSER_STATE->parseError(
9633
            	                              "Application chains with defined symbol heads and at least "
9634
            	                              "one defined symbol as argument are unsupported.");
9635
            	                        }
9636
143
            	                        args.push_back(p_args[i].d_expr);
9637
            	                      }
9638
75
            	                      p.d_expr = PARSER_STATE->applyParseOp(p_args[0], args);
9639
            	                    }
9640
            	                    else
9641
            	                    {
9642
3808
            	                      p.d_expr = p_args[0].d_expr;
9643
            	                      // check if any argument is a defined function, e.g. "~", and create a
9644
            	                      // lambda wrapper then, e.g. (\lambda x. ~ x)
9645
10277
            	                      for (unsigned i = 1, size = p_args.size(); i < size; ++i)
9646
            	                      {
9647
12937
            	                        if (!p_args[i].d_expr.isNull())
9648
            	                        {
9649
6468
            	                          args.push_back(p_args[i].d_expr);
9650
6468
            	                          continue;
9651
            	                        }
9652
            	                        // create a lambda wrapper, e.g. (\lambda x. ~ x).
9653
            	                        //
9654
            	                        // The type is determined by the first element of the application
9655
            	                        // chain, which must be a function of type t1...tn -> t, so the
9656
            	                        // lambda must have type ti
9657
3
            	                        args.push_back(PARSER_STATE->mkLambdaWrapper(
9658
1
            	                            p_args[i].d_kind,
9659
2
            	                            p.d_expr.getSort()
9660
2
            	                                .getFunctionDomainSorts()[i - 1]));
9661
            	                      }
9662
10277
            	                      for (unsigned i = 0, size = args.size(); i < size; ++i)
9663
            	                      {
9664
6469
            	                        p.d_expr = MK_TERM(api::HO_APPLY, p.d_expr, args[i]);
9665
            	                      }
9666
            	                    }
9667
9668
            	        }
9669
9670
9671
            	    }
9672
3883
            	    break;
9673
9674
                }
9675
            }
9676
9677
        }
9678
9679
    }
9680
9681
    // This is where rules clean up and exit
9682
    //
9683
9081
    goto rulethfLogicFormulaEx; /* Prevent compiler warnings */
9684
9081
    rulethfLogicFormulaEx: ;
9685
9686
9081
            if (HASEXCEPTION())
9687
            {
9688
                PREPORTERROR();
9689
                PRECOVER();
9690
            }
9691
18162
    return ;
9692
}
9693
/* $ANTLR end thfLogicFormula */
9694
9695
/**
9696
 * $ANTLR start thfTupleForm
9697
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1201:1: thfTupleForm[std::vector<cvc5::api::Term>& args] : thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+ ;
9698
 */
9699
static void
9700
thfTupleForm(pTptpParser ctx, std::vector<cvc5::api::Term>& args)
9701
{
9702
9703
      ParseOp p;
9704
9705
    /* Initialize rule variables
9706
     */
9707
9708
    {
9709
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1205:3: ( thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+ )
9710
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1205:5: thfUnitaryFormula[p] ( COMMA_TOK thfUnitaryFormula[p] )+
9711
        {
9712
            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfTupleForm2957);
9713
            thfUnitaryFormula(ctx, p);
9714
9715
            FOLLOWPOP();
9716
            if  (HASEXCEPTION())
9717
            {
9718
                goto rulethfTupleFormEx;
9719
            }
9720
9721
9722
            {
9723
9724
                     if (p.d_expr.isNull())
9725
                     {
9726
                       PARSER_STATE->parseError("TUPLE element must be a formula");
9727
                     }
9728
                     args.push_back(p.d_expr);
9729
9730
            }
9731
9732
9733
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1213:4: ( COMMA_TOK thfUnitaryFormula[p] )+
9734
            {
9735
                int cnt58=0;
9736
9737
                for (;;)
9738
                {
9739
                    int alt58=2;
9740
            	switch ( LA(1) )
9741
            	{
9742
            	case COMMA_TOK:
9743
            		{
9744
            			alt58=1;
9745
            		}
9746
            	    break;
9747
9748
            	}
9749
9750
            	switch (alt58)
9751
            	{
9752
            	    case 1:
9753
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1213:6: COMMA_TOK thfUnitaryFormula[p]
9754
            	        {
9755
            	             MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_thfTupleForm2970);
9756
            	            if  (HASEXCEPTION())
9757
            	            {
9758
            	                goto rulethfTupleFormEx;
9759
            	            }
9760
9761
9762
            	            FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfTupleForm2972);
9763
            	            thfUnitaryFormula(ctx, p);
9764
9765
            	            FOLLOWPOP();
9766
            	            if  (HASEXCEPTION())
9767
            	            {
9768
            	                goto rulethfTupleFormEx;
9769
            	            }
9770
9771
9772
            	            {
9773
9774
            	                       if (p.d_expr.isNull())
9775
            	                       {
9776
            	                         PARSER_STATE->parseError("TUPLE element must be a formula");
9777
            	                       }
9778
            	                       args.push_back(p.d_expr);
9779
9780
            	            }
9781
9782
9783
            	        }
9784
            	        break;
9785
9786
            	    default:
9787
9788
            		if ( cnt58 >= 1 )
9789
            		{
9790
            		    goto loop58;
9791
            		}
9792
            		/* mismatchedSetEx()
9793
            		 */
9794
            		CONSTRUCTEX();
9795
            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
9796
            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
9797
9798
9799
            		goto rulethfTupleFormEx;
9800
            	}
9801
            	cnt58++;
9802
                }
9803
                loop58: ;	/* Jump to here if this rule does not match */
9804
            }
9805
9806
        }
9807
9808
    }
9809
9810
    // This is where rules clean up and exit
9811
    //
9812
    goto rulethfTupleFormEx; /* Prevent compiler warnings */
9813
    rulethfTupleFormEx: ;
9814
9815
            if (HASEXCEPTION())
9816
            {
9817
                PREPORTERROR();
9818
                PRECOVER();
9819
            }
9820
    return ;
9821
}
9822
/* $ANTLR end thfTupleForm */
9823
9824
/**
9825
 * $ANTLR start thfUnitaryFormula
9826
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1224: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] );
9827
 */
9828
static void
9829
20325
thfUnitaryFormula(pTptpParser ctx, cvc5::ParseOp& p)
9830
{
9831
9832
      api::Kind kind;
9833
40650
      std::vector< cvc5::api::Term > bv;
9834
40650
      cvc5::api::Term expr;
9835
      bool equal;
9836
40650
      ParseOp p1;
9837
9838
    /* Initialize rule variables
9839
     */
9840
9841
    {
9842
        {
9843
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1232: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] )
9844
9845
            ANTLR3_UINT32 alt61;
9846
9847
20325
            alt61=5;
9848
9849
20325
            switch ( LA(1) )
9850
            {
9851
5732
            case UPPER_WORD:
9852
            	{
9853
5732
            		alt61=1;
9854
            	}
9855
5732
                break;
9856
5001
            case CNF_TOK:
9857
            case DISTINCT_OBJECT:
9858
            case FALSE_TOK:
9859
            case FOF_TOK:
9860
            case INCLUDE_TOK:
9861
            case LOWER_WORD:
9862
            case LOWER_WORD_SINGLE_QUOTED:
9863
            case NUMBER:
9864
            case SINGLE_QUOTED:
9865
            case TFF_TOK:
9866
            case THF_TOK:
9867
            case TRUE_TOK:
9868
            case TYPE_TOK:
9869
            case 63:
9870
            case 64:
9871
            case 65:
9872
            case 66:
9873
            case 67:
9874
            case 68:
9875
            case 69:
9876
            case 70:
9877
            case 72:
9878
            case 73:
9879
            case 74:
9880
            case 76:
9881
            case 78:
9882
            case 79:
9883
            case 80:
9884
            case 81:
9885
            case 82:
9886
            case 83:
9887
            case 84:
9888
            case 85:
9889
            case 86:
9890
            case 87:
9891
            case 88:
9892
            case 90:
9893
            case 91:
9894
            case 92:
9895
            case 93:
9896
            case 94:
9897
            	{
9898
5001
            		alt61=2;
9899
            	}
9900
5001
                break;
9901
8139
            case LPAREN_TOK:
9902
            	{
9903
8139
            		switch ( LA(2) )
9904
            		{
9905
68
            		case AND_TOK:
9906
            		case IMPLIES_TOK:
9907
            		case OR_TOK:
9908
            			{
9909
68
            				alt61=2;
9910
            			}
9911
68
            		    break;
9912
8071
            		case CHOICE_TOK:
9913
            		case CNF_TOK:
9914
            		case DEF_DESC_TOK:
9915
            		case DISTINCT_OBJECT:
9916
            		case EXISTS_TOK:
9917
            		case FALSE_TOK:
9918
            		case FOF_TOK:
9919
            		case FORALL_TOK:
9920
            		case INCLUDE_TOK:
9921
            		case LAMBDA_TOK:
9922
            		case LOWER_WORD:
9923
            		case LOWER_WORD_SINGLE_QUOTED:
9924
            		case LPAREN_TOK:
9925
            		case NOT_TOK:
9926
            		case NUMBER:
9927
            		case SINGLE_QUOTED:
9928
            		case TFF_TOK:
9929
            		case TH1_UN_A:
9930
            		case TH1_UN_E:
9931
            		case THF_TOK:
9932
            		case TRUE_TOK:
9933
            		case TYPE_TOK:
9934
            		case UPPER_WORD:
9935
            		case 63:
9936
            		case 64:
9937
            		case 65:
9938
            		case 66:
9939
            		case 67:
9940
            		case 68:
9941
            		case 69:
9942
            		case 70:
9943
            		case 72:
9944
            		case 73:
9945
            		case 74:
9946
            		case 76:
9947
            		case 78:
9948
            		case 79:
9949
            		case 80:
9950
            		case 81:
9951
            		case 82:
9952
            		case 83:
9953
            		case 84:
9954
            		case 85:
9955
            		case 86:
9956
            		case 87:
9957
            		case 88:
9958
            		case 90:
9959
            		case 91:
9960
            		case 92:
9961
            		case 93:
9962
            		case 94:
9963
            			{
9964
8071
            				alt61=3;
9965
            			}
9966
8071
            		    break;
9967
9968
            		default:
9969
            		    CONSTRUCTEX();
9970
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
9971
            		    EXCEPTION->message      = (void *)"";
9972
            		    EXCEPTION->decisionNum  = 61;
9973
            		    EXCEPTION->state        = 41;
9974
9975
9976
            		    goto rulethfUnitaryFormulaEx;
9977
9978
            		}
9979
9980
            	}
9981
8139
                break;
9982
173
            case NOT_TOK:
9983
            	{
9984
173
            		alt61=4;
9985
            	}
9986
173
                break;
9987
1280
            case CHOICE_TOK:
9988
            case DEF_DESC_TOK:
9989
            case EXISTS_TOK:
9990
            case FORALL_TOK:
9991
            case LAMBDA_TOK:
9992
            case TH1_UN_A:
9993
            case TH1_UN_E:
9994
            	{
9995
1280
            		alt61=5;
9996
            	}
9997
1280
                break;
9998
9999
            default:
10000
                CONSTRUCTEX();
10001
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10002
                EXCEPTION->message      = (void *)"";
10003
                EXCEPTION->decisionNum  = 61;
10004
                EXCEPTION->state        = 0;
10005
10006
10007
                goto rulethfUnitaryFormulaEx;
10008
10009
            }
10010
10011
20325
            switch (alt61)
10012
            {
10013
5732
        	case 1:
10014
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1232:5: variable[p.d_expr]
10015
        	    {
10016
5732
        	        FOLLOWPUSH(FOLLOW_variable_in_thfUnitaryFormula3003);
10017
5732
        	        variable(ctx, p.d_expr);
10018
10019
5732
        	        FOLLOWPOP();
10020
5732
        	        if  (HASEXCEPTION())
10021
        	        {
10022
        	            goto rulethfUnitaryFormulaEx;
10023
        	        }
10024
10025
10026
        	    }
10027
5732
        	    break;
10028
5069
        	case 2:
10029
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1233:5: thfAtomicFormula[p]
10030
        	    {
10031
5069
        	        FOLLOWPUSH(FOLLOW_thfAtomicFormula_in_thfUnitaryFormula3010);
10032
5069
        	        thfAtomicFormula(ctx, p);
10033
10034
5069
        	        FOLLOWPOP();
10035
5069
        	        if  (HASEXCEPTION())
10036
        	        {
10037
        	            goto rulethfUnitaryFormulaEx;
10038
        	        }
10039
10040
10041
        	    }
10042
5069
        	    break;
10043
8071
        	case 3:
10044
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1234:5: LPAREN_TOK thfLogicFormula[p] RPAREN_TOK
10045
        	    {
10046
8071
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfUnitaryFormula3017);
10047
8071
        	        if  (HASEXCEPTION())
10048
        	        {
10049
        	            goto rulethfUnitaryFormulaEx;
10050
        	        }
10051
10052
10053
8071
        	        FOLLOWPUSH(FOLLOW_thfLogicFormula_in_thfUnitaryFormula3023);
10054
8071
        	        thfLogicFormula(ctx, p);
10055
10056
8071
        	        FOLLOWPOP();
10057
8071
        	        if  (HASEXCEPTION())
10058
        	        {
10059
        	            goto rulethfUnitaryFormulaEx;
10060
        	        }
10061
10062
10063
8071
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfUnitaryFormula3030);
10064
8071
        	        if  (HASEXCEPTION())
10065
        	        {
10066
        	            goto rulethfUnitaryFormulaEx;
10067
        	        }
10068
10069
10070
        	    }
10071
8071
        	    break;
10072
173
        	case 4:
10073
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1237:5: NOT_TOK ( thfUnitaryFormula[p1] )?
10074
        	    {
10075
173
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_thfUnitaryFormula3036);
10076
173
        	        if  (HASEXCEPTION())
10077
        	        {
10078
        	            goto rulethfUnitaryFormulaEx;
10079
        	        }
10080
10081
10082
        	        {
10083
10084
173
        	                  p.d_kind = api::NOT;
10085
10086
        	        }
10087
10088
10089
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1241:5: ( thfUnitaryFormula[p1] )?
10090
        	        {
10091
173
        	            int alt59=2;
10092
173
        	            switch ( LA(1) )
10093
        	            {
10094
165
        	                case CHOICE_TOK:
10095
        	                case CNF_TOK:
10096
        	                case DEF_DESC_TOK:
10097
        	                case DISTINCT_OBJECT:
10098
        	                case EXISTS_TOK:
10099
        	                case FALSE_TOK:
10100
        	                case FOF_TOK:
10101
        	                case FORALL_TOK:
10102
        	                case INCLUDE_TOK:
10103
        	                case LAMBDA_TOK:
10104
        	                case LOWER_WORD:
10105
        	                case LOWER_WORD_SINGLE_QUOTED:
10106
        	                case LPAREN_TOK:
10107
        	                case NOT_TOK:
10108
        	                case NUMBER:
10109
        	                case SINGLE_QUOTED:
10110
        	                case TFF_TOK:
10111
        	                case TH1_UN_A:
10112
        	                case TH1_UN_E:
10113
        	                case THF_TOK:
10114
        	                case TRUE_TOK:
10115
        	                case TYPE_TOK:
10116
        	                case UPPER_WORD:
10117
        	                case 63:
10118
        	                case 64:
10119
        	                case 65:
10120
        	                case 66:
10121
        	                case 67:
10122
        	                case 68:
10123
        	                case 69:
10124
        	                case 70:
10125
        	                case 72:
10126
        	                case 73:
10127
        	                case 74:
10128
        	                case 76:
10129
        	                case 78:
10130
        	                case 79:
10131
        	                case 80:
10132
        	                case 81:
10133
        	                case 82:
10134
        	                case 83:
10135
        	                case 84:
10136
        	                case 85:
10137
        	                case 86:
10138
        	                case 87:
10139
        	                case 88:
10140
        	                case 90:
10141
        	                case 91:
10142
        	                case 92:
10143
        	                case 93:
10144
        	                case 94:
10145
        	                	{
10146
165
        	                		alt59=1;
10147
        	                	}
10148
165
        	                    break;
10149
        	            }
10150
10151
173
        	            switch (alt59)
10152
        	            {
10153
165
        	        	case 1:
10154
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1242:6: thfUnitaryFormula[p1]
10155
        	        	    {
10156
165
        	        	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3055);
10157
165
        	        	        thfUnitaryFormula(ctx, p1);
10158
10159
165
        	        	        FOLLOWPOP();
10160
165
        	        	        if  (HASEXCEPTION())
10161
        	        	        {
10162
        	        	            goto rulethfUnitaryFormulaEx;
10163
        	        	        }
10164
10165
10166
        	        	        {
10167
10168
165
        	        	                   if (p1.d_expr.isNull())
10169
        	        	                   {
10170
        	        	                     PARSER_STATE->parseError("NOT must be applied to a formula");
10171
        	        	                   }
10172
330
        	        	                   std::vector<api::Term> args{p1.d_expr};
10173
165
        	        	                   p.d_expr = PARSER_STATE->applyParseOp(p, args);
10174
10175
165
        	        	        }
10176
10177
10178
        	        	    }
10179
165
        	        	    break;
10180
10181
        	            }
10182
        	        }
10183
10184
        	    }
10185
173
        	    break;
10186
1280
        	case 5:
10187
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1253:5: thfQuantifier[p.d_kind] LBRACK_TOK thfBindVariable[expr] ( COMMA_TOK thfBindVariable[expr] )* RBRACK_TOK COLON_TOK thfUnitaryFormula[p1]
10188
        	    {
10189
1280
        	        FOLLOWPUSH(FOLLOW_thfQuantifier_in_thfUnitaryFormula3081);
10190
1280
        	        thfQuantifier(ctx, p.d_kind);
10191
10192
1280
        	        FOLLOWPOP();
10193
1280
        	        if  (HASEXCEPTION())
10194
        	        {
10195
        	            goto rulethfUnitaryFormulaEx;
10196
        	        }
10197
10198
10199
1280
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfUnitaryFormula3088);
10200
1280
        	        if  (HASEXCEPTION())
10201
        	        {
10202
        	            goto rulethfUnitaryFormulaEx;
10203
        	        }
10204
10205
10206
        	        {
10207
1280
        	            PARSER_STATE->pushScope();
10208
        	        }
10209
10210
10211
1280
        	        FOLLOWPUSH(FOLLOW_thfBindVariable_in_thfUnitaryFormula3096);
10212
1280
        	        thfBindVariable(ctx, expr);
10213
10214
1280
        	        FOLLOWPOP();
10215
1280
        	        if  (HASEXCEPTION())
10216
        	        {
10217
        	            goto rulethfUnitaryFormulaEx;
10218
        	        }
10219
10220
10221
        	        {
10222
10223
1280
        	                  bv.push_back(expr);
10224
10225
        	        }
10226
10227
10228
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1259:5: ( COMMA_TOK thfBindVariable[expr] )*
10229
10230
        	        for (;;)
10231
        	        {
10232
2582
        	            int alt60=2;
10233
2582
        	            switch ( LA(1) )
10234
        	            {
10235
1302
        	            case COMMA_TOK:
10236
        	            	{
10237
1302
        	            		alt60=1;
10238
        	            	}
10239
1302
        	                break;
10240
10241
        	            }
10242
10243
2582
        	            switch (alt60)
10244
        	            {
10245
1302
        	        	case 1:
10246
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1259:7: COMMA_TOK thfBindVariable[expr]
10247
        	        	    {
10248
1302
        	        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_thfUnitaryFormula3111);
10249
1302
        	        	        if  (HASEXCEPTION())
10250
        	        	        {
10251
        	        	            goto rulethfUnitaryFormulaEx;
10252
        	        	        }
10253
10254
10255
1302
        	        	        FOLLOWPUSH(FOLLOW_thfBindVariable_in_thfUnitaryFormula3113);
10256
1302
        	        	        thfBindVariable(ctx, expr);
10257
10258
1302
        	        	        FOLLOWPOP();
10259
1302
        	        	        if  (HASEXCEPTION())
10260
        	        	        {
10261
        	        	            goto rulethfUnitaryFormulaEx;
10262
        	        	        }
10263
10264
10265
        	        	        {
10266
10267
1302
        	        	                    bv.push_back(expr);
10268
10269
        	        	        }
10270
10271
10272
        	        	    }
10273
1302
        	        	    break;
10274
10275
1280
        	        	default:
10276
1280
        	        	    goto loop60;	/* break out of the loop */
10277
        	        	    break;
10278
        	            }
10279
1302
        	        }
10280
1280
        	        loop60: ; /* Jump out to here if this rule does not match */
10281
10282
10283
1280
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfUnitaryFormula3135);
10284
1280
        	        if  (HASEXCEPTION())
10285
        	        {
10286
        	            goto rulethfUnitaryFormulaEx;
10287
        	        }
10288
10289
10290
1280
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfUnitaryFormula3137);
10291
1280
        	        if  (HASEXCEPTION())
10292
        	        {
10293
        	            goto rulethfUnitaryFormulaEx;
10294
        	        }
10295
10296
10297
1280
        	        FOLLOWPUSH(FOLLOW_thfUnitaryFormula_in_thfUnitaryFormula3143);
10298
1280
        	        thfUnitaryFormula(ctx, p1);
10299
10300
1280
        	        FOLLOWPOP();
10301
1280
        	        if  (HASEXCEPTION())
10302
        	        {
10303
        	            goto rulethfUnitaryFormulaEx;
10304
        	        }
10305
10306
10307
        	        {
10308
10309
1280
        	                  if (p1.d_expr.isNull())
10310
        	                  {
10311
        	                    PARSER_STATE->parseError("In scope of binder there must be a formula.");
10312
        	                  }
10313
1280
        	                  expr = p1.d_expr;
10314
1280
        	                  PARSER_STATE->popScope();
10315
        	                  // handle lambda case, in which case return type must be flattened and the
10316
        	                  // auxiliary variables introduced in the proccess must be added no the
10317
        	                  // variable list
10318
        	                  //
10319
        	                  // see documentation of mkFlatFunctionType for how it's done
10320
        	                  //
10321
        	                  // flatten body via flattening its type
10322
2560
        	                  std::vector<api::Sort> sorts;
10323
2560
        	                  std::vector<api::Term> flattenVars;
10324
1280
        	                  PARSER_STATE->mkFlatFunctionType(sorts, expr.getSort(), flattenVars);
10325
1280
        	                  if (!flattenVars.empty())
10326
        	                  {
10327
        	                    // apply body of lambda to flatten vars
10328
5
        	                    expr = PARSER_STATE->mkHoApply(expr, flattenVars);
10329
        	                    // add variables to BOUND_VAR_LIST
10330
5
        	                    bv.insert(bv.end(), flattenVars.begin(), flattenVars.end());
10331
        	                  }
10332
1280
        	                  p.d_expr = MK_TERM(p.d_kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
10333
10334
1280
        	        }
10335
10336
10337
        	    }
10338
1280
        	    break;
10339
10340
            }
10341
        }
10342
    }
10343
10344
    // This is where rules clean up and exit
10345
    //
10346
20325
    goto rulethfUnitaryFormulaEx; /* Prevent compiler warnings */
10347
20325
    rulethfUnitaryFormulaEx: ;
10348
10349
20325
            if (HASEXCEPTION())
10350
            {
10351
                PREPORTERROR();
10352
                PRECOVER();
10353
            }
10354
40650
    return ;
10355
}
10356
/* $ANTLR end thfUnitaryFormula */
10357
10358
/**
10359
 * $ANTLR start tffFormula
10360
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1296:1: tffFormula[cvc5::api::Term& expr] : tffLogicFormula[expr] ;
10361
 */
10362
static void
10363
142
tffFormula(pTptpParser ctx, cvc5::api::Term& expr)
10364
{
10365
    /* Initialize rule variables
10366
     */
10367
10368
    {
10369
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1296:35: ( tffLogicFormula[expr] )
10370
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1296:37: tffLogicFormula[expr]
10371
        {
10372
142
            FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffFormula3166);
10373
142
            tffLogicFormula(ctx, expr);
10374
10375
142
            FOLLOWPOP();
10376
142
            if  (HASEXCEPTION())
10377
            {
10378
                goto ruletffFormulaEx;
10379
            }
10380
10381
10382
        }
10383
10384
    }
10385
10386
    // This is where rules clean up and exit
10387
    //
10388
142
    goto ruletffFormulaEx; /* Prevent compiler warnings */
10389
142
    ruletffFormulaEx: ;
10390
10391
142
            if (HASEXCEPTION())
10392
            {
10393
                PREPORTERROR();
10394
                PRECOVER();
10395
            }
10396
142
    return ;
10397
}
10398
/* $ANTLR end tffFormula */
10399
10400
/**
10401
 * $ANTLR start tffTypedAtom
10402
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1298:1: tffTypedAtom[cvc5::Command*& cmd] : ( LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseType[type] ) );
10403
 */
10404
static void
10405
138
tffTypedAtom(pTptpParser ctx, cvc5::Command*& cmd)
10406
{
10407
10408
276
      cvc5::api::Term expr;
10409
276
      cvc5::api::Sort type;
10410
276
      std::string name;
10411
10412
    /* Initialize rule variables
10413
     */
10414
10415
    {
10416
        {
10417
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1304:3: ( LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK | nameN[name] COLON_TOK ( '$tType' | parseType[type] ) )
10418
10419
            ANTLR3_UINT32 alt63;
10420
10421
138
            alt63=2;
10422
10423
138
            switch ( LA(1) )
10424
            {
10425
69
            case LPAREN_TOK:
10426
            	{
10427
69
            		alt63=1;
10428
            	}
10429
69
                break;
10430
69
            case CNF_TOK:
10431
            case FOF_TOK:
10432
            case INCLUDE_TOK:
10433
            case LOWER_WORD:
10434
            case LOWER_WORD_SINGLE_QUOTED:
10435
            case NUMBER:
10436
            case SINGLE_QUOTED:
10437
            case TFF_TOK:
10438
            case THF_TOK:
10439
            case TYPE_TOK:
10440
            	{
10441
69
            		alt63=2;
10442
            	}
10443
69
                break;
10444
10445
            default:
10446
                CONSTRUCTEX();
10447
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10448
                EXCEPTION->message      = (void *)"";
10449
                EXCEPTION->decisionNum  = 63;
10450
                EXCEPTION->state        = 0;
10451
10452
10453
                goto ruletffTypedAtomEx;
10454
10455
            }
10456
10457
138
            switch (alt63)
10458
            {
10459
69
        	case 1:
10460
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1304:5: LPAREN_TOK tffTypedAtom[cmd] RPAREN_TOK
10461
        	    {
10462
69
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffTypedAtom3183);
10463
69
        	        if  (HASEXCEPTION())
10464
        	        {
10465
        	            goto ruletffTypedAtomEx;
10466
        	        }
10467
10468
10469
69
        	        FOLLOWPUSH(FOLLOW_tffTypedAtom_in_tffTypedAtom3185);
10470
69
        	        tffTypedAtom(ctx, cmd);
10471
10472
69
        	        FOLLOWPOP();
10473
69
        	        if  (HASEXCEPTION())
10474
        	        {
10475
        	            goto ruletffTypedAtomEx;
10476
        	        }
10477
10478
10479
69
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffTypedAtom3188);
10480
69
        	        if  (HASEXCEPTION())
10481
        	        {
10482
        	            goto ruletffTypedAtomEx;
10483
        	        }
10484
10485
10486
        	    }
10487
69
        	    break;
10488
69
        	case 2:
10489
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1305:5: nameN[name] COLON_TOK ( '$tType' | parseType[type] )
10490
        	    {
10491
69
        	        FOLLOWPUSH(FOLLOW_nameN_in_tffTypedAtom3194);
10492
69
        	        nameN(ctx, name);
10493
10494
69
        	        FOLLOWPOP();
10495
69
        	        if  (HASEXCEPTION())
10496
        	        {
10497
        	            goto ruletffTypedAtomEx;
10498
        	        }
10499
10500
10501
69
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffTypedAtom3197);
10502
69
        	        if  (HASEXCEPTION())
10503
        	        {
10504
        	            goto ruletffTypedAtomEx;
10505
        	        }
10506
10507
10508
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1306:5: ( '$tType' | parseType[type] )
10509
        	        {
10510
69
        	            int alt62=2;
10511
69
        	            switch ( LA(1) )
10512
        	            {
10513
9
        	            case 89:
10514
        	            	{
10515
9
        	            		alt62=1;
10516
        	            	}
10517
9
        	                break;
10518
60
        	            case CNF_TOK:
10519
        	            case DEFINED_SYMBOL:
10520
        	            case FOF_TOK:
10521
        	            case INCLUDE_TOK:
10522
        	            case LOWER_WORD:
10523
        	            case LOWER_WORD_SINGLE_QUOTED:
10524
        	            case LPAREN_TOK:
10525
        	            case SINGLE_QUOTED:
10526
        	            case TFF_TOK:
10527
        	            case THF_TOK:
10528
        	            case TYPE_TOK:
10529
        	            	{
10530
60
        	            		alt62=2;
10531
        	            	}
10532
60
        	                break;
10533
10534
        	            default:
10535
        	                CONSTRUCTEX();
10536
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
10537
        	                EXCEPTION->message      = (void *)"";
10538
        	                EXCEPTION->decisionNum  = 62;
10539
        	                EXCEPTION->state        = 0;
10540
10541
10542
        	                goto ruletffTypedAtomEx;
10543
10544
        	            }
10545
10546
69
        	            switch (alt62)
10547
        	            {
10548
9
        	        	case 1:
10549
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1306:7: '$tType'
10550
        	        	    {
10551
9
        	        	         MATCHT(89, &FOLLOW_89_in_tffTypedAtom3205);
10552
9
        	        	        if  (HASEXCEPTION())
10553
        	        	        {
10554
        	        	            goto ruletffTypedAtomEx;
10555
        	        	        }
10556
10557
10558
        	        	        {
10559
9
        	        	             if(PARSER_STATE->isDeclared(name, SYM_SORT)) {
10560
        	        	                      // duplicate declaration is fine, they're compatible
10561
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
10562
9
        	        	                    } else if(PARSER_STATE->isDeclared(name, SYM_VARIABLE)) {
10563
        	        	                      // error: cannot be both sort and constant
10564
        	        	                      PARSER_STATE->parseError("Symbol `" + name + "' previously declared as a constant; cannot also be a sort");
10565
        	        	                    } else {
10566
        	        	                      // as yet, it's undeclared
10567
18
        	        	                      api::Sort atype = PARSER_STATE->mkSort(name);
10568
9
        	        	                      cmd = new DeclareSortCommand(name, 0, atype);
10569
        	        	                    }
10570
10571
        	        	        }
10572
10573
10574
        	        	    }
10575
9
        	        	    break;
10576
60
        	        	case 2:
10577
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1319:7: parseType[type]
10578
        	        	    {
10579
60
        	        	        FOLLOWPUSH(FOLLOW_parseType_in_tffTypedAtom3221);
10580
60
        	        	        parseType(ctx, type);
10581
10582
60
        	        	        FOLLOWPOP();
10583
60
        	        	        if  (HASEXCEPTION())
10584
        	        	        {
10585
        	        	            goto ruletffTypedAtomEx;
10586
        	        	        }
10587
10588
10589
        	        	        {
10590
60
        	        	             if(PARSER_STATE->isDeclared(name, SYM_SORT)) {
10591
        	        	                      // error: cannot be both sort and constant
10592
        	        	                      PARSER_STATE->parseError("Symbol `" + name + "' previously declared as a sort");
10593
        	        	                      cmd = new EmptyCommand("compatible redeclaration of sort " + name);
10594
60
        	        	                    } else if(PARSER_STATE->isDeclared(name, SYM_VARIABLE)) {
10595
        	        	                      if(type == PARSER_STATE->getVariable(name).getSort()) {
10596
        	        	                        // duplicate declaration is fine, they're compatible
10597
        	        	                        cmd = new EmptyCommand("compatible redeclaration of constant " + name);
10598
        	        	                      } else {
10599
        	        	                        // error: sorts incompatible
10600
        	        	                        PARSER_STATE->parseError("Symbol `" + name + "' declared previously with a different sort");
10601
        	        	                      }
10602
        	        	                    } else {
10603
        	        	                      // as yet, it's undeclared
10604
120
        	        	                      cvc5::api::Term aexpr = PARSER_STATE->bindVar(name, type);
10605
60
        	        	                      cmd = new DeclareFunctionCommand(name, aexpr, type);
10606
        	        	                    }
10607
10608
        	        	        }
10609
10610
10611
        	        	    }
10612
60
        	        	    break;
10613
10614
        	            }
10615
        	        }
10616
10617
        	    }
10618
69
        	    break;
10619
10620
            }
10621
        }
10622
    }
10623
10624
    // This is where rules clean up and exit
10625
    //
10626
138
    goto ruletffTypedAtomEx; /* Prevent compiler warnings */
10627
138
    ruletffTypedAtomEx: ;
10628
10629
138
            if (HASEXCEPTION())
10630
            {
10631
                PREPORTERROR();
10632
                PRECOVER();
10633
            }
10634
276
    return ;
10635
}
10636
/* $ANTLR end tffTypedAtom */
10637
10638
/**
10639
 * $ANTLR start tffLogicFormula
10640
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1341:1: tffLogicFormula[cvc5::api::Term& expr] : tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )? ;
10641
 */
10642
static void
10643
320
tffLogicFormula(pTptpParser ctx, cvc5::api::Term& expr)
10644
{
10645
10646
      tptp::NonAssoc na;
10647
640
      std::vector< cvc5::api::Term > args;
10648
640
      cvc5::api::Term expr2;
10649
10650
    /* Initialize rule variables
10651
     */
10652
10653
    {
10654
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1347:3: ( tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )? )
10655
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1347:5: tffUnitaryFormula[expr] ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )?
10656
        {
10657
320
            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3255);
10658
320
            tffUnitaryFormula(ctx, expr);
10659
10660
320
            FOLLOWPOP();
10661
320
            if  (HASEXCEPTION())
10662
            {
10663
                goto ruletffLogicFormulaEx;
10664
            }
10665
10666
10667
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1348:5: ( ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] ) | ( ( AND_TOK tffUnitaryFormula[expr] )+ ) | ( ( OR_TOK tffUnitaryFormula[expr] )+ ) )?
10668
            {
10669
320
                int alt66=4;
10670
320
                switch ( LA(1) )
10671
                {
10672
18
                    case IFF_TOK:
10673
                    case IMPLIES_TOK:
10674
                    case REVAND_TOK:
10675
                    case REVIFF_TOK:
10676
                    case REVIMPLIES_TOK:
10677
                    case REVOR_TOK:
10678
                    	{
10679
18
                    		alt66=1;
10680
                    	}
10681
18
                        break;
10682
7
                    case AND_TOK:
10683
                    	{
10684
7
                    		alt66=2;
10685
                    	}
10686
7
                        break;
10687
10
                    case OR_TOK:
10688
                    	{
10689
10
                    		alt66=3;
10690
                    	}
10691
10
                        break;
10692
                }
10693
10694
320
                switch (alt66)
10695
                {
10696
18
            	case 1:
10697
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1349:7: ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] )
10698
            	    {
10699
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1349:7: ( fofBinaryNonAssoc[na] tffUnitaryFormula[expr2] )
10700
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1349:9: fofBinaryNonAssoc[na] tffUnitaryFormula[expr2]
10701
            	        {
10702
18
            	            FOLLOWPUSH(FOLLOW_fofBinaryNonAssoc_in_tffLogicFormula3273);
10703
18
            	            fofBinaryNonAssoc(ctx, na);
10704
10705
18
            	            FOLLOWPOP();
10706
18
            	            if  (HASEXCEPTION())
10707
            	            {
10708
            	                goto ruletffLogicFormulaEx;
10709
            	            }
10710
10711
10712
18
            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3276);
10713
18
            	            tffUnitaryFormula(ctx, expr2);
10714
10715
18
            	            FOLLOWPOP();
10716
18
            	            if  (HASEXCEPTION())
10717
            	            {
10718
            	                goto ruletffLogicFormulaEx;
10719
            	            }
10720
10721
10722
            	            {
10723
18
            	                 switch(na) {
10724
1
            	                           case tptp::NA_IFF:
10725
1
            	                             expr = MK_TERM(api::EQUAL,expr,expr2);
10726
1
            	                             break;
10727
1
            	                           case tptp::NA_REVIFF:
10728
1
            	                             expr = MK_TERM(api::XOR,expr,expr2);
10729
1
            	                             break;
10730
13
            	                           case tptp::NA_IMPLIES:
10731
13
            	                             expr = MK_TERM(api::IMPLIES,expr,expr2);
10732
13
            	                             break;
10733
1
            	                           case tptp::NA_REVIMPLIES:
10734
1
            	                             expr = MK_TERM(api::IMPLIES,expr2,expr);
10735
1
            	                             break;
10736
1
            	                           case tptp::NA_REVOR:
10737
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::OR,expr,expr2));
10738
1
            	                             break;
10739
1
            	                           case tptp::NA_REVAND:
10740
1
            	                             expr = MK_TERM(api::NOT,MK_TERM(api::AND,expr,expr2));
10741
1
            	                             break;
10742
            	                          }
10743
10744
            	            }
10745
10746
10747
            	        }
10748
10749
10750
            	    }
10751
18
            	    break;
10752
7
            	case 2:
10753
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1373:7: ( ( AND_TOK tffUnitaryFormula[expr] )+ )
10754
            	    {
10755
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1373:7: ( ( AND_TOK tffUnitaryFormula[expr] )+ )
10756
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1373:9: ( AND_TOK tffUnitaryFormula[expr] )+
10757
            	        {
10758
            	            {
10759
7
            	                 args.push_back(expr);
10760
            	            }
10761
10762
10763
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1374:9: ( AND_TOK tffUnitaryFormula[expr] )+
10764
            	            {
10765
7
            	                int cnt64=0;
10766
10767
            	                for (;;)
10768
            	                {
10769
15
            	                    int alt64=2;
10770
15
            	            	switch ( LA(1) )
10771
            	            	{
10772
8
            	            	case AND_TOK:
10773
            	            		{
10774
8
            	            			alt64=1;
10775
            	            		}
10776
8
            	            	    break;
10777
10778
            	            	}
10779
10780
15
            	            	switch (alt64)
10781
            	            	{
10782
8
            	            	    case 1:
10783
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1374:11: AND_TOK tffUnitaryFormula[expr]
10784
            	            	        {
10785
8
            	            	             MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_tffLogicFormula3324);
10786
8
            	            	            if  (HASEXCEPTION())
10787
            	            	            {
10788
            	            	                goto ruletffLogicFormulaEx;
10789
            	            	            }
10790
10791
10792
8
            	            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3326);
10793
8
            	            	            tffUnitaryFormula(ctx, expr);
10794
10795
8
            	            	            FOLLOWPOP();
10796
8
            	            	            if  (HASEXCEPTION())
10797
            	            	            {
10798
            	            	                goto ruletffLogicFormulaEx;
10799
            	            	            }
10800
10801
10802
            	            	            {
10803
8
            	            	                 args.push_back(expr);
10804
            	            	            }
10805
10806
10807
            	            	        }
10808
8
            	            	        break;
10809
10810
7
            	            	    default:
10811
10812
7
            	            		if ( cnt64 >= 1 )
10813
            	            		{
10814
7
            	            		    goto loop64;
10815
            	            		}
10816
            	            		/* mismatchedSetEx()
10817
            	            		 */
10818
            	            		CONSTRUCTEX();
10819
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
10820
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
10821
10822
10823
            	            		goto ruletffLogicFormulaEx;
10824
            	            	}
10825
8
            	            	cnt64++;
10826
8
            	                }
10827
7
            	                loop64: ;	/* Jump to here if this rule does not match */
10828
            	            }
10829
10830
            	            {
10831
7
            	                 expr = MK_TERM(api::AND,args);
10832
            	            }
10833
10834
10835
            	        }
10836
10837
10838
            	    }
10839
7
            	    break;
10840
10
            	case 3:
10841
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1378:7: ( ( OR_TOK tffUnitaryFormula[expr] )+ )
10842
            	    {
10843
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1378:7: ( ( OR_TOK tffUnitaryFormula[expr] )+ )
10844
            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1378:9: ( OR_TOK tffUnitaryFormula[expr] )+
10845
            	        {
10846
            	            {
10847
10
            	                 args.push_back(expr);
10848
            	            }
10849
10850
10851
            	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1379:9: ( OR_TOK tffUnitaryFormula[expr] )+
10852
            	            {
10853
10
            	                int cnt65=0;
10854
10855
            	                for (;;)
10856
            	                {
10857
30
            	                    int alt65=2;
10858
30
            	            	switch ( LA(1) )
10859
            	            	{
10860
20
            	            	case OR_TOK:
10861
            	            		{
10862
20
            	            			alt65=1;
10863
            	            		}
10864
20
            	            	    break;
10865
10866
            	            	}
10867
10868
30
            	            	switch (alt65)
10869
            	            	{
10870
20
            	            	    case 1:
10871
            	            	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1379:11: OR_TOK tffUnitaryFormula[expr]
10872
            	            	        {
10873
20
            	            	             MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_tffLogicFormula3379);
10874
20
            	            	            if  (HASEXCEPTION())
10875
            	            	            {
10876
            	            	                goto ruletffLogicFormulaEx;
10877
            	            	            }
10878
10879
10880
20
            	            	            FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLogicFormula3381);
10881
20
            	            	            tffUnitaryFormula(ctx, expr);
10882
10883
20
            	            	            FOLLOWPOP();
10884
20
            	            	            if  (HASEXCEPTION())
10885
            	            	            {
10886
            	            	                goto ruletffLogicFormulaEx;
10887
            	            	            }
10888
10889
10890
            	            	            {
10891
20
            	            	                 args.push_back(expr);
10892
            	            	            }
10893
10894
10895
            	            	        }
10896
20
            	            	        break;
10897
10898
10
            	            	    default:
10899
10900
10
            	            		if ( cnt65 >= 1 )
10901
            	            		{
10902
10
            	            		    goto loop65;
10903
            	            		}
10904
            	            		/* mismatchedSetEx()
10905
            	            		 */
10906
            	            		CONSTRUCTEX();
10907
            	            		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
10908
            	            		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
10909
10910
10911
            	            		goto ruletffLogicFormulaEx;
10912
            	            	}
10913
20
            	            	cnt65++;
10914
20
            	                }
10915
10
            	                loop65: ;	/* Jump to here if this rule does not match */
10916
            	            }
10917
10918
            	            {
10919
10
            	                 expr = MK_TERM(api::OR,args);
10920
            	            }
10921
10922
10923
            	        }
10924
10925
10926
            	    }
10927
10
            	    break;
10928
10929
                }
10930
            }
10931
10932
        }
10933
10934
    }
10935
10936
    // This is where rules clean up and exit
10937
    //
10938
320
    goto ruletffLogicFormulaEx; /* Prevent compiler warnings */
10939
320
    ruletffLogicFormulaEx: ;
10940
10941
320
            if (HASEXCEPTION())
10942
            {
10943
                PREPORTERROR();
10944
                PRECOVER();
10945
            }
10946
640
    return ;
10947
}
10948
/* $ANTLR end tffLogicFormula */
10949
10950
/**
10951
 * $ANTLR start tffUnitaryFormula
10952
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1385: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 );
10953
 */
10954
static void
10955
442
tffUnitaryFormula(pTptpParser ctx, cvc5::api::Term& expr)
10956
{
10957
10958
      api::Kind kind;
10959
884
      std::vector< cvc5::api::Term > bv;
10960
884
      cvc5::api::Term lhs, rhs;
10961
10962
    /* Initialize rule variables
10963
     */
10964
10965
    {
10966
        {
10967
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1391: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 )
10968
10969
            ANTLR3_UINT32 alt68;
10970
10971
442
            alt68=7;
10972
10973
442
            switch ( LA(1) )
10974
            {
10975
195
            case AND_TOK:
10976
            case CNF_TOK:
10977
            case DISTINCT_OBJECT:
10978
            case FALSE_TOK:
10979
            case FOF_TOK:
10980
            case IMPLIES_TOK:
10981
            case INCLUDE_TOK:
10982
            case LOWER_WORD:
10983
            case LOWER_WORD_SINGLE_QUOTED:
10984
            case NUMBER:
10985
            case OR_TOK:
10986
            case SINGLE_QUOTED:
10987
            case TFF_TOK:
10988
            case THF_TOK:
10989
            case TRUE_TOK:
10990
            case TYPE_TOK:
10991
            case UPPER_WORD:
10992
            case 63:
10993
            case 64:
10994
            case 65:
10995
            case 66:
10996
            case 67:
10997
            case 68:
10998
            case 69:
10999
            case 70:
11000
            case 72:
11001
            case 73:
11002
            case 74:
11003
            case 76:
11004
            case 78:
11005
            case 79:
11006
            case 80:
11007
            case 81:
11008
            case 82:
11009
            case 83:
11010
            case 84:
11011
            case 85:
11012
            case 86:
11013
            case 87:
11014
            case 88:
11015
            case 90:
11016
            case 91:
11017
            case 92:
11018
            case 93:
11019
            case 94:
11020
            	{
11021
195
            		alt68=1;
11022
            	}
11023
195
                break;
11024
170
            case LPAREN_TOK:
11025
            	{
11026
170
            		alt68=2;
11027
            	}
11028
170
                break;
11029
10
            case NOT_TOK:
11030
            	{
11031
10
            		alt68=3;
11032
            	}
11033
10
                break;
11034
64
            case EXISTS_TOK:
11035
            case FORALL_TOK:
11036
            	{
11037
64
            		alt68=4;
11038
            	}
11039
64
                break;
11040
2
            case 71:
11041
            	{
11042
2
            		alt68=5;
11043
            	}
11044
2
                break;
11045
            case 77:
11046
            	{
11047
            		alt68=6;
11048
            	}
11049
                break;
11050
1
            case 75:
11051
            	{
11052
1
            		alt68=7;
11053
            	}
11054
1
                break;
11055
11056
            default:
11057
                CONSTRUCTEX();
11058
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11059
                EXCEPTION->message      = (void *)"";
11060
                EXCEPTION->decisionNum  = 68;
11061
                EXCEPTION->state        = 0;
11062
11063
11064
                goto ruletffUnitaryFormulaEx;
11065
11066
            }
11067
11068
442
            switch (alt68)
11069
            {
11070
195
        	case 1:
11071
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1391:5: atomicFormula[expr]
11072
        	    {
11073
195
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_tffUnitaryFormula3431);
11074
195
        	        atomicFormula(ctx, expr);
11075
11076
195
        	        FOLLOWPOP();
11077
195
        	        if  (HASEXCEPTION())
11078
        	        {
11079
        	            goto ruletffUnitaryFormulaEx;
11080
        	        }
11081
11082
11083
        	    }
11084
195
        	    break;
11085
170
        	case 2:
11086
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1392:5: LPAREN_TOK tffLogicFormula[expr] RPAREN_TOK
11087
        	    {
11088
170
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3438);
11089
170
        	        if  (HASEXCEPTION())
11090
        	        {
11091
        	            goto ruletffUnitaryFormulaEx;
11092
        	        }
11093
11094
11095
170
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3440);
11096
170
        	        tffLogicFormula(ctx, expr);
11097
11098
170
        	        FOLLOWPOP();
11099
170
        	        if  (HASEXCEPTION())
11100
        	        {
11101
        	            goto ruletffUnitaryFormulaEx;
11102
        	        }
11103
11104
11105
170
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3443);
11106
170
        	        if  (HASEXCEPTION())
11107
        	        {
11108
        	            goto ruletffUnitaryFormulaEx;
11109
        	        }
11110
11111
11112
        	    }
11113
170
        	    break;
11114
10
        	case 3:
11115
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1393:5: NOT_TOK tffUnitaryFormula[expr]
11116
        	    {
11117
10
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_tffUnitaryFormula3449);
11118
10
        	        if  (HASEXCEPTION())
11119
        	        {
11120
        	            goto ruletffUnitaryFormulaEx;
11121
        	        }
11122
11123
11124
10
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3451);
11125
10
        	        tffUnitaryFormula(ctx, expr);
11126
11127
10
        	        FOLLOWPOP();
11128
10
        	        if  (HASEXCEPTION())
11129
        	        {
11130
        	            goto ruletffUnitaryFormulaEx;
11131
        	        }
11132
11133
11134
        	        {
11135
10
        	             expr = MK_TERM(api::NOT,expr);
11136
        	        }
11137
11138
11139
        	    }
11140
10
        	    break;
11141
64
        	case 4:
11142
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1395:5: folQuantifier[kind] LBRACK_TOK ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* ) RBRACK_TOK COLON_TOK tffUnitaryFormula[expr]
11143
        	    {
11144
64
        	        FOLLOWPUSH(FOLLOW_folQuantifier_in_tffUnitaryFormula3465);
11145
64
        	        folQuantifier(ctx, kind);
11146
11147
64
        	        FOLLOWPOP();
11148
64
        	        if  (HASEXCEPTION())
11149
        	        {
11150
        	            goto ruletffUnitaryFormulaEx;
11151
        	        }
11152
11153
11154
64
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffUnitaryFormula3468);
11155
64
        	        if  (HASEXCEPTION())
11156
        	        {
11157
        	            goto ruletffUnitaryFormulaEx;
11158
        	        }
11159
11160
11161
        	        {
11162
64
        	            PARSER_STATE->pushScope();
11163
        	        }
11164
11165
11166
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1396:5: ( tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )* )
11167
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1396:7: tffbindvariable[expr] ( COMMA_TOK tffbindvariable[expr] )*
11168
        	        {
11169
64
        	            FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffUnitaryFormula3478);
11170
64
        	            tffbindvariable(ctx, expr);
11171
11172
64
        	            FOLLOWPOP();
11173
64
        	            if  (HASEXCEPTION())
11174
        	            {
11175
        	                goto ruletffUnitaryFormulaEx;
11176
        	            }
11177
11178
11179
        	            {
11180
64
        	                 bv.push_back(expr);
11181
        	            }
11182
11183
11184
        	            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1397:7: ( COMMA_TOK tffbindvariable[expr] )*
11185
11186
        	            for (;;)
11187
        	            {
11188
78
        	                int alt67=2;
11189
78
        	                switch ( LA(1) )
11190
        	                {
11191
14
        	                case COMMA_TOK:
11192
        	                	{
11193
14
        	                		alt67=1;
11194
        	                	}
11195
14
        	                    break;
11196
11197
        	                }
11198
11199
78
        	                switch (alt67)
11200
        	                {
11201
14
        	            	case 1:
11202
        	            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1397:9: COMMA_TOK tffbindvariable[expr]
11203
        	            	    {
11204
14
        	            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3491);
11205
14
        	            	        if  (HASEXCEPTION())
11206
        	            	        {
11207
        	            	            goto ruletffUnitaryFormulaEx;
11208
        	            	        }
11209
11210
11211
14
        	            	        FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffUnitaryFormula3493);
11212
14
        	            	        tffbindvariable(ctx, expr);
11213
11214
14
        	            	        FOLLOWPOP();
11215
14
        	            	        if  (HASEXCEPTION())
11216
        	            	        {
11217
        	            	            goto ruletffUnitaryFormulaEx;
11218
        	            	        }
11219
11220
11221
        	            	        {
11222
14
        	            	             bv.push_back(expr);
11223
        	            	        }
11224
11225
11226
        	            	    }
11227
14
        	            	    break;
11228
11229
64
        	            	default:
11230
64
        	            	    goto loop67;	/* break out of the loop */
11231
        	            	    break;
11232
        	                }
11233
14
        	            }
11234
64
        	            loop67: ; /* Jump out to here if this rule does not match */
11235
11236
11237
        	        }
11238
11239
11240
64
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffUnitaryFormula3503);
11241
64
        	        if  (HASEXCEPTION())
11242
        	        {
11243
        	            goto ruletffUnitaryFormulaEx;
11244
        	        }
11245
11246
11247
64
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffUnitaryFormula3509);
11248
64
        	        if  (HASEXCEPTION())
11249
        	        {
11250
        	            goto ruletffUnitaryFormulaEx;
11251
        	        }
11252
11253
11254
64
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffUnitaryFormula3511);
11255
64
        	        tffUnitaryFormula(ctx, expr);
11256
11257
64
        	        FOLLOWPOP();
11258
64
        	        if  (HASEXCEPTION())
11259
        	        {
11260
        	            goto ruletffUnitaryFormulaEx;
11261
        	        }
11262
11263
11264
        	        {
11265
64
        	             PARSER_STATE->popScope();
11266
64
        	                  expr = MK_TERM(kind, MK_TERM(api::BOUND_VAR_LIST, bv), expr);
11267
11268
        	        }
11269
11270
11271
        	    }
11272
64
        	    break;
11273
2
        	case 5:
11274
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1402:5: '$ite_f' LPAREN_TOK tffLogicFormula[expr] COMMA_TOK tffLogicFormula[lhs] COMMA_TOK tffLogicFormula[rhs] RPAREN_TOK
11275
        	    {
11276
2
        	         MATCHT(71, &FOLLOW_71_in_tffUnitaryFormula3524);
11277
2
        	        if  (HASEXCEPTION())
11278
        	        {
11279
        	            goto ruletffUnitaryFormulaEx;
11280
        	        }
11281
11282
11283
2
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3526);
11284
2
        	        if  (HASEXCEPTION())
11285
        	        {
11286
        	            goto ruletffUnitaryFormulaEx;
11287
        	        }
11288
11289
11290
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3528);
11291
2
        	        tffLogicFormula(ctx, expr);
11292
11293
2
        	        FOLLOWPOP();
11294
2
        	        if  (HASEXCEPTION())
11295
        	        {
11296
        	            goto ruletffUnitaryFormulaEx;
11297
        	        }
11298
11299
11300
2
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3531);
11301
2
        	        if  (HASEXCEPTION())
11302
        	        {
11303
        	            goto ruletffUnitaryFormulaEx;
11304
        	        }
11305
11306
11307
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3533);
11308
2
        	        tffLogicFormula(ctx, lhs);
11309
11310
2
        	        FOLLOWPOP();
11311
2
        	        if  (HASEXCEPTION())
11312
        	        {
11313
        	            goto ruletffUnitaryFormulaEx;
11314
        	        }
11315
11316
11317
2
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3536);
11318
2
        	        if  (HASEXCEPTION())
11319
        	        {
11320
        	            goto ruletffUnitaryFormulaEx;
11321
        	        }
11322
11323
11324
2
        	        FOLLOWPUSH(FOLLOW_tffLogicFormula_in_tffUnitaryFormula3538);
11325
2
        	        tffLogicFormula(ctx, rhs);
11326
11327
2
        	        FOLLOWPOP();
11328
2
        	        if  (HASEXCEPTION())
11329
        	        {
11330
        	            goto ruletffUnitaryFormulaEx;
11331
        	        }
11332
11333
11334
2
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3541);
11335
2
        	        if  (HASEXCEPTION())
11336
        	        {
11337
        	            goto ruletffUnitaryFormulaEx;
11338
        	        }
11339
11340
11341
        	        {
11342
2
        	             expr = MK_TERM(api::ITE, expr, lhs, rhs);
11343
        	        }
11344
11345
11346
        	    }
11347
2
        	    break;
11348
        	case 6:
11349
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1404:5: '$let_tf' LPAREN_TOK tffLetTermDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK
11350
        	    {
11351
        	         MATCHT(77, &FOLLOW_77_in_tffUnitaryFormula3553);
11352
        	        if  (HASEXCEPTION())
11353
        	        {
11354
        	            goto ruletffUnitaryFormulaEx;
11355
        	        }
11356
11357
11358
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3555);
11359
        	        if  (HASEXCEPTION())
11360
        	        {
11361
        	            goto ruletffUnitaryFormulaEx;
11362
        	        }
11363
11364
11365
        	        {
11366
        	             PARSER_STATE->pushScope();
11367
        	        }
11368
11369
11370
        	        FOLLOWPUSH(FOLLOW_tffLetTermDefn_in_tffUnitaryFormula3563);
11371
        	        tffLetTermDefn(ctx, lhs, rhs);
11372
11373
        	        FOLLOWPOP();
11374
        	        if  (HASEXCEPTION())
11375
        	        {
11376
        	            goto ruletffUnitaryFormulaEx;
11377
        	        }
11378
11379
11380
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3566);
11381
        	        if  (HASEXCEPTION())
11382
        	        {
11383
        	            goto ruletffUnitaryFormulaEx;
11384
        	        }
11385
11386
11387
        	        FOLLOWPUSH(FOLLOW_tffFormula_in_tffUnitaryFormula3572);
11388
        	        tffFormula(ctx, expr);
11389
11390
        	        FOLLOWPOP();
11391
        	        if  (HASEXCEPTION())
11392
        	        {
11393
        	            goto ruletffUnitaryFormulaEx;
11394
        	        }
11395
11396
11397
        	        {
11398
        	             PARSER_STATE->popScope();
11399
        	                  expr = expr.substitute(lhs, rhs);
11400
11401
        	        }
11402
11403
11404
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3585);
11405
        	        if  (HASEXCEPTION())
11406
        	        {
11407
        	            goto ruletffUnitaryFormulaEx;
11408
        	        }
11409
11410
11411
        	    }
11412
        	    break;
11413
1
        	case 7:
11414
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1411:5: '$let_ff' LPAREN_TOK tffLetFormulaDefn[lhs, rhs] COMMA_TOK tffFormula[expr] RPAREN_TOK
11415
        	    {
11416
1
        	         MATCHT(75, &FOLLOW_75_in_tffUnitaryFormula3591);
11417
1
        	        if  (HASEXCEPTION())
11418
        	        {
11419
        	            goto ruletffUnitaryFormulaEx;
11420
        	        }
11421
11422
11423
1
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffUnitaryFormula3593);
11424
1
        	        if  (HASEXCEPTION())
11425
        	        {
11426
        	            goto ruletffUnitaryFormulaEx;
11427
        	        }
11428
11429
11430
        	        {
11431
1
        	             PARSER_STATE->pushScope();
11432
        	        }
11433
11434
11435
1
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaDefn_in_tffUnitaryFormula3601);
11436
1
        	        tffLetFormulaDefn(ctx, lhs, rhs);
11437
11438
1
        	        FOLLOWPOP();
11439
1
        	        if  (HASEXCEPTION())
11440
        	        {
11441
        	            goto ruletffUnitaryFormulaEx;
11442
        	        }
11443
11444
11445
1
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffUnitaryFormula3604);
11446
1
        	        if  (HASEXCEPTION())
11447
        	        {
11448
        	            goto ruletffUnitaryFormulaEx;
11449
        	        }
11450
11451
11452
1
        	        FOLLOWPUSH(FOLLOW_tffFormula_in_tffUnitaryFormula3610);
11453
1
        	        tffFormula(ctx, expr);
11454
11455
1
        	        FOLLOWPOP();
11456
1
        	        if  (HASEXCEPTION())
11457
        	        {
11458
        	            goto ruletffUnitaryFormulaEx;
11459
        	        }
11460
11461
11462
        	        {
11463
1
        	             PARSER_STATE->popScope();
11464
1
        	                  expr = expr.substitute(lhs, rhs);
11465
11466
        	        }
11467
11468
11469
1
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffUnitaryFormula3623);
11470
1
        	        if  (HASEXCEPTION())
11471
        	        {
11472
        	            goto ruletffUnitaryFormulaEx;
11473
        	        }
11474
11475
11476
        	    }
11477
1
        	    break;
11478
11479
            }
11480
        }
11481
    }
11482
11483
    // This is where rules clean up and exit
11484
    //
11485
442
    goto ruletffUnitaryFormulaEx; /* Prevent compiler warnings */
11486
442
    ruletffUnitaryFormulaEx: ;
11487
11488
442
            if (HASEXCEPTION())
11489
            {
11490
                PREPORTERROR();
11491
                PRECOVER();
11492
            }
11493
884
    return ;
11494
}
11495
/* $ANTLR end tffUnitaryFormula */
11496
11497
/**
11498
 * $ANTLR start tffLetTermDefn
11499
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1420:1: tffLetTermDefn[cvc5::api::Term& lhs, cvc5::api::Term& rhs] : ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs] ;
11500
 */
11501
static void
11502
1
tffLetTermDefn(pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11503
{
11504
11505
2
      std::vector<cvc5::api::Term> bvlist;
11506
11507
    /* Initialize rule variables
11508
     */
11509
11510
    {
11511
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1424:3: ( ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs] )
11512
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1424:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetTermBinding[bvlist, lhs, rhs]
11513
        {
11514
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1424:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )*
11515
11516
            for (;;)
11517
            {
11518
2
                int alt69=2;
11519
2
                switch ( LA(1) )
11520
                {
11521
1
                case FORALL_TOK:
11522
                	{
11523
1
                		alt69=1;
11524
                	}
11525
1
                    break;
11526
11527
                }
11528
11529
2
                switch (alt69)
11530
                {
11531
1
            	case 1:
11532
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1424:6: FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK
11533
            	    {
11534
1
            	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_tffLetTermDefn3643);
11535
1
            	        if  (HASEXCEPTION())
11536
            	        {
11537
            	            goto ruletffLetTermDefnEx;
11538
            	        }
11539
11540
11541
1
            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffLetTermDefn3645);
11542
1
            	        if  (HASEXCEPTION())
11543
            	        {
11544
            	            goto ruletffLetTermDefnEx;
11545
            	        }
11546
11547
11548
1
            	        FOLLOWPUSH(FOLLOW_tffVariableList_in_tffLetTermDefn3647);
11549
1
            	        tffVariableList(ctx, bvlist);
11550
11551
1
            	        FOLLOWPOP();
11552
1
            	        if  (HASEXCEPTION())
11553
            	        {
11554
            	            goto ruletffLetTermDefnEx;
11555
            	        }
11556
11557
11558
1
            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffLetTermDefn3650);
11559
1
            	        if  (HASEXCEPTION())
11560
            	        {
11561
            	            goto ruletffLetTermDefnEx;
11562
            	        }
11563
11564
11565
1
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffLetTermDefn3652);
11566
1
            	        if  (HASEXCEPTION())
11567
            	        {
11568
            	            goto ruletffLetTermDefnEx;
11569
            	        }
11570
11571
11572
            	    }
11573
1
            	    break;
11574
11575
1
            	default:
11576
1
            	    goto loop69;	/* break out of the loop */
11577
            	    break;
11578
                }
11579
1
            }
11580
1
            loop69: ; /* Jump out to here if this rule does not match */
11581
11582
11583
1
            FOLLOWPUSH(FOLLOW_tffLetTermBinding_in_tffLetTermDefn3660);
11584
1
            tffLetTermBinding(ctx, bvlist, lhs, rhs);
11585
11586
1
            FOLLOWPOP();
11587
1
            if  (HASEXCEPTION())
11588
            {
11589
                goto ruletffLetTermDefnEx;
11590
            }
11591
11592
11593
        }
11594
11595
    }
11596
11597
    // This is where rules clean up and exit
11598
    //
11599
1
    goto ruletffLetTermDefnEx; /* Prevent compiler warnings */
11600
1
    ruletffLetTermDefnEx: ;
11601
11602
1
            if (HASEXCEPTION())
11603
            {
11604
                PREPORTERROR();
11605
                PRECOVER();
11606
            }
11607
2
    return ;
11608
}
11609
/* $ANTLR end tffLetTermDefn */
11610
11611
/**
11612
 * $ANTLR start tffLetTermBinding
11613
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1428: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 );
11614
 */
11615
static void
11616
1
tffLetTermBinding(pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11617
{
11618
    /* Initialize rule variables
11619
     */
11620
11621
    {
11622
        {
11623
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1431:3: ( term[lhs] EQUAL_TOK term[rhs] | LPAREN_TOK tffLetTermBinding[bvlist, lhs, rhs] RPAREN_TOK )
11624
11625
            ANTLR3_UINT32 alt70;
11626
11627
1
            alt70=2;
11628
11629
1
            switch ( LA(1) )
11630
            {
11631
1
            case CNF_TOK:
11632
            case DISTINCT_OBJECT:
11633
            case FOF_TOK:
11634
            case INCLUDE_TOK:
11635
            case LOWER_WORD:
11636
            case LOWER_WORD_SINGLE_QUOTED:
11637
            case NUMBER:
11638
            case SINGLE_QUOTED:
11639
            case TFF_TOK:
11640
            case THF_TOK:
11641
            case TYPE_TOK:
11642
            case UPPER_WORD:
11643
            case 63:
11644
            case 64:
11645
            case 66:
11646
            case 72:
11647
            case 76:
11648
            case 78:
11649
            case 79:
11650
            case 80:
11651
            case 81:
11652
            case 82:
11653
            case 83:
11654
            case 84:
11655
            case 85:
11656
            case 86:
11657
            case 87:
11658
            case 88:
11659
            case 90:
11660
            case 91:
11661
            case 92:
11662
            case 93:
11663
            case 94:
11664
            	{
11665
1
            		alt70=1;
11666
            	}
11667
1
                break;
11668
            case LPAREN_TOK:
11669
            	{
11670
            		alt70=2;
11671
            	}
11672
                break;
11673
11674
            default:
11675
                CONSTRUCTEX();
11676
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11677
                EXCEPTION->message      = (void *)"";
11678
                EXCEPTION->decisionNum  = 70;
11679
                EXCEPTION->state        = 0;
11680
11681
11682
                goto ruletffLetTermBindingEx;
11683
11684
            }
11685
11686
1
            switch (alt70)
11687
            {
11688
1
        	case 1:
11689
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1431:5: term[lhs] EQUAL_TOK term[rhs]
11690
        	    {
11691
1
        	        FOLLOWPUSH(FOLLOW_term_in_tffLetTermBinding3675);
11692
1
        	        term(ctx, lhs);
11693
11694
1
        	        FOLLOWPOP();
11695
1
        	        if  (HASEXCEPTION())
11696
        	        {
11697
        	            goto ruletffLetTermBindingEx;
11698
        	        }
11699
11700
11701
1
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_tffLetTermBinding3678);
11702
1
        	        if  (HASEXCEPTION())
11703
        	        {
11704
        	            goto ruletffLetTermBindingEx;
11705
        	        }
11706
11707
11708
1
        	        FOLLOWPUSH(FOLLOW_term_in_tffLetTermBinding3680);
11709
1
        	        term(ctx, rhs);
11710
11711
1
        	        FOLLOWPOP();
11712
1
        	        if  (HASEXCEPTION())
11713
        	        {
11714
        	            goto ruletffLetTermBindingEx;
11715
        	        }
11716
11717
11718
        	        {
11719
11720
1
        	                PARSER_STATE->checkLetBinding(bvlist, lhs, rhs, false);
11721
2
        	                std::vector<api::Term> lchildren(++lhs.begin(), lhs.end());
11722
1
        	                rhs = MK_TERM(api::LAMBDA, MK_TERM(api::BOUND_VAR_LIST, lchildren), rhs);
11723
        	                // since lhs is always APPLY_UF (otherwise we'd have had a parser error in
11724
        	                // checkLetBinding) the function to be replaced is always the first
11725
        	                // argument. Note that the way in which lchildren is built above is also
11726
        	                // relying on this.
11727
1
        	                lhs = lhs[0];
11728
11729
1
        	        }
11730
11731
11732
        	    }
11733
1
        	    break;
11734
        	case 2:
11735
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1442:5: LPAREN_TOK tffLetTermBinding[bvlist, lhs, rhs] RPAREN_TOK
11736
        	    {
11737
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffLetTermBinding3691);
11738
        	        if  (HASEXCEPTION())
11739
        	        {
11740
        	            goto ruletffLetTermBindingEx;
11741
        	        }
11742
11743
11744
        	        FOLLOWPUSH(FOLLOW_tffLetTermBinding_in_tffLetTermBinding3693);
11745
        	        tffLetTermBinding(ctx, bvlist, lhs, rhs);
11746
11747
        	        FOLLOWPOP();
11748
        	        if  (HASEXCEPTION())
11749
        	        {
11750
        	            goto ruletffLetTermBindingEx;
11751
        	        }
11752
11753
11754
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffLetTermBinding3696);
11755
        	        if  (HASEXCEPTION())
11756
        	        {
11757
        	            goto ruletffLetTermBindingEx;
11758
        	        }
11759
11760
11761
        	    }
11762
        	    break;
11763
11764
            }
11765
        }
11766
    }
11767
11768
    // This is where rules clean up and exit
11769
    //
11770
1
    goto ruletffLetTermBindingEx; /* Prevent compiler warnings */
11771
1
    ruletffLetTermBindingEx: ;
11772
11773
1
            if (HASEXCEPTION())
11774
            {
11775
                PREPORTERROR();
11776
                PRECOVER();
11777
            }
11778
1
    return ;
11779
}
11780
/* $ANTLR end tffLetTermBinding */
11781
11782
/**
11783
 * $ANTLR start tffLetFormulaDefn
11784
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1445:1: tffLetFormulaDefn[cvc5::api::Term& lhs, cvc5::api::Term& rhs] : ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs] ;
11785
 */
11786
static void
11787
2
tffLetFormulaDefn(pTptpParser ctx, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11788
{
11789
11790
4
      std::vector<cvc5::api::Term> bvlist;
11791
11792
    /* Initialize rule variables
11793
     */
11794
11795
    {
11796
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1449:3: ( ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs] )
11797
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1449:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )* tffLetFormulaBinding[bvlist, lhs, rhs]
11798
        {
11799
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1449:5: ( FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK )*
11800
11801
            for (;;)
11802
            {
11803
5
                int alt71=2;
11804
5
                switch ( LA(1) )
11805
                {
11806
3
                case FORALL_TOK:
11807
                	{
11808
3
                		alt71=1;
11809
                	}
11810
3
                    break;
11811
11812
                }
11813
11814
5
                switch (alt71)
11815
                {
11816
3
            	case 1:
11817
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1449:6: FORALL_TOK LBRACK_TOK tffVariableList[bvlist] RBRACK_TOK COLON_TOK
11818
            	    {
11819
3
            	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_tffLetFormulaDefn3716);
11820
3
            	        if  (HASEXCEPTION())
11821
            	        {
11822
            	            goto ruletffLetFormulaDefnEx;
11823
            	        }
11824
11825
11826
3
            	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_tffLetFormulaDefn3718);
11827
3
            	        if  (HASEXCEPTION())
11828
            	        {
11829
            	            goto ruletffLetFormulaDefnEx;
11830
            	        }
11831
11832
11833
3
            	        FOLLOWPUSH(FOLLOW_tffVariableList_in_tffLetFormulaDefn3720);
11834
3
            	        tffVariableList(ctx, bvlist);
11835
11836
3
            	        FOLLOWPOP();
11837
3
            	        if  (HASEXCEPTION())
11838
            	        {
11839
            	            goto ruletffLetFormulaDefnEx;
11840
            	        }
11841
11842
11843
3
            	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_tffLetFormulaDefn3723);
11844
3
            	        if  (HASEXCEPTION())
11845
            	        {
11846
            	            goto ruletffLetFormulaDefnEx;
11847
            	        }
11848
11849
11850
3
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffLetFormulaDefn3725);
11851
3
            	        if  (HASEXCEPTION())
11852
            	        {
11853
            	            goto ruletffLetFormulaDefnEx;
11854
            	        }
11855
11856
11857
            	    }
11858
3
            	    break;
11859
11860
2
            	default:
11861
2
            	    goto loop71;	/* break out of the loop */
11862
            	    break;
11863
                }
11864
3
            }
11865
2
            loop71: ; /* Jump out to here if this rule does not match */
11866
11867
11868
2
            FOLLOWPUSH(FOLLOW_tffLetFormulaBinding_in_tffLetFormulaDefn3733);
11869
2
            tffLetFormulaBinding(ctx, bvlist, lhs, rhs);
11870
11871
2
            FOLLOWPOP();
11872
2
            if  (HASEXCEPTION())
11873
            {
11874
                goto ruletffLetFormulaDefnEx;
11875
            }
11876
11877
11878
        }
11879
11880
    }
11881
11882
    // This is where rules clean up and exit
11883
    //
11884
2
    goto ruletffLetFormulaDefnEx; /* Prevent compiler warnings */
11885
2
    ruletffLetFormulaDefnEx: ;
11886
11887
2
            if (HASEXCEPTION())
11888
            {
11889
                PREPORTERROR();
11890
                PRECOVER();
11891
            }
11892
4
    return ;
11893
}
11894
/* $ANTLR end tffLetFormulaDefn */
11895
11896
/**
11897
 * $ANTLR start tffLetFormulaBinding
11898
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1453: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 );
11899
 */
11900
static void
11901
4
tffLetFormulaBinding(pTptpParser ctx, std::vector<cvc5::api::Term> & bvlist, cvc5::api::Term& lhs, cvc5::api::Term& rhs)
11902
{
11903
    /* Initialize rule variables
11904
     */
11905
11906
    {
11907
        {
11908
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1457:3: ( atomicFormula[lhs] IFF_TOK tffUnitaryFormula[rhs] | LPAREN_TOK tffLetFormulaBinding[bvlist, lhs, rhs] RPAREN_TOK )
11909
11910
            ANTLR3_UINT32 alt72;
11911
11912
4
            alt72=2;
11913
11914
4
            switch ( LA(1) )
11915
            {
11916
2
            case AND_TOK:
11917
            case CNF_TOK:
11918
            case DISTINCT_OBJECT:
11919
            case FALSE_TOK:
11920
            case FOF_TOK:
11921
            case IMPLIES_TOK:
11922
            case INCLUDE_TOK:
11923
            case LOWER_WORD:
11924
            case LOWER_WORD_SINGLE_QUOTED:
11925
            case NUMBER:
11926
            case OR_TOK:
11927
            case SINGLE_QUOTED:
11928
            case TFF_TOK:
11929
            case THF_TOK:
11930
            case TRUE_TOK:
11931
            case TYPE_TOK:
11932
            case UPPER_WORD:
11933
            case 63:
11934
            case 64:
11935
            case 65:
11936
            case 66:
11937
            case 67:
11938
            case 68:
11939
            case 69:
11940
            case 70:
11941
            case 72:
11942
            case 73:
11943
            case 74:
11944
            case 76:
11945
            case 78:
11946
            case 79:
11947
            case 80:
11948
            case 81:
11949
            case 82:
11950
            case 83:
11951
            case 84:
11952
            case 85:
11953
            case 86:
11954
            case 87:
11955
            case 88:
11956
            case 90:
11957
            case 91:
11958
            case 92:
11959
            case 93:
11960
            case 94:
11961
            	{
11962
2
            		alt72=1;
11963
            	}
11964
2
                break;
11965
2
            case LPAREN_TOK:
11966
            	{
11967
2
            		alt72=2;
11968
            	}
11969
2
                break;
11970
11971
            default:
11972
                CONSTRUCTEX();
11973
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
11974
                EXCEPTION->message      = (void *)"";
11975
                EXCEPTION->decisionNum  = 72;
11976
                EXCEPTION->state        = 0;
11977
11978
11979
                goto ruletffLetFormulaBindingEx;
11980
11981
            }
11982
11983
4
            switch (alt72)
11984
            {
11985
2
        	case 1:
11986
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1457:5: atomicFormula[lhs] IFF_TOK tffUnitaryFormula[rhs]
11987
        	    {
11988
2
        	        FOLLOWPUSH(FOLLOW_atomicFormula_in_tffLetFormulaBinding3749);
11989
2
        	        atomicFormula(ctx, lhs);
11990
11991
2
        	        FOLLOWPOP();
11992
2
        	        if  (HASEXCEPTION())
11993
        	        {
11994
        	            goto ruletffLetFormulaBindingEx;
11995
        	        }
11996
11997
11998
2
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_tffLetFormulaBinding3752);
11999
2
        	        if  (HASEXCEPTION())
12000
        	        {
12001
        	            goto ruletffLetFormulaBindingEx;
12002
        	        }
12003
12004
12005
2
        	        FOLLOWPUSH(FOLLOW_tffUnitaryFormula_in_tffLetFormulaBinding3754);
12006
2
        	        tffUnitaryFormula(ctx, rhs);
12007
12008
2
        	        FOLLOWPOP();
12009
2
        	        if  (HASEXCEPTION())
12010
        	        {
12011
        	            goto ruletffLetFormulaBindingEx;
12012
        	        }
12013
12014
12015
        	        {
12016
12017
2
        	                PARSER_STATE->checkLetBinding(bvlist, lhs, rhs, true);
12018
4
        	                std::vector<api::Term> lchildren(++lhs.begin(), lhs.end());
12019
2
        	                rhs = MK_TERM(api::LAMBDA, MK_TERM(api::BOUND_VAR_LIST, lchildren), rhs);
12020
        	                // since lhs is always APPLY_UF (otherwise we'd have had a parser error in
12021
        	                // checkLetBinding) the function to be replaced is always the first
12022
        	                // argument. Note that the way in which lchildren is built above is also
12023
        	                // relying on this.
12024
2
        	                lhs = lhs[0];
12025
12026
2
        	        }
12027
12028
12029
        	    }
12030
2
        	    break;
12031
2
        	case 2:
12032
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1468:5: LPAREN_TOK tffLetFormulaBinding[bvlist, lhs, rhs] RPAREN_TOK
12033
        	    {
12034
2
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_tffLetFormulaBinding3765);
12035
2
        	        if  (HASEXCEPTION())
12036
        	        {
12037
        	            goto ruletffLetFormulaBindingEx;
12038
        	        }
12039
12040
12041
2
        	        FOLLOWPUSH(FOLLOW_tffLetFormulaBinding_in_tffLetFormulaBinding3767);
12042
2
        	        tffLetFormulaBinding(ctx, bvlist, lhs, rhs);
12043
12044
2
        	        FOLLOWPOP();
12045
2
        	        if  (HASEXCEPTION())
12046
        	        {
12047
        	            goto ruletffLetFormulaBindingEx;
12048
        	        }
12049
12050
12051
2
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_tffLetFormulaBinding3770);
12052
2
        	        if  (HASEXCEPTION())
12053
        	        {
12054
        	            goto ruletffLetFormulaBindingEx;
12055
        	        }
12056
12057
12058
        	    }
12059
2
        	    break;
12060
12061
            }
12062
        }
12063
    }
12064
12065
    // This is where rules clean up and exit
12066
    //
12067
4
    goto ruletffLetFormulaBindingEx; /* Prevent compiler warnings */
12068
4
    ruletffLetFormulaBindingEx: ;
12069
12070
4
            if (HASEXCEPTION())
12071
            {
12072
                PREPORTERROR();
12073
                PRECOVER();
12074
            }
12075
4
    return ;
12076
}
12077
/* $ANTLR end tffLetFormulaBinding */
12078
12079
/**
12080
 * $ANTLR start thfBindVariable
12081
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1471:1: thfBindVariable[cvc5::api::Term& expr] : UPPER_WORD ( COLON_TOK parseThfType[type] )? ;
12082
 */
12083
static void
12084
2582
thfBindVariable(pTptpParser ctx, cvc5::api::Term& expr)
12085
{
12086
12087
5164
      std::string name;
12088
5164
      cvc5::api::Sort type = PARSER_STATE->d_unsorted;
12089
12090
    pANTLR3_COMMON_TOKEN    UPPER_WORD6;
12091
12092
    /* Initialize rule variables
12093
     */
12094
12095
2582
    UPPER_WORD6       = NULL;
12096
12097
    {
12098
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1476:3: ( UPPER_WORD ( COLON_TOK parseThfType[type] )? )
12099
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1476:5: UPPER_WORD ( COLON_TOK parseThfType[type] )?
12100
        {
12101
2582
            UPPER_WORD6 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_thfBindVariable3789);
12102
2582
            if  (HASEXCEPTION())
12103
            {
12104
                goto rulethfBindVariableEx;
12105
            }
12106
12107
12108
            {
12109
2582
                 name = AntlrInput::tokenText(UPPER_WORD6);
12110
            }
12111
12112
12113
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1478:5: ( COLON_TOK parseThfType[type] )?
12114
            {
12115
2582
                int alt73=2;
12116
2582
                switch ( LA(1) )
12117
                {
12118
2582
                    case COLON_TOK:
12119
                    	{
12120
2582
                    		alt73=1;
12121
                    	}
12122
2582
                        break;
12123
                }
12124
12125
2582
                switch (alt73)
12126
                {
12127
2582
            	case 1:
12128
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1478:7: COLON_TOK parseThfType[type]
12129
            	    {
12130
2582
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_thfBindVariable3803);
12131
2582
            	        if  (HASEXCEPTION())
12132
            	        {
12133
            	            goto rulethfBindVariableEx;
12134
            	        }
12135
12136
12137
2582
            	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfBindVariable3805);
12138
2582
            	        parseThfType(ctx, type);
12139
12140
2582
            	        FOLLOWPOP();
12141
2582
            	        if  (HASEXCEPTION())
12142
            	        {
12143
            	            goto rulethfBindVariableEx;
12144
            	        }
12145
12146
12147
            	    }
12148
2582
            	    break;
12149
12150
                }
12151
            }
12152
12153
            {
12154
12155
2582
                      expr = PARSER_STATE->bindBoundVar(name, type);
12156
12157
            }
12158
12159
12160
        }
12161
12162
    }
12163
12164
    // This is where rules clean up and exit
12165
    //
12166
2582
    goto rulethfBindVariableEx; /* Prevent compiler warnings */
12167
2582
    rulethfBindVariableEx: ;
12168
12169
2582
            if (HASEXCEPTION())
12170
            {
12171
                PREPORTERROR();
12172
                PRECOVER();
12173
            }
12174
5164
    return ;
12175
}
12176
/* $ANTLR end thfBindVariable */
12177
12178
/**
12179
 * $ANTLR start tffbindvariable
12180
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1485:1: tffbindvariable[cvc5::api::Term& expr] : UPPER_WORD ( COLON_TOK parseType[type] )? ;
12181
 */
12182
static void
12183
83
tffbindvariable(pTptpParser ctx, cvc5::api::Term& expr)
12184
{
12185
12186
166
      cvc5::api::Sort type = PARSER_STATE->d_unsorted;
12187
12188
    pANTLR3_COMMON_TOKEN    UPPER_WORD7;
12189
12190
    /* Initialize rule variables
12191
     */
12192
12193
83
    UPPER_WORD7       = NULL;
12194
12195
    {
12196
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1489:3: ( UPPER_WORD ( COLON_TOK parseType[type] )? )
12197
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1489:5: UPPER_WORD ( COLON_TOK parseType[type] )?
12198
        {
12199
83
            UPPER_WORD7 = (pANTLR3_COMMON_TOKEN) MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_tffbindvariable3835);
12200
83
            if  (HASEXCEPTION())
12201
            {
12202
                goto ruletffbindvariableEx;
12203
            }
12204
12205
12206
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1490:5: ( COLON_TOK parseType[type] )?
12207
            {
12208
83
                int alt74=2;
12209
83
                switch ( LA(1) )
12210
                {
12211
83
                    case COLON_TOK:
12212
                    	{
12213
83
                    		alt74=1;
12214
                    	}
12215
83
                        break;
12216
                }
12217
12218
83
                switch (alt74)
12219
                {
12220
83
            	case 1:
12221
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1490:7: COLON_TOK parseType[type]
12222
            	    {
12223
83
            	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_tffbindvariable3843);
12224
83
            	        if  (HASEXCEPTION())
12225
            	        {
12226
            	            goto ruletffbindvariableEx;
12227
            	        }
12228
12229
12230
83
            	        FOLLOWPUSH(FOLLOW_parseType_in_tffbindvariable3845);
12231
83
            	        parseType(ctx, type);
12232
12233
83
            	        FOLLOWPOP();
12234
83
            	        if  (HASEXCEPTION())
12235
            	        {
12236
            	            goto ruletffbindvariableEx;
12237
            	        }
12238
12239
12240
            	    }
12241
83
            	    break;
12242
12243
                }
12244
            }
12245
12246
            {
12247
166
                 std::string name = AntlrInput::tokenText(UPPER_WORD7);
12248
83
                      expr = PARSER_STATE->bindBoundVar(name, type);
12249
12250
            }
12251
12252
12253
        }
12254
12255
    }
12256
12257
    // This is where rules clean up and exit
12258
    //
12259
83
    goto ruletffbindvariableEx; /* Prevent compiler warnings */
12260
83
    ruletffbindvariableEx: ;
12261
12262
83
            if (HASEXCEPTION())
12263
            {
12264
                PREPORTERROR();
12265
                PRECOVER();
12266
            }
12267
166
    return ;
12268
}
12269
/* $ANTLR end tffbindvariable */
12270
12271
/**
12272
 * $ANTLR start tffVariableList
12273
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1498:1: tffVariableList[std::vector<cvc5::api::Term>& bvlist] : tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )* ;
12274
 */
12275
static void
12276
4
tffVariableList(pTptpParser ctx, std::vector<cvc5::api::Term>& bvlist)
12277
{
12278
12279
8
      cvc5::api::Term e;
12280
12281
    /* Initialize rule variables
12282
     */
12283
12284
    {
12285
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1502:3: ( tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )* )
12286
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1502:5: tffbindvariable[e] ( COMMA_TOK tffbindvariable[e] )*
12287
        {
12288
4
            FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffVariableList3876);
12289
4
            tffbindvariable(ctx, e);
12290
12291
4
            FOLLOWPOP();
12292
4
            if  (HASEXCEPTION())
12293
            {
12294
                goto ruletffVariableListEx;
12295
            }
12296
12297
12298
            {
12299
4
                 bvlist.push_back(e);
12300
            }
12301
12302
12303
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1503:5: ( COMMA_TOK tffbindvariable[e] )*
12304
12305
            for (;;)
12306
            {
12307
5
                int alt75=2;
12308
5
                switch ( LA(1) )
12309
                {
12310
1
                case COMMA_TOK:
12311
                	{
12312
1
                		alt75=1;
12313
                	}
12314
1
                    break;
12315
12316
                }
12317
12318
5
                switch (alt75)
12319
                {
12320
1
            	case 1:
12321
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1503:7: COMMA_TOK tffbindvariable[e]
12322
            	    {
12323
1
            	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_tffVariableList3887);
12324
1
            	        if  (HASEXCEPTION())
12325
            	        {
12326
            	            goto ruletffVariableListEx;
12327
            	        }
12328
12329
12330
1
            	        FOLLOWPUSH(FOLLOW_tffbindvariable_in_tffVariableList3889);
12331
1
            	        tffbindvariable(ctx, e);
12332
12333
1
            	        FOLLOWPOP();
12334
1
            	        if  (HASEXCEPTION())
12335
            	        {
12336
            	            goto ruletffVariableListEx;
12337
            	        }
12338
12339
12340
            	        {
12341
1
            	             bvlist.push_back(e);
12342
            	        }
12343
12344
12345
            	    }
12346
1
            	    break;
12347
12348
4
            	default:
12349
4
            	    goto loop75;	/* break out of the loop */
12350
            	    break;
12351
                }
12352
1
            }
12353
4
            loop75: ; /* Jump out to here if this rule does not match */
12354
12355
12356
        }
12357
12358
    }
12359
12360
    // This is where rules clean up and exit
12361
    //
12362
4
    goto ruletffVariableListEx; /* Prevent compiler warnings */
12363
4
    ruletffVariableListEx: ;
12364
12365
4
            if (HASEXCEPTION())
12366
            {
12367
                PREPORTERROR();
12368
                PRECOVER();
12369
            }
12370
8
    return ;
12371
}
12372
/* $ANTLR end tffVariableList */
12373
12374
/**
12375
 * $ANTLR start parseThfType
12376
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1506:1: parseThfType[cvc5::api::Sort& type] : thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )* ;
12377
 */
12378
static void
12379
3396
parseThfType(pTptpParser ctx, cvc5::api::Sort& type)
12380
{
12381
12382
6792
      std::vector<cvc5::api::Sort> sorts;
12383
12384
    /* Initialize rule variables
12385
     */
12386
12387
    {
12388
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1511:3: ( thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )* )
12389
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1511:5: thfType[type] ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )*
12390
        {
12391
3396
            FOLLOWPUSH(FOLLOW_thfType_in_parseThfType3915);
12392
3396
            thfType(ctx, type);
12393
12394
3396
            FOLLOWPOP();
12395
3396
            if  (HASEXCEPTION())
12396
            {
12397
                goto ruleparseThfTypeEx;
12398
            }
12399
12400
12401
            {
12402
3396
                 sorts.push_back(type);
12403
            }
12404
12405
12406
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1512:5: ( ( ARROW_TOK | TIMES_TOK ) thfType[type] )*
12407
12408
            for (;;)
12409
            {
12410
5999
                int alt76=2;
12411
5999
                switch ( LA(1) )
12412
                {
12413
2603
                case ARROW_TOK:
12414
                case TIMES_TOK:
12415
                	{
12416
2603
                		alt76=1;
12417
                	}
12418
2603
                    break;
12419
12420
                }
12421
12422
5999
                switch (alt76)
12423
                {
12424
2603
            	case 1:
12425
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1513:6: ( ARROW_TOK | TIMES_TOK ) thfType[type]
12426
            	    {
12427
2603
            	        if ( LA(1) == ARROW_TOK || LA(1) == TIMES_TOK )
12428
            	        {
12429
2603
            	            CONSUME();
12430
2603
            	            PERRORRECOVERY=ANTLR3_FALSE;
12431
            	        }
12432
            	        else
12433
            	        {
12434
            	            CONSTRUCTEX();
12435
            	            EXCEPTION->type         = ANTLR3_MISMATCHED_SET_EXCEPTION;
12436
            	            EXCEPTION->name         = (void *)ANTLR3_MISMATCHED_SET_NAME;
12437
            	            EXCEPTION->expectingSet = NULL;
12438
12439
            	            goto ruleparseThfTypeEx;
12440
            	        }
12441
12442
12443
2603
            	        FOLLOWPUSH(FOLLOW_thfType_in_parseThfType3939);
12444
2603
            	        thfType(ctx, type);
12445
12446
2603
            	        FOLLOWPOP();
12447
2603
            	        if  (HASEXCEPTION())
12448
            	        {
12449
            	            goto ruleparseThfTypeEx;
12450
            	        }
12451
12452
12453
            	        {
12454
2603
            	             sorts.push_back(type);
12455
            	        }
12456
12457
12458
            	    }
12459
2603
            	    break;
12460
12461
3396
            	default:
12462
3396
            	    goto loop76;	/* break out of the loop */
12463
            	    break;
12464
                }
12465
2603
            }
12466
3396
            loop76: ; /* Jump out to here if this rule does not match */
12467
12468
12469
            {
12470
12471
3396
                      if (sorts.size() < 1)
12472
                      {
12473
                        type = sorts[0];
12474
                      }
12475
                      else
12476
                      {
12477
6792
                        api::Sort range = sorts.back();
12478
3396
                        sorts.pop_back();
12479
3396
                        type = PARSER_STATE->mkFlatFunctionType(sorts, range);
12480
                      }
12481
12482
            }
12483
12484
12485
        }
12486
12487
    }
12488
12489
    // This is where rules clean up and exit
12490
    //
12491
3396
    goto ruleparseThfTypeEx; /* Prevent compiler warnings */
12492
3396
    ruleparseThfTypeEx: ;
12493
12494
3396
            if (HASEXCEPTION())
12495
            {
12496
                PREPORTERROR();
12497
                PRECOVER();
12498
            }
12499
6792
    return ;
12500
}
12501
/* $ANTLR end parseThfType */
12502
12503
/**
12504
 * $ANTLR start thfType
12505
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1529:1: thfType[cvc5::api::Sort& type] : ( simpleType[type] | LPAREN_TOK parseThfType[type] RPAREN_TOK | LBRACK_TOK parseThfType[type] RBRACK_TOK );
12506
 */
12507
static void
12508
5999
thfType(pTptpParser ctx, cvc5::api::Sort& type)
12509
{
12510
    /* Initialize rule variables
12511
     */
12512
12513
    {
12514
        {
12515
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1531:3: ( simpleType[type] | LPAREN_TOK parseThfType[type] RPAREN_TOK | LBRACK_TOK parseThfType[type] RBRACK_TOK )
12516
12517
            ANTLR3_UINT32 alt77;
12518
12519
5999
            alt77=3;
12520
12521
5999
            switch ( LA(1) )
12522
            {
12523
5468
            case CNF_TOK:
12524
            case DEFINED_SYMBOL:
12525
            case FOF_TOK:
12526
            case INCLUDE_TOK:
12527
            case LOWER_WORD:
12528
            case LOWER_WORD_SINGLE_QUOTED:
12529
            case SINGLE_QUOTED:
12530
            case TFF_TOK:
12531
            case THF_TOK:
12532
            case TYPE_TOK:
12533
            	{
12534
5468
            		alt77=1;
12535
            	}
12536
5468
                break;
12537
531
            case LPAREN_TOK:
12538
            	{
12539
531
            		alt77=2;
12540
            	}
12541
531
                break;
12542
            case LBRACK_TOK:
12543
            	{
12544
            		alt77=3;
12545
            	}
12546
                break;
12547
12548
            default:
12549
                CONSTRUCTEX();
12550
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12551
                EXCEPTION->message      = (void *)"";
12552
                EXCEPTION->decisionNum  = 77;
12553
                EXCEPTION->state        = 0;
12554
12555
12556
                goto rulethfTypeEx;
12557
12558
            }
12559
12560
5999
            switch (alt77)
12561
            {
12562
5468
        	case 1:
12563
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1531:5: simpleType[type]
12564
        	    {
12565
5468
        	        FOLLOWPUSH(FOLLOW_simpleType_in_thfType3970);
12566
5468
        	        simpleType(ctx, type);
12567
12568
5468
        	        FOLLOWPOP();
12569
5468
        	        if  (HASEXCEPTION())
12570
        	        {
12571
        	            goto rulethfTypeEx;
12572
        	        }
12573
12574
12575
        	    }
12576
5468
        	    break;
12577
531
        	case 2:
12578
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1532:7: LPAREN_TOK parseThfType[type] RPAREN_TOK
12579
        	    {
12580
531
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_thfType3979);
12581
531
        	        if  (HASEXCEPTION())
12582
        	        {
12583
        	            goto rulethfTypeEx;
12584
        	        }
12585
12586
12587
531
        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfType3981);
12588
531
        	        parseThfType(ctx, type);
12589
12590
531
        	        FOLLOWPOP();
12591
531
        	        if  (HASEXCEPTION())
12592
        	        {
12593
        	            goto rulethfTypeEx;
12594
        	        }
12595
12596
12597
531
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_thfType3984);
12598
531
        	        if  (HASEXCEPTION())
12599
        	        {
12600
        	            goto rulethfTypeEx;
12601
        	        }
12602
12603
12604
        	    }
12605
531
        	    break;
12606
        	case 3:
12607
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1533:7: LBRACK_TOK parseThfType[type] RBRACK_TOK
12608
        	    {
12609
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_thfType3992);
12610
        	        if  (HASEXCEPTION())
12611
        	        {
12612
        	            goto rulethfTypeEx;
12613
        	        }
12614
12615
12616
        	        {
12617
        	             UNSUPPORTED("Tuple types");
12618
        	        }
12619
12620
12621
        	        FOLLOWPUSH(FOLLOW_parseThfType_in_thfType3996);
12622
        	        parseThfType(ctx, type);
12623
12624
        	        FOLLOWPOP();
12625
        	        if  (HASEXCEPTION())
12626
        	        {
12627
        	            goto rulethfTypeEx;
12628
        	        }
12629
12630
12631
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_thfType3999);
12632
        	        if  (HASEXCEPTION())
12633
        	        {
12634
        	            goto rulethfTypeEx;
12635
        	        }
12636
12637
12638
        	    }
12639
        	    break;
12640
12641
            }
12642
        }
12643
    }
12644
12645
    // This is where rules clean up and exit
12646
    //
12647
5999
    goto rulethfTypeEx; /* Prevent compiler warnings */
12648
5999
    rulethfTypeEx: ;
12649
12650
5999
            if (HASEXCEPTION())
12651
            {
12652
                PREPORTERROR();
12653
                PRECOVER();
12654
            }
12655
5999
    return ;
12656
}
12657
/* $ANTLR end thfType */
12658
12659
/**
12660
 * $ANTLR start parseType
12661
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1536:1: parseType[cvc5::api::Sort & type] : ( simpleType[type] | ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type] );
12662
 */
12663
static void
12664
143
parseType(pTptpParser ctx, cvc5::api::Sort & type)
12665
{
12666
12667
286
      std::vector<cvc5::api::Sort> v;
12668
12669
    /* Initialize rule variables
12670
     */
12671
12672
    {
12673
        {
12674
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1541:3: ( simpleType[type] | ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type] )
12675
12676
            ANTLR3_UINT32 alt80;
12677
12678
143
            alt80=2;
12679
12680
143
            switch ( LA(1) )
12681
            {
12682
87
            case DEFINED_SYMBOL:
12683
            	{
12684
87
            		switch ( LA(2) )
12685
            		{
12686
77
            		case COMMA_TOK:
12687
            		case RBRACK_TOK:
12688
            		case RPAREN_TOK:
12689
            			{
12690
77
            				alt80=1;
12691
            			}
12692
77
            		    break;
12693
10
            		case ARROW_TOK:
12694
            			{
12695
10
            				alt80=2;
12696
            			}
12697
10
            		    break;
12698
12699
            		default:
12700
            		    CONSTRUCTEX();
12701
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12702
            		    EXCEPTION->message      = (void *)"";
12703
            		    EXCEPTION->decisionNum  = 80;
12704
            		    EXCEPTION->state        = 1;
12705
12706
12707
            		    goto ruleparseTypeEx;
12708
12709
            		}
12710
12711
            	}
12712
87
                break;
12713
            case FOF_TOK:
12714
            	{
12715
            		switch ( LA(2) )
12716
            		{
12717
            		case COMMA_TOK:
12718
            		case RBRACK_TOK:
12719
            		case RPAREN_TOK:
12720
            			{
12721
            				alt80=1;
12722
            			}
12723
            		    break;
12724
            		case ARROW_TOK:
12725
            			{
12726
            				alt80=2;
12727
            			}
12728
            		    break;
12729
12730
            		default:
12731
            		    CONSTRUCTEX();
12732
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12733
            		    EXCEPTION->message      = (void *)"";
12734
            		    EXCEPTION->decisionNum  = 80;
12735
            		    EXCEPTION->state        = 2;
12736
12737
12738
            		    goto ruleparseTypeEx;
12739
12740
            		}
12741
12742
            	}
12743
                break;
12744
            case CNF_TOK:
12745
            	{
12746
            		switch ( LA(2) )
12747
            		{
12748
            		case COMMA_TOK:
12749
            		case RBRACK_TOK:
12750
            		case RPAREN_TOK:
12751
            			{
12752
            				alt80=1;
12753
            			}
12754
            		    break;
12755
            		case ARROW_TOK:
12756
            			{
12757
            				alt80=2;
12758
            			}
12759
            		    break;
12760
12761
            		default:
12762
            		    CONSTRUCTEX();
12763
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12764
            		    EXCEPTION->message      = (void *)"";
12765
            		    EXCEPTION->decisionNum  = 80;
12766
            		    EXCEPTION->state        = 3;
12767
12768
12769
            		    goto ruleparseTypeEx;
12770
12771
            		}
12772
12773
            	}
12774
                break;
12775
            case THF_TOK:
12776
            	{
12777
            		switch ( LA(2) )
12778
            		{
12779
            		case COMMA_TOK:
12780
            		case RBRACK_TOK:
12781
            		case RPAREN_TOK:
12782
            			{
12783
            				alt80=1;
12784
            			}
12785
            		    break;
12786
            		case ARROW_TOK:
12787
            			{
12788
            				alt80=2;
12789
            			}
12790
            		    break;
12791
12792
            		default:
12793
            		    CONSTRUCTEX();
12794
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12795
            		    EXCEPTION->message      = (void *)"";
12796
            		    EXCEPTION->decisionNum  = 80;
12797
            		    EXCEPTION->state        = 4;
12798
12799
12800
            		    goto ruleparseTypeEx;
12801
12802
            		}
12803
12804
            	}
12805
                break;
12806
            case TFF_TOK:
12807
            	{
12808
            		switch ( LA(2) )
12809
            		{
12810
            		case COMMA_TOK:
12811
            		case RBRACK_TOK:
12812
            		case RPAREN_TOK:
12813
            			{
12814
            				alt80=1;
12815
            			}
12816
            		    break;
12817
            		case ARROW_TOK:
12818
            			{
12819
            				alt80=2;
12820
            			}
12821
            		    break;
12822
12823
            		default:
12824
            		    CONSTRUCTEX();
12825
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12826
            		    EXCEPTION->message      = (void *)"";
12827
            		    EXCEPTION->decisionNum  = 80;
12828
            		    EXCEPTION->state        = 5;
12829
12830
12831
            		    goto ruleparseTypeEx;
12832
12833
            		}
12834
12835
            	}
12836
                break;
12837
            case TYPE_TOK:
12838
            	{
12839
            		switch ( LA(2) )
12840
            		{
12841
            		case COMMA_TOK:
12842
            		case RBRACK_TOK:
12843
            		case RPAREN_TOK:
12844
            			{
12845
            				alt80=1;
12846
            			}
12847
            		    break;
12848
            		case ARROW_TOK:
12849
            			{
12850
            				alt80=2;
12851
            			}
12852
            		    break;
12853
12854
            		default:
12855
            		    CONSTRUCTEX();
12856
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12857
            		    EXCEPTION->message      = (void *)"";
12858
            		    EXCEPTION->decisionNum  = 80;
12859
            		    EXCEPTION->state        = 6;
12860
12861
12862
            		    goto ruleparseTypeEx;
12863
12864
            		}
12865
12866
            	}
12867
                break;
12868
            case INCLUDE_TOK:
12869
            	{
12870
            		switch ( LA(2) )
12871
            		{
12872
            		case COMMA_TOK:
12873
            		case RBRACK_TOK:
12874
            		case RPAREN_TOK:
12875
            			{
12876
            				alt80=1;
12877
            			}
12878
            		    break;
12879
            		case ARROW_TOK:
12880
            			{
12881
            				alt80=2;
12882
            			}
12883
            		    break;
12884
12885
            		default:
12886
            		    CONSTRUCTEX();
12887
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12888
            		    EXCEPTION->message      = (void *)"";
12889
            		    EXCEPTION->decisionNum  = 80;
12890
            		    EXCEPTION->state        = 7;
12891
12892
12893
            		    goto ruleparseTypeEx;
12894
12895
            		}
12896
12897
            	}
12898
                break;
12899
40
            case LOWER_WORD:
12900
            	{
12901
40
            		switch ( LA(2) )
12902
            		{
12903
36
            		case COMMA_TOK:
12904
            		case RBRACK_TOK:
12905
            		case RPAREN_TOK:
12906
            			{
12907
36
            				alt80=1;
12908
            			}
12909
36
            		    break;
12910
4
            		case ARROW_TOK:
12911
            			{
12912
4
            				alt80=2;
12913
            			}
12914
4
            		    break;
12915
12916
            		default:
12917
            		    CONSTRUCTEX();
12918
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12919
            		    EXCEPTION->message      = (void *)"";
12920
            		    EXCEPTION->decisionNum  = 80;
12921
            		    EXCEPTION->state        = 8;
12922
12923
12924
            		    goto ruleparseTypeEx;
12925
12926
            		}
12927
12928
            	}
12929
40
                break;
12930
            case LOWER_WORD_SINGLE_QUOTED:
12931
            	{
12932
            		switch ( LA(2) )
12933
            		{
12934
            		case COMMA_TOK:
12935
            		case RBRACK_TOK:
12936
            		case RPAREN_TOK:
12937
            			{
12938
            				alt80=1;
12939
            			}
12940
            		    break;
12941
            		case ARROW_TOK:
12942
            			{
12943
            				alt80=2;
12944
            			}
12945
            		    break;
12946
12947
            		default:
12948
            		    CONSTRUCTEX();
12949
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12950
            		    EXCEPTION->message      = (void *)"";
12951
            		    EXCEPTION->decisionNum  = 80;
12952
            		    EXCEPTION->state        = 9;
12953
12954
12955
            		    goto ruleparseTypeEx;
12956
12957
            		}
12958
12959
            	}
12960
                break;
12961
            case SINGLE_QUOTED:
12962
            	{
12963
            		switch ( LA(2) )
12964
            		{
12965
            		case COMMA_TOK:
12966
            		case RBRACK_TOK:
12967
            		case RPAREN_TOK:
12968
            			{
12969
            				alt80=1;
12970
            			}
12971
            		    break;
12972
            		case ARROW_TOK:
12973
            			{
12974
            				alt80=2;
12975
            			}
12976
            		    break;
12977
12978
            		default:
12979
            		    CONSTRUCTEX();
12980
            		    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
12981
            		    EXCEPTION->message      = (void *)"";
12982
            		    EXCEPTION->decisionNum  = 80;
12983
            		    EXCEPTION->state        = 10;
12984
12985
12986
            		    goto ruleparseTypeEx;
12987
12988
            		}
12989
12990
            	}
12991
                break;
12992
16
            case LPAREN_TOK:
12993
            	{
12994
16
            		alt80=2;
12995
            	}
12996
16
                break;
12997
12998
            default:
12999
                CONSTRUCTEX();
13000
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13001
                EXCEPTION->message      = (void *)"";
13002
                EXCEPTION->decisionNum  = 80;
13003
                EXCEPTION->state        = 0;
13004
13005
13006
                goto ruleparseTypeEx;
13007
13008
            }
13009
13010
143
            switch (alt80)
13011
            {
13012
113
        	case 1:
13013
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1541:5: simpleType[type]
13014
        	    {
13015
113
        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4018);
13016
113
        	        simpleType(ctx, type);
13017
13018
113
        	        FOLLOWPOP();
13019
113
        	        if  (HASEXCEPTION())
13020
        	        {
13021
        	            goto ruleparseTypeEx;
13022
        	        }
13023
13024
13025
        	    }
13026
113
        	    break;
13027
30
        	case 2:
13028
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1542:5: ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK ) ARROW_TOK simpleType[type]
13029
        	    {
13030
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1542:5: ( simpleType[type] | LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK )
13031
        	        {
13032
30
        	            int alt79=2;
13033
30
        	            switch ( LA(1) )
13034
        	            {
13035
14
        	            case CNF_TOK:
13036
        	            case DEFINED_SYMBOL:
13037
        	            case FOF_TOK:
13038
        	            case INCLUDE_TOK:
13039
        	            case LOWER_WORD:
13040
        	            case LOWER_WORD_SINGLE_QUOTED:
13041
        	            case SINGLE_QUOTED:
13042
        	            case TFF_TOK:
13043
        	            case THF_TOK:
13044
        	            case TYPE_TOK:
13045
        	            	{
13046
14
        	            		alt79=1;
13047
        	            	}
13048
14
        	                break;
13049
16
        	            case LPAREN_TOK:
13050
        	            	{
13051
16
        	            		alt79=2;
13052
        	            	}
13053
16
        	                break;
13054
13055
        	            default:
13056
        	                CONSTRUCTEX();
13057
        	                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13058
        	                EXCEPTION->message      = (void *)"";
13059
        	                EXCEPTION->decisionNum  = 79;
13060
        	                EXCEPTION->state        = 0;
13061
13062
13063
        	                goto ruleparseTypeEx;
13064
13065
        	            }
13066
13067
30
        	            switch (alt79)
13068
        	            {
13069
14
        	        	case 1:
13070
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1542:7: simpleType[type]
13071
        	        	    {
13072
14
        	        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4027);
13073
14
        	        	        simpleType(ctx, type);
13074
13075
14
        	        	        FOLLOWPOP();
13076
14
        	        	        if  (HASEXCEPTION())
13077
        	        	        {
13078
        	        	            goto ruleparseTypeEx;
13079
        	        	        }
13080
13081
13082
        	        	        {
13083
14
        	        	             v.push_back(type);
13084
        	        	        }
13085
13086
13087
        	        	    }
13088
14
        	        	    break;
13089
16
        	        	case 2:
13090
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1543:7: LPAREN_TOK simpleType[type] ( TIMES_TOK simpleType[type] )+ RPAREN_TOK
13091
        	        	    {
13092
16
        	        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_parseType4038);
13093
16
        	        	        if  (HASEXCEPTION())
13094
        	        	        {
13095
        	        	            goto ruleparseTypeEx;
13096
        	        	        }
13097
13098
13099
16
        	        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4040);
13100
16
        	        	        simpleType(ctx, type);
13101
13102
16
        	        	        FOLLOWPOP();
13103
16
        	        	        if  (HASEXCEPTION())
13104
        	        	        {
13105
        	        	            goto ruleparseTypeEx;
13106
        	        	        }
13107
13108
13109
        	        	        {
13110
16
        	        	             v.push_back(type);
13111
        	        	        }
13112
13113
13114
        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1544:7: ( TIMES_TOK simpleType[type] )+
13115
        	        	        {
13116
16
        	        	            int cnt78=0;
13117
13118
        	        	            for (;;)
13119
        	        	            {
13120
35
        	        	                int alt78=2;
13121
35
        	        	        	switch ( LA(1) )
13122
        	        	        	{
13123
19
        	        	        	case TIMES_TOK:
13124
        	        	        		{
13125
19
        	        	        			alt78=1;
13126
        	        	        		}
13127
19
        	        	        	    break;
13128
13129
        	        	        	}
13130
13131
35
        	        	        	switch (alt78)
13132
        	        	        	{
13133
19
        	        	        	    case 1:
13134
        	        	        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1544:9: TIMES_TOK simpleType[type]
13135
        	        	        	        {
13136
19
        	        	        	             MATCHT(TIMES_TOK, &FOLLOW_TIMES_TOK_in_parseType4053);
13137
19
        	        	        	            if  (HASEXCEPTION())
13138
        	        	        	            {
13139
        	        	        	                goto ruleparseTypeEx;
13140
        	        	        	            }
13141
13142
13143
19
        	        	        	            FOLLOWPUSH(FOLLOW_simpleType_in_parseType4055);
13144
19
        	        	        	            simpleType(ctx, type);
13145
13146
19
        	        	        	            FOLLOWPOP();
13147
19
        	        	        	            if  (HASEXCEPTION())
13148
        	        	        	            {
13149
        	        	        	                goto ruleparseTypeEx;
13150
        	        	        	            }
13151
13152
13153
        	        	        	            {
13154
19
        	        	        	                 v.push_back(type);
13155
        	        	        	            }
13156
13157
13158
        	        	        	        }
13159
19
        	        	        	        break;
13160
13161
16
        	        	        	    default:
13162
13163
16
        	        	        		if ( cnt78 >= 1 )
13164
        	        	        		{
13165
16
        	        	        		    goto loop78;
13166
        	        	        		}
13167
        	        	        		/* mismatchedSetEx()
13168
        	        	        		 */
13169
        	        	        		CONSTRUCTEX();
13170
        	        	        		EXCEPTION->type = ANTLR3_EARLY_EXIT_EXCEPTION;
13171
        	        	        		EXCEPTION->name = (void *)ANTLR3_EARLY_EXIT_NAME;
13172
13173
13174
        	        	        		goto ruleparseTypeEx;
13175
        	        	        	}
13176
19
        	        	        	cnt78++;
13177
19
        	        	            }
13178
16
        	        	            loop78: ;	/* Jump to here if this rule does not match */
13179
        	        	        }
13180
13181
16
        	        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_parseType4069);
13182
16
        	        	        if  (HASEXCEPTION())
13183
        	        	        {
13184
        	        	            goto ruleparseTypeEx;
13185
16
        	        	        }
13186
13187
13188
        	        	    }
13189
16
        	        	    break;
13190
13191
        	            }
13192
        	        }
13193
13194
30
        	         MATCHT(ARROW_TOK, &FOLLOW_ARROW_TOK_in_parseType4081);
13195
30
        	        if  (HASEXCEPTION())
13196
        	        {
13197
        	            goto ruleparseTypeEx;
13198
        	        }
13199
13200
13201
30
        	        FOLLOWPUSH(FOLLOW_simpleType_in_parseType4083);
13202
30
        	        simpleType(ctx, type);
13203
13204
30
        	        FOLLOWPOP();
13205
30
        	        if  (HASEXCEPTION())
13206
        	        {
13207
        	            goto ruleparseTypeEx;
13208
        	        }
13209
13210
13211
        	        {
13212
30
        	             type = SOLVER->mkFunctionSort(v,type);
13213
13214
        	        }
13215
13216
13217
        	    }
13218
30
        	    break;
13219
13220
            }
13221
        }
13222
    }
13223
13224
    // This is where rules clean up and exit
13225
    //
13226
143
    goto ruleparseTypeEx; /* Prevent compiler warnings */
13227
143
    ruleparseTypeEx: ;
13228
13229
143
            if (HASEXCEPTION())
13230
            {
13231
                PREPORTERROR();
13232
                PRECOVER();
13233
            }
13234
286
    return ;
13235
}
13236
/* $ANTLR end parseType */
13237
13238
/**
13239
 * $ANTLR start simpleType
13240
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1553:1: simpleType[cvc5::api::Sort& type] : ( DEFINED_SYMBOL | atomicWord[name] );
13241
 */
13242
static void
13243
5660
simpleType(pTptpParser ctx, cvc5::api::Sort& type)
13244
{
13245
13246
11320
      std::string name;
13247
13248
    pANTLR3_COMMON_TOKEN    DEFINED_SYMBOL8;
13249
13250
    /* Initialize rule variables
13251
     */
13252
13253
5660
    DEFINED_SYMBOL8       = NULL;
13254
13255
    {
13256
        {
13257
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1557:3: ( DEFINED_SYMBOL | atomicWord[name] )
13258
13259
            ANTLR3_UINT32 alt81;
13260
13261
5660
            alt81=2;
13262
13263
5660
            switch ( LA(1) )
13264
            {
13265
2309
            case DEFINED_SYMBOL:
13266
            	{
13267
2309
            		alt81=1;
13268
            	}
13269
2309
                break;
13270
3351
            case CNF_TOK:
13271
            case FOF_TOK:
13272
            case INCLUDE_TOK:
13273
            case LOWER_WORD:
13274
            case LOWER_WORD_SINGLE_QUOTED:
13275
            case SINGLE_QUOTED:
13276
            case TFF_TOK:
13277
            case THF_TOK:
13278
            case TYPE_TOK:
13279
            	{
13280
3351
            		alt81=2;
13281
            	}
13282
3351
                break;
13283
13284
            default:
13285
                CONSTRUCTEX();
13286
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13287
                EXCEPTION->message      = (void *)"";
13288
                EXCEPTION->decisionNum  = 81;
13289
                EXCEPTION->state        = 0;
13290
13291
13292
                goto rulesimpleTypeEx;
13293
13294
            }
13295
13296
5660
            switch (alt81)
13297
            {
13298
2309
        	case 1:
13299
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1557:5: DEFINED_SYMBOL
13300
        	    {
13301
2309
        	        DEFINED_SYMBOL8 = (pANTLR3_COMMON_TOKEN) MATCHT(DEFINED_SYMBOL, &FOLLOW_DEFINED_SYMBOL_in_simpleType4110);
13302
2309
        	        if  (HASEXCEPTION())
13303
        	        {
13304
        	            goto rulesimpleTypeEx;
13305
        	        }
13306
13307
13308
        	        {
13309
4618
        	             std::string s = AntlrInput::tokenText(DEFINED_SYMBOL8);
13310
2309
        	                  if(s == "$i") type = PARSER_STATE->d_unsorted;
13311
2215
        	                  else if(s == "$o") type = SOLVER->getBooleanSort();
13312
33
        	                  else if(s == "$int") type = SOLVER->getIntegerSort();
13313
15
        	                  else if(s == "$rat") type = SOLVER->getRealSort();
13314
8
        	                  else if(s == "$real") type = SOLVER->getRealSort();
13315
        	                  else if(s == "$tType") PARSER_STATE->parseError("Type of types `$tType' cannot be used here");
13316
        	                  else PARSER_STATE->parseError("unknown defined type `" + s + "'");
13317
13318
2309
        	        }
13319
13320
13321
        	    }
13322
2309
        	    break;
13323
3351
        	case 2:
13324
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1567:5: atomicWord[name]
13325
        	    {
13326
3351
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_simpleType4122);
13327
3351
        	        atomicWord(ctx, name);
13328
13329
3351
        	        FOLLOWPOP();
13330
3351
        	        if  (HASEXCEPTION())
13331
        	        {
13332
        	            goto rulesimpleTypeEx;
13333
        	        }
13334
13335
13336
        	        {
13337
3351
        	             type = PARSER_STATE->getSort(name);
13338
        	        }
13339
13340
13341
        	    }
13342
3351
        	    break;
13343
13344
            }
13345
        }
13346
    }
13347
13348
    // This is where rules clean up and exit
13349
    //
13350
5660
    goto rulesimpleTypeEx; /* Prevent compiler warnings */
13351
5660
    rulesimpleTypeEx: ;
13352
13353
5660
            if (HASEXCEPTION())
13354
            {
13355
                PREPORTERROR();
13356
                PRECOVER();
13357
            }
13358
11320
    return ;
13359
}
13360
/* $ANTLR end simpleType */
13361
13362
/**
13363
 * $ANTLR start anything
13364
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1574: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 );
13365
 */
13366
static void
13367
439
anything(pTptpParser ctx)
13368
{
13369
    /* Initialize rule variables
13370
     */
13371
13372
    {
13373
        {
13374
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1575: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 )
13375
13376
            ANTLR3_UINT32 alt84;
13377
13378
439
            alt84=36;
13379
13380
439
            switch ( LA(1) )
13381
            {
13382
70
            case LPAREN_TOK:
13383
            	{
13384
70
            		alt84=1;
13385
            	}
13386
70
                break;
13387
36
            case LBRACK_TOK:
13388
            	{
13389
36
            		alt84=2;
13390
            	}
13391
36
                break;
13392
104
            case COMMA_TOK:
13393
            	{
13394
104
            		alt84=3;
13395
            	}
13396
104
                break;
13397
            case DOT_TOK:
13398
            	{
13399
            		alt84=4;
13400
            	}
13401
                break;
13402
6
            case COLON_TOK:
13403
            	{
13404
6
            		alt84=5;
13405
            	}
13406
6
                break;
13407
7
            case OR_TOK:
13408
            	{
13409
7
            		alt84=6;
13410
            	}
13411
7
                break;
13412
5
            case NOT_TOK:
13413
            	{
13414
5
            		alt84=7;
13415
            	}
13416
5
                break;
13417
            case FORALL_TOK:
13418
            	{
13419
            		alt84=8;
13420
            	}
13421
                break;
13422
            case EXISTS_TOK:
13423
            	{
13424
            		alt84=9;
13425
            	}
13426
                break;
13427
            case AND_TOK:
13428
            	{
13429
            		alt84=10;
13430
            	}
13431
                break;
13432
            case IFF_TOK:
13433
            	{
13434
            		alt84=11;
13435
            	}
13436
                break;
13437
            case IMPLIES_TOK:
13438
            	{
13439
            		alt84=12;
13440
            	}
13441
                break;
13442
            case REVIMPLIES_TOK:
13443
            	{
13444
            		alt84=13;
13445
            	}
13446
                break;
13447
            case REVIFF_TOK:
13448
            	{
13449
            		alt84=14;
13450
            	}
13451
                break;
13452
            case REVOR_TOK:
13453
            	{
13454
            		alt84=15;
13455
            	}
13456
                break;
13457
            case REVAND_TOK:
13458
            	{
13459
            		alt84=16;
13460
            	}
13461
                break;
13462
            case TIMES_TOK:
13463
            	{
13464
            		alt84=17;
13465
            	}
13466
                break;
13467
            case PLUS_TOK:
13468
            	{
13469
            		alt84=18;
13470
            	}
13471
                break;
13472
            case MINUS_TOK:
13473
            	{
13474
            		alt84=19;
13475
            	}
13476
                break;
13477
            case TRUE_TOK:
13478
            	{
13479
            		alt84=20;
13480
            	}
13481
                break;
13482
            case FALSE_TOK:
13483
            	{
13484
            		alt84=21;
13485
            	}
13486
                break;
13487
            case EQUAL_TOK:
13488
            	{
13489
            		alt84=22;
13490
            	}
13491
                break;
13492
            case DISEQUAL_TOK:
13493
            	{
13494
            		alt84=23;
13495
            	}
13496
                break;
13497
            case CNF_TOK:
13498
            	{
13499
            		alt84=24;
13500
            	}
13501
                break;
13502
            case FOF_TOK:
13503
            	{
13504
            		alt84=25;
13505
            	}
13506
                break;
13507
            case THF_TOK:
13508
            	{
13509
            		alt84=26;
13510
            	}
13511
                break;
13512
            case TFF_TOK:
13513
            	{
13514
            		alt84=27;
13515
            	}
13516
                break;
13517
            case TYPE_TOK:
13518
            	{
13519
            		alt84=28;
13520
            	}
13521
                break;
13522
            case INCLUDE_TOK:
13523
            	{
13524
            		alt84=29;
13525
            	}
13526
                break;
13527
3
            case DISTINCT_OBJECT:
13528
            	{
13529
3
            		alt84=30;
13530
            	}
13531
3
                break;
13532
31
            case UPPER_WORD:
13533
            	{
13534
31
            		alt84=31;
13535
            	}
13536
31
                break;
13537
150
            case LOWER_WORD:
13538
            	{
13539
150
            		alt84=32;
13540
            	}
13541
150
                break;
13542
            case LOWER_WORD_SINGLE_QUOTED:
13543
            	{
13544
            		alt84=33;
13545
            	}
13546
                break;
13547
6
            case SINGLE_QUOTED:
13548
            	{
13549
6
            		alt84=34;
13550
            	}
13551
6
                break;
13552
15
            case NUMBER:
13553
            	{
13554
15
            		alt84=35;
13555
            	}
13556
15
                break;
13557
6
            case DEFINED_SYMBOL:
13558
            	{
13559
6
            		alt84=36;
13560
            	}
13561
6
                break;
13562
13563
            default:
13564
                CONSTRUCTEX();
13565
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
13566
                EXCEPTION->message      = (void *)"";
13567
                EXCEPTION->decisionNum  = 84;
13568
                EXCEPTION->state        = 0;
13569
13570
13571
                goto ruleanythingEx;
13572
13573
            }
13574
13575
439
            switch (alt84)
13576
            {
13577
70
        	case 1:
13578
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1575:5: LPAREN_TOK ( anything )* RPAREN_TOK
13579
        	    {
13580
70
        	         MATCHT(LPAREN_TOK, &FOLLOW_LPAREN_TOK_in_anything4147);
13581
70
        	        if  (HASEXCEPTION())
13582
        	        {
13583
        	            goto ruleanythingEx;
13584
        	        }
13585
13586
13587
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1575:16: ( anything )*
13588
13589
        	        for (;;)
13590
        	        {
13591
272
        	            int alt82=2;
13592
272
        	            switch ( LA(1) )
13593
        	            {
13594
202
        	            case AND_TOK:
13595
        	            case CNF_TOK:
13596
        	            case COLON_TOK:
13597
        	            case COMMA_TOK:
13598
        	            case DEFINED_SYMBOL:
13599
        	            case DISEQUAL_TOK:
13600
        	            case DISTINCT_OBJECT:
13601
        	            case DOT_TOK:
13602
        	            case EQUAL_TOK:
13603
        	            case EXISTS_TOK:
13604
        	            case FALSE_TOK:
13605
        	            case FOF_TOK:
13606
        	            case FORALL_TOK:
13607
        	            case IFF_TOK:
13608
        	            case IMPLIES_TOK:
13609
        	            case INCLUDE_TOK:
13610
        	            case LBRACK_TOK:
13611
        	            case LOWER_WORD:
13612
        	            case LOWER_WORD_SINGLE_QUOTED:
13613
        	            case LPAREN_TOK:
13614
        	            case MINUS_TOK:
13615
        	            case NOT_TOK:
13616
        	            case NUMBER:
13617
        	            case OR_TOK:
13618
        	            case PLUS_TOK:
13619
        	            case REVAND_TOK:
13620
        	            case REVIFF_TOK:
13621
        	            case REVIMPLIES_TOK:
13622
        	            case REVOR_TOK:
13623
        	            case SINGLE_QUOTED:
13624
        	            case TFF_TOK:
13625
        	            case THF_TOK:
13626
        	            case TIMES_TOK:
13627
        	            case TRUE_TOK:
13628
        	            case TYPE_TOK:
13629
        	            case UPPER_WORD:
13630
        	            	{
13631
202
        	            		alt82=1;
13632
        	            	}
13633
202
        	                break;
13634
13635
        	            }
13636
13637
272
        	            switch (alt82)
13638
        	            {
13639
202
        	        	case 1:
13640
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1575:16: anything
13641
        	        	    {
13642
202
        	        	        FOLLOWPUSH(FOLLOW_anything_in_anything4149);
13643
202
        	        	        anything(ctx);
13644
13645
202
        	        	        FOLLOWPOP();
13646
202
        	        	        if  (HASEXCEPTION())
13647
        	        	        {
13648
        	        	            goto ruleanythingEx;
13649
        	        	        }
13650
13651
13652
        	        	    }
13653
202
        	        	    break;
13654
13655
70
        	        	default:
13656
70
        	        	    goto loop82;	/* break out of the loop */
13657
        	        	    break;
13658
        	            }
13659
202
        	        }
13660
70
        	        loop82: ; /* Jump out to here if this rule does not match */
13661
13662
13663
70
        	         MATCHT(RPAREN_TOK, &FOLLOW_RPAREN_TOK_in_anything4152);
13664
70
        	        if  (HASEXCEPTION())
13665
        	        {
13666
        	            goto ruleanythingEx;
13667
70
        	        }
13668
13669
13670
        	    }
13671
70
        	    break;
13672
36
        	case 2:
13673
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1576:5: LBRACK_TOK ( anything )* RBRACK_TOK
13674
        	    {
13675
36
        	         MATCHT(LBRACK_TOK, &FOLLOW_LBRACK_TOK_in_anything4158);
13676
36
        	        if  (HASEXCEPTION())
13677
        	        {
13678
        	            goto ruleanythingEx;
13679
        	        }
13680
13681
13682
        	        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1576:16: ( anything )*
13683
13684
        	        for (;;)
13685
        	        {
13686
228
        	            int alt83=2;
13687
228
        	            switch ( LA(1) )
13688
        	            {
13689
192
        	            case AND_TOK:
13690
        	            case CNF_TOK:
13691
        	            case COLON_TOK:
13692
        	            case COMMA_TOK:
13693
        	            case DEFINED_SYMBOL:
13694
        	            case DISEQUAL_TOK:
13695
        	            case DISTINCT_OBJECT:
13696
        	            case DOT_TOK:
13697
        	            case EQUAL_TOK:
13698
        	            case EXISTS_TOK:
13699
        	            case FALSE_TOK:
13700
        	            case FOF_TOK:
13701
        	            case FORALL_TOK:
13702
        	            case IFF_TOK:
13703
        	            case IMPLIES_TOK:
13704
        	            case INCLUDE_TOK:
13705
        	            case LBRACK_TOK:
13706
        	            case LOWER_WORD:
13707
        	            case LOWER_WORD_SINGLE_QUOTED:
13708
        	            case LPAREN_TOK:
13709
        	            case MINUS_TOK:
13710
        	            case NOT_TOK:
13711
        	            case NUMBER:
13712
        	            case OR_TOK:
13713
        	            case PLUS_TOK:
13714
        	            case REVAND_TOK:
13715
        	            case REVIFF_TOK:
13716
        	            case REVIMPLIES_TOK:
13717
        	            case REVOR_TOK:
13718
        	            case SINGLE_QUOTED:
13719
        	            case TFF_TOK:
13720
        	            case THF_TOK:
13721
        	            case TIMES_TOK:
13722
        	            case TRUE_TOK:
13723
        	            case TYPE_TOK:
13724
        	            case UPPER_WORD:
13725
        	            	{
13726
192
        	            		alt83=1;
13727
        	            	}
13728
192
        	                break;
13729
13730
        	            }
13731
13732
228
        	            switch (alt83)
13733
        	            {
13734
192
        	        	case 1:
13735
        	        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1576:16: anything
13736
        	        	    {
13737
192
        	        	        FOLLOWPUSH(FOLLOW_anything_in_anything4160);
13738
192
        	        	        anything(ctx);
13739
13740
192
        	        	        FOLLOWPOP();
13741
192
        	        	        if  (HASEXCEPTION())
13742
        	        	        {
13743
        	        	            goto ruleanythingEx;
13744
        	        	        }
13745
13746
13747
        	        	    }
13748
192
        	        	    break;
13749
13750
36
        	        	default:
13751
36
        	        	    goto loop83;	/* break out of the loop */
13752
        	        	    break;
13753
        	            }
13754
192
        	        }
13755
36
        	        loop83: ; /* Jump out to here if this rule does not match */
13756
13757
13758
36
        	         MATCHT(RBRACK_TOK, &FOLLOW_RBRACK_TOK_in_anything4163);
13759
36
        	        if  (HASEXCEPTION())
13760
        	        {
13761
        	            goto ruleanythingEx;
13762
36
        	        }
13763
13764
13765
        	    }
13766
36
        	    break;
13767
104
        	case 3:
13768
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1577:5: COMMA_TOK
13769
        	    {
13770
104
        	         MATCHT(COMMA_TOK, &FOLLOW_COMMA_TOK_in_anything4169);
13771
104
        	        if  (HASEXCEPTION())
13772
        	        {
13773
        	            goto ruleanythingEx;
13774
        	        }
13775
13776
13777
        	    }
13778
104
        	    break;
13779
        	case 4:
13780
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1578:5: DOT_TOK
13781
        	    {
13782
        	         MATCHT(DOT_TOK, &FOLLOW_DOT_TOK_in_anything4175);
13783
        	        if  (HASEXCEPTION())
13784
        	        {
13785
        	            goto ruleanythingEx;
13786
        	        }
13787
13788
13789
        	    }
13790
        	    break;
13791
6
        	case 5:
13792
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1579:5: COLON_TOK
13793
        	    {
13794
6
        	         MATCHT(COLON_TOK, &FOLLOW_COLON_TOK_in_anything4181);
13795
6
        	        if  (HASEXCEPTION())
13796
        	        {
13797
        	            goto ruleanythingEx;
13798
        	        }
13799
13800
13801
        	    }
13802
6
        	    break;
13803
7
        	case 6:
13804
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1580:5: OR_TOK
13805
        	    {
13806
7
        	         MATCHT(OR_TOK, &FOLLOW_OR_TOK_in_anything4187);
13807
7
        	        if  (HASEXCEPTION())
13808
        	        {
13809
        	            goto ruleanythingEx;
13810
        	        }
13811
13812
13813
        	    }
13814
7
        	    break;
13815
5
        	case 7:
13816
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1581:5: NOT_TOK
13817
        	    {
13818
5
        	         MATCHT(NOT_TOK, &FOLLOW_NOT_TOK_in_anything4193);
13819
5
        	        if  (HASEXCEPTION())
13820
        	        {
13821
        	            goto ruleanythingEx;
13822
        	        }
13823
13824
13825
        	    }
13826
5
        	    break;
13827
        	case 8:
13828
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1582:5: FORALL_TOK
13829
        	    {
13830
        	         MATCHT(FORALL_TOK, &FOLLOW_FORALL_TOK_in_anything4199);
13831
        	        if  (HASEXCEPTION())
13832
        	        {
13833
        	            goto ruleanythingEx;
13834
        	        }
13835
13836
13837
        	    }
13838
        	    break;
13839
        	case 9:
13840
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1583:5: EXISTS_TOK
13841
        	    {
13842
        	         MATCHT(EXISTS_TOK, &FOLLOW_EXISTS_TOK_in_anything4205);
13843
        	        if  (HASEXCEPTION())
13844
        	        {
13845
        	            goto ruleanythingEx;
13846
        	        }
13847
13848
13849
        	    }
13850
        	    break;
13851
        	case 10:
13852
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1584:5: AND_TOK
13853
        	    {
13854
        	         MATCHT(AND_TOK, &FOLLOW_AND_TOK_in_anything4211);
13855
        	        if  (HASEXCEPTION())
13856
        	        {
13857
        	            goto ruleanythingEx;
13858
        	        }
13859
13860
13861
        	    }
13862
        	    break;
13863
        	case 11:
13864
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1585:5: IFF_TOK
13865
        	    {
13866
        	         MATCHT(IFF_TOK, &FOLLOW_IFF_TOK_in_anything4217);
13867
        	        if  (HASEXCEPTION())
13868
        	        {
13869
        	            goto ruleanythingEx;
13870
        	        }
13871
13872
13873
        	    }
13874
        	    break;
13875
        	case 12:
13876
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1586:5: IMPLIES_TOK
13877
        	    {
13878
        	         MATCHT(IMPLIES_TOK, &FOLLOW_IMPLIES_TOK_in_anything4223);
13879
        	        if  (HASEXCEPTION())
13880
        	        {
13881
        	            goto ruleanythingEx;
13882
        	        }
13883
13884
13885
        	    }
13886
        	    break;
13887
        	case 13:
13888
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1587:5: REVIMPLIES_TOK
13889
        	    {
13890
        	         MATCHT(REVIMPLIES_TOK, &FOLLOW_REVIMPLIES_TOK_in_anything4229);
13891
        	        if  (HASEXCEPTION())
13892
        	        {
13893
        	            goto ruleanythingEx;
13894
        	        }
13895
13896
13897
        	    }
13898
        	    break;
13899
        	case 14:
13900
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1588:5: REVIFF_TOK
13901
        	    {
13902
        	         MATCHT(REVIFF_TOK, &FOLLOW_REVIFF_TOK_in_anything4235);
13903
        	        if  (HASEXCEPTION())
13904
        	        {
13905
        	            goto ruleanythingEx;
13906
        	        }
13907
13908
13909
        	    }
13910
        	    break;
13911
        	case 15:
13912
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1589:5: REVOR_TOK
13913
        	    {
13914
        	         MATCHT(REVOR_TOK, &FOLLOW_REVOR_TOK_in_anything4241);
13915
        	        if  (HASEXCEPTION())
13916
        	        {
13917
        	            goto ruleanythingEx;
13918
        	        }
13919
13920
13921
        	    }
13922
        	    break;
13923
        	case 16:
13924
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1590:5: REVAND_TOK
13925
        	    {
13926
        	         MATCHT(REVAND_TOK, &FOLLOW_REVAND_TOK_in_anything4247);
13927
        	        if  (HASEXCEPTION())
13928
        	        {
13929
        	            goto ruleanythingEx;
13930
        	        }
13931
13932
13933
        	    }
13934
        	    break;
13935
        	case 17:
13936
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1591:5: TIMES_TOK
13937
        	    {
13938
        	         MATCHT(TIMES_TOK, &FOLLOW_TIMES_TOK_in_anything4253);
13939
        	        if  (HASEXCEPTION())
13940
        	        {
13941
        	            goto ruleanythingEx;
13942
        	        }
13943
13944
13945
        	    }
13946
        	    break;
13947
        	case 18:
13948
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1592:5: PLUS_TOK
13949
        	    {
13950
        	         MATCHT(PLUS_TOK, &FOLLOW_PLUS_TOK_in_anything4259);
13951
        	        if  (HASEXCEPTION())
13952
        	        {
13953
        	            goto ruleanythingEx;
13954
        	        }
13955
13956
13957
        	    }
13958
        	    break;
13959
        	case 19:
13960
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1593:5: MINUS_TOK
13961
        	    {
13962
        	         MATCHT(MINUS_TOK, &FOLLOW_MINUS_TOK_in_anything4265);
13963
        	        if  (HASEXCEPTION())
13964
        	        {
13965
        	            goto ruleanythingEx;
13966
        	        }
13967
13968
13969
        	    }
13970
        	    break;
13971
        	case 20:
13972
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1594:5: TRUE_TOK
13973
        	    {
13974
        	         MATCHT(TRUE_TOK, &FOLLOW_TRUE_TOK_in_anything4271);
13975
        	        if  (HASEXCEPTION())
13976
        	        {
13977
        	            goto ruleanythingEx;
13978
        	        }
13979
13980
13981
        	    }
13982
        	    break;
13983
        	case 21:
13984
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1595:5: FALSE_TOK
13985
        	    {
13986
        	         MATCHT(FALSE_TOK, &FOLLOW_FALSE_TOK_in_anything4277);
13987
        	        if  (HASEXCEPTION())
13988
        	        {
13989
        	            goto ruleanythingEx;
13990
        	        }
13991
13992
13993
        	    }
13994
        	    break;
13995
        	case 22:
13996
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1596:5: EQUAL_TOK
13997
        	    {
13998
        	         MATCHT(EQUAL_TOK, &FOLLOW_EQUAL_TOK_in_anything4283);
13999
        	        if  (HASEXCEPTION())
14000
        	        {
14001
        	            goto ruleanythingEx;
14002
        	        }
14003
14004
14005
        	    }
14006
        	    break;
14007
        	case 23:
14008
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1597:5: DISEQUAL_TOK
14009
        	    {
14010
        	         MATCHT(DISEQUAL_TOK, &FOLLOW_DISEQUAL_TOK_in_anything4289);
14011
        	        if  (HASEXCEPTION())
14012
        	        {
14013
        	            goto ruleanythingEx;
14014
        	        }
14015
14016
14017
        	    }
14018
        	    break;
14019
        	case 24:
14020
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1598:5: CNF_TOK
14021
        	    {
14022
        	         MATCHT(CNF_TOK, &FOLLOW_CNF_TOK_in_anything4295);
14023
        	        if  (HASEXCEPTION())
14024
        	        {
14025
        	            goto ruleanythingEx;
14026
        	        }
14027
14028
14029
        	    }
14030
        	    break;
14031
        	case 25:
14032
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1599:5: FOF_TOK
14033
        	    {
14034
        	         MATCHT(FOF_TOK, &FOLLOW_FOF_TOK_in_anything4301);
14035
        	        if  (HASEXCEPTION())
14036
        	        {
14037
        	            goto ruleanythingEx;
14038
        	        }
14039
14040
14041
        	    }
14042
        	    break;
14043
        	case 26:
14044
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1600:5: THF_TOK
14045
        	    {
14046
        	         MATCHT(THF_TOK, &FOLLOW_THF_TOK_in_anything4307);
14047
        	        if  (HASEXCEPTION())
14048
        	        {
14049
        	            goto ruleanythingEx;
14050
        	        }
14051
14052
14053
        	    }
14054
        	    break;
14055
        	case 27:
14056
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1601:5: TFF_TOK
14057
        	    {
14058
        	         MATCHT(TFF_TOK, &FOLLOW_TFF_TOK_in_anything4313);
14059
        	        if  (HASEXCEPTION())
14060
        	        {
14061
        	            goto ruleanythingEx;
14062
        	        }
14063
14064
14065
        	    }
14066
        	    break;
14067
        	case 28:
14068
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1602:5: TYPE_TOK
14069
        	    {
14070
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_anything4319);
14071
        	        if  (HASEXCEPTION())
14072
        	        {
14073
        	            goto ruleanythingEx;
14074
        	        }
14075
14076
14077
        	    }
14078
        	    break;
14079
        	case 29:
14080
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1603:5: INCLUDE_TOK
14081
        	    {
14082
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_anything4325);
14083
        	        if  (HASEXCEPTION())
14084
        	        {
14085
        	            goto ruleanythingEx;
14086
        	        }
14087
14088
14089
        	    }
14090
        	    break;
14091
3
        	case 30:
14092
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1604:5: DISTINCT_OBJECT
14093
        	    {
14094
3
        	         MATCHT(DISTINCT_OBJECT, &FOLLOW_DISTINCT_OBJECT_in_anything4331);
14095
3
        	        if  (HASEXCEPTION())
14096
        	        {
14097
        	            goto ruleanythingEx;
14098
        	        }
14099
14100
14101
        	    }
14102
3
        	    break;
14103
31
        	case 31:
14104
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1605:5: UPPER_WORD
14105
        	    {
14106
31
        	         MATCHT(UPPER_WORD, &FOLLOW_UPPER_WORD_in_anything4337);
14107
31
        	        if  (HASEXCEPTION())
14108
        	        {
14109
        	            goto ruleanythingEx;
14110
        	        }
14111
14112
14113
        	    }
14114
31
        	    break;
14115
150
        	case 32:
14116
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1606:5: LOWER_WORD
14117
        	    {
14118
150
        	         MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_anything4343);
14119
150
        	        if  (HASEXCEPTION())
14120
        	        {
14121
        	            goto ruleanythingEx;
14122
        	        }
14123
14124
14125
        	    }
14126
150
        	    break;
14127
        	case 33:
14128
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1607:5: LOWER_WORD_SINGLE_QUOTED
14129
        	    {
14130
        	         MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_anything4349);
14131
        	        if  (HASEXCEPTION())
14132
        	        {
14133
        	            goto ruleanythingEx;
14134
        	        }
14135
14136
14137
        	    }
14138
        	    break;
14139
6
        	case 34:
14140
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1608:5: SINGLE_QUOTED
14141
        	    {
14142
6
        	         MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_anything4355);
14143
6
        	        if  (HASEXCEPTION())
14144
        	        {
14145
        	            goto ruleanythingEx;
14146
        	        }
14147
14148
14149
        	    }
14150
6
        	    break;
14151
15
        	case 35:
14152
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1609:5: NUMBER
14153
        	    {
14154
15
        	         MATCHT(NUMBER, &FOLLOW_NUMBER_in_anything4361);
14155
15
        	        if  (HASEXCEPTION())
14156
        	        {
14157
        	            goto ruleanythingEx;
14158
        	        }
14159
14160
14161
        	    }
14162
15
        	    break;
14163
6
        	case 36:
14164
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1610:5: DEFINED_SYMBOL
14165
        	    {
14166
6
        	         MATCHT(DEFINED_SYMBOL, &FOLLOW_DEFINED_SYMBOL_in_anything4367);
14167
6
        	        if  (HASEXCEPTION())
14168
        	        {
14169
        	            goto ruleanythingEx;
14170
        	        }
14171
14172
14173
        	    }
14174
6
        	    break;
14175
14176
            }
14177
        }
14178
    }
14179
14180
    // This is where rules clean up and exit
14181
    //
14182
439
    goto ruleanythingEx; /* Prevent compiler warnings */
14183
439
    ruleanythingEx: ;
14184
14185
439
            if (HASEXCEPTION())
14186
            {
14187
                PREPORTERROR();
14188
                PRECOVER();
14189
            }
14190
439
    return ;
14191
}
14192
/* $ANTLR end anything */
14193
14194
/**
14195
 * $ANTLR start unquotedFileName
14196
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1701:1: unquotedFileName[std::string& name] : (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED ) ;
14197
 */
14198
static void
14199
7
unquotedFileName(pTptpParser ctx, std::string& name)
14200
{
14201
    pANTLR3_COMMON_TOKEN    s;
14202
14203
    /* Initialize rule variables
14204
     */
14205
14206
7
    s       = NULL;
14207
14208
    {
14209
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1702:2: ( (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED ) )
14210
        // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1702:4: (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED )
14211
        {
14212
            // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1702:4: (s= LOWER_WORD_SINGLE_QUOTED |s= SINGLE_QUOTED )
14213
            {
14214
7
                int alt85=2;
14215
7
                switch ( LA(1) )
14216
                {
14217
                case LOWER_WORD_SINGLE_QUOTED:
14218
                	{
14219
                		alt85=1;
14220
                	}
14221
                    break;
14222
7
                case SINGLE_QUOTED:
14223
                	{
14224
7
                		alt85=2;
14225
                	}
14226
7
                    break;
14227
14228
                default:
14229
                    CONSTRUCTEX();
14230
                    EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14231
                    EXCEPTION->message      = (void *)"";
14232
                    EXCEPTION->decisionNum  = 85;
14233
                    EXCEPTION->state        = 0;
14234
14235
14236
                    goto ruleunquotedFileNameEx;
14237
14238
                }
14239
14240
7
                switch (alt85)
14241
                {
14242
            	case 1:
14243
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1702:5: s= LOWER_WORD_SINGLE_QUOTED
14244
            	    {
14245
            	        s = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_unquotedFileName5047);
14246
            	        if  (HASEXCEPTION())
14247
            	        {
14248
            	            goto ruleunquotedFileNameEx;
14249
            	        }
14250
14251
14252
            	    }
14253
            	    break;
14254
7
            	case 2:
14255
            	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1702:34: s= SINGLE_QUOTED
14256
            	    {
14257
7
            	        s = (pANTLR3_COMMON_TOKEN) MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_unquotedFileName5053);
14258
7
            	        if  (HASEXCEPTION())
14259
            	        {
14260
            	            goto ruleunquotedFileNameEx;
14261
            	        }
14262
14263
14264
            	    }
14265
7
            	    break;
14266
14267
                }
14268
            }
14269
14270
            {
14271
7
                 name = AntlrInput::tokenText(s);
14272
7
                      name = name.substr(1, name.size() - 2 );
14273
14274
            }
14275
14276
14277
        }
14278
14279
    }
14280
14281
    // This is where rules clean up and exit
14282
    //
14283
7
    goto ruleunquotedFileNameEx; /* Prevent compiler warnings */
14284
7
    ruleunquotedFileNameEx: ;
14285
14286
7
            if (HASEXCEPTION())
14287
            {
14288
                PREPORTERROR();
14289
                PRECOVER();
14290
            }
14291
7
    return ;
14292
}
14293
/* $ANTLR end unquotedFileName */
14294
14295
/**
14296
 * $ANTLR start nameN
14297
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1708:1: nameN[std::string& name] : ( atomicWord[name] | NUMBER );
14298
 */
14299
static void
14300
2065
nameN(pTptpParser ctx, std::string& name)
14301
{
14302
    pANTLR3_COMMON_TOKEN    NUMBER9;
14303
14304
    /* Initialize rule variables
14305
     */
14306
14307
2065
    NUMBER9       = NULL;
14308
14309
    {
14310
        {
14311
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1709:2: ( atomicWord[name] | NUMBER )
14312
14313
            ANTLR3_UINT32 alt86;
14314
14315
2065
            alt86=2;
14316
14317
2065
            switch ( LA(1) )
14318
            {
14319
2061
            case CNF_TOK:
14320
            case FOF_TOK:
14321
            case INCLUDE_TOK:
14322
            case LOWER_WORD:
14323
            case LOWER_WORD_SINGLE_QUOTED:
14324
            case SINGLE_QUOTED:
14325
            case TFF_TOK:
14326
            case THF_TOK:
14327
            case TYPE_TOK:
14328
            	{
14329
2061
            		alt86=1;
14330
            	}
14331
2061
                break;
14332
4
            case NUMBER:
14333
            	{
14334
4
            		alt86=2;
14335
            	}
14336
4
                break;
14337
14338
            default:
14339
                CONSTRUCTEX();
14340
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14341
                EXCEPTION->message      = (void *)"";
14342
                EXCEPTION->decisionNum  = 86;
14343
                EXCEPTION->state        = 0;
14344
14345
14346
                goto rulenameNEx;
14347
14348
            }
14349
14350
2065
            switch (alt86)
14351
            {
14352
2061
        	case 1:
14353
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1709:4: atomicWord[name]
14354
        	    {
14355
2061
        	        FOLLOWPUSH(FOLLOW_atomicWord_in_nameN5072);
14356
2061
        	        atomicWord(ctx, name);
14357
14358
2061
        	        FOLLOWPOP();
14359
2061
        	        if  (HASEXCEPTION())
14360
        	        {
14361
        	            goto rulenameNEx;
14362
        	        }
14363
14364
14365
        	    }
14366
2061
        	    break;
14367
4
        	case 2:
14368
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1710:4: NUMBER
14369
        	    {
14370
4
        	        NUMBER9 = (pANTLR3_COMMON_TOKEN) MATCHT(NUMBER, &FOLLOW_NUMBER_in_nameN5078);
14371
4
        	        if  (HASEXCEPTION())
14372
        	        {
14373
        	            goto rulenameNEx;
14374
        	        }
14375
14376
14377
        	        {
14378
4
        	             name = AntlrInput::tokenText(NUMBER9);
14379
        	        }
14380
14381
14382
        	    }
14383
4
        	    break;
14384
14385
            }
14386
        }
14387
    }
14388
14389
    // This is where rules clean up and exit
14390
    //
14391
2065
    goto rulenameNEx; /* Prevent compiler warnings */
14392
2065
    rulenameNEx: ;
14393
14394
2065
            if (HASEXCEPTION())
14395
            {
14396
                PREPORTERROR();
14397
                PRECOVER();
14398
            }
14399
2065
    return ;
14400
}
14401
/* $ANTLR end nameN */
14402
14403
/**
14404
 * $ANTLR start atomicWord
14405
 * /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1714: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 );
14406
 */
14407
static void
14408
11153
atomicWord(pTptpParser ctx, std::string& name)
14409
{
14410
    pANTLR3_COMMON_TOKEN    LOWER_WORD10;
14411
    pANTLR3_COMMON_TOKEN    LOWER_WORD_SINGLE_QUOTED11;
14412
    pANTLR3_COMMON_TOKEN    SINGLE_QUOTED12;
14413
14414
    /* Initialize rule variables
14415
     */
14416
14417
11153
    LOWER_WORD10       = NULL;
14418
11153
    LOWER_WORD_SINGLE_QUOTED11       = NULL;
14419
11153
    SINGLE_QUOTED12       = NULL;
14420
14421
    {
14422
        {
14423
            //  /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1715:2: ( FOF_TOK | CNF_TOK | THF_TOK | TFF_TOK | TYPE_TOK | INCLUDE_TOK | LOWER_WORD | LOWER_WORD_SINGLE_QUOTED | SINGLE_QUOTED )
14424
14425
            ANTLR3_UINT32 alt87;
14426
14427
11153
            alt87=9;
14428
14429
11153
            switch ( LA(1) )
14430
            {
14431
            case FOF_TOK:
14432
            	{
14433
            		alt87=1;
14434
            	}
14435
                break;
14436
3
            case CNF_TOK:
14437
            	{
14438
3
            		alt87=2;
14439
            	}
14440
3
                break;
14441
            case THF_TOK:
14442
            	{
14443
            		alt87=3;
14444
            	}
14445
                break;
14446
            case TFF_TOK:
14447
            	{
14448
            		alt87=4;
14449
            	}
14450
                break;
14451
            case TYPE_TOK:
14452
            	{
14453
            		alt87=5;
14454
            	}
14455
                break;
14456
2
            case INCLUDE_TOK:
14457
            	{
14458
2
            		alt87=6;
14459
            	}
14460
2
                break;
14461
11122
            case LOWER_WORD:
14462
            	{
14463
11122
            		alt87=7;
14464
            	}
14465
11122
                break;
14466
5
            case LOWER_WORD_SINGLE_QUOTED:
14467
            	{
14468
5
            		alt87=8;
14469
            	}
14470
5
                break;
14471
21
            case SINGLE_QUOTED:
14472
            	{
14473
21
            		alt87=9;
14474
            	}
14475
21
                break;
14476
14477
            default:
14478
                CONSTRUCTEX();
14479
                EXCEPTION->type         = ANTLR3_NO_VIABLE_ALT_EXCEPTION;
14480
                EXCEPTION->message      = (void *)"";
14481
                EXCEPTION->decisionNum  = 87;
14482
                EXCEPTION->state        = 0;
14483
14484
14485
                goto ruleatomicWordEx;
14486
14487
            }
14488
14489
11153
            switch (alt87)
14490
            {
14491
        	case 1:
14492
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1715:4: FOF_TOK
14493
        	    {
14494
        	         MATCHT(FOF_TOK, &FOLLOW_FOF_TOK_in_atomicWord5094);
14495
        	        if  (HASEXCEPTION())
14496
        	        {
14497
        	            goto ruleatomicWordEx;
14498
        	        }
14499
14500
14501
        	        {
14502
        	             name = "fof";
14503
        	        }
14504
14505
14506
        	    }
14507
        	    break;
14508
3
        	case 2:
14509
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1716:4: CNF_TOK
14510
        	    {
14511
3
        	         MATCHT(CNF_TOK, &FOLLOW_CNF_TOK_in_atomicWord5105);
14512
3
        	        if  (HASEXCEPTION())
14513
        	        {
14514
        	            goto ruleatomicWordEx;
14515
        	        }
14516
14517
14518
        	        {
14519
3
        	             name = "cnf";
14520
        	        }
14521
14522
14523
        	    }
14524
3
        	    break;
14525
        	case 3:
14526
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1717:4: THF_TOK
14527
        	    {
14528
        	         MATCHT(THF_TOK, &FOLLOW_THF_TOK_in_atomicWord5116);
14529
        	        if  (HASEXCEPTION())
14530
        	        {
14531
        	            goto ruleatomicWordEx;
14532
        	        }
14533
14534
14535
        	        {
14536
        	             name = "thf";
14537
        	        }
14538
14539
14540
        	    }
14541
        	    break;
14542
        	case 4:
14543
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1718:4: TFF_TOK
14544
        	    {
14545
        	         MATCHT(TFF_TOK, &FOLLOW_TFF_TOK_in_atomicWord5127);
14546
        	        if  (HASEXCEPTION())
14547
        	        {
14548
        	            goto ruleatomicWordEx;
14549
        	        }
14550
14551
14552
        	        {
14553
        	             name = "tff";
14554
        	        }
14555
14556
14557
        	    }
14558
        	    break;
14559
        	case 5:
14560
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1719:4: TYPE_TOK
14561
        	    {
14562
        	         MATCHT(TYPE_TOK, &FOLLOW_TYPE_TOK_in_atomicWord5138);
14563
        	        if  (HASEXCEPTION())
14564
        	        {
14565
        	            goto ruleatomicWordEx;
14566
        	        }
14567
14568
14569
        	        {
14570
        	             name = "type";
14571
        	        }
14572
14573
14574
        	    }
14575
        	    break;
14576
2
        	case 6:
14577
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1720:4: INCLUDE_TOK
14578
        	    {
14579
2
        	         MATCHT(INCLUDE_TOK, &FOLLOW_INCLUDE_TOK_in_atomicWord5148);
14580
2
        	        if  (HASEXCEPTION())
14581
        	        {
14582
        	            goto ruleatomicWordEx;
14583
        	        }
14584
14585
14586
        	        {
14587
2
        	             name = "include";
14588
        	        }
14589
14590
14591
        	    }
14592
2
        	    break;
14593
11122
        	case 7:
14594
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1721:4: LOWER_WORD
14595
        	    {
14596
11122
        	        LOWER_WORD10 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD, &FOLLOW_LOWER_WORD_in_atomicWord5155);
14597
11122
        	        if  (HASEXCEPTION())
14598
        	        {
14599
        	            goto ruleatomicWordEx;
14600
        	        }
14601
14602
14603
        	        {
14604
11122
        	             name = AntlrInput::tokenText(LOWER_WORD10);
14605
        	        }
14606
14607
14608
        	    }
14609
11122
        	    break;
14610
5
        	case 8:
14611
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1722:4: LOWER_WORD_SINGLE_QUOTED
14612
        	    {
14613
5
        	        LOWER_WORD_SINGLE_QUOTED11 = (pANTLR3_COMMON_TOKEN) MATCHT(LOWER_WORD_SINGLE_QUOTED, &FOLLOW_LOWER_WORD_SINGLE_QUOTED_in_atomicWord5163);
14614
5
        	        if  (HASEXCEPTION())
14615
        	        {
14616
        	            goto ruleatomicWordEx;
14617
        	        }
14618
14619
14620
        	        {
14621
        	             /* strip off the quotes */
14622
5
        	                  name = AntlrInput::tokenTextSubstr(LOWER_WORD_SINGLE_QUOTED11, 1 ,
14623
5
        	                                                     (LOWER_WORD_SINGLE_QUOTED11->stop - LOWER_WORD_SINGLE_QUOTED11->start) - 1);
14624
14625
        	        }
14626
14627
14628
        	    }
14629
5
        	    break;
14630
21
        	case 9:
14631
        	    // /barrett/scratch/cvc4-nightly/src/cvc5-2021-08-01/src/parser/tptp/Tptp.g:1727:4: SINGLE_QUOTED
14632
        	    {
14633
21
        	        SINGLE_QUOTED12 = (pANTLR3_COMMON_TOKEN) MATCHT(SINGLE_QUOTED, &FOLLOW_SINGLE_QUOTED_in_atomicWord5175);
14634
21
        	        if  (HASEXCEPTION())
14635
        	        {
14636
        	            goto ruleatomicWordEx;
14637
        	        }
14638
14639
14640
        	        {
14641
21
        	            name = AntlrInput::tokenText(SINGLE_QUOTED12);
14642
        	        }
14643
14644
14645
        	    }
14646
21
        	    break;
14647
14648
            }
14649
        }
14650
    }
14651
14652
    // This is where rules clean up and exit
14653
    //
14654
11153
    goto ruleatomicWordEx; /* Prevent compiler warnings */
14655
11153
    ruleatomicWordEx: ;
14656
14657
11153
            if (HASEXCEPTION())
14658
            {
14659
                PREPORTERROR();
14660
                PRECOVER();
14661
            }
14662
11153
    return ;
14663
29265
}
14664
/* $ANTLR end atomicWord */
14665
/* End of parsing rules
14666
 * ==============================================
14667
 */
14668
14669
/* ==============================================
14670
 * Syntactic predicates
14671
 */
14672
/* End of syntactic predicates
14673
 * ==============================================
14674
 */
14675
14676
14677
14678
14679
14680
14681
/* End of code
14682
 * =============================================================================
14683
 */