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