3 from __future__
import print_function
5 from io
import StringIO
9 with StringIO()
as buf:
10 buf.write(
u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3")
11 buf.write(
u"\27b\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7")
12 buf.write(
u"\4\b\t\b\4\t\t\t\3\2\3\2\3\2\7\2\26\n\2\f\2\16\2\31\13")
13 buf.write(
u"\2\3\2\3\2\3\2\3\2\3\2\5\2 \n\2\3\2\5\2#\n\2\3\3\3\3")
14 buf.write(
u"\3\3\3\3\7\3)\n\3\f\3\16\3,\13\3\5\3.\n\3\3\3\3\3\5\3")
15 buf.write(
u"\62\n\3\3\4\3\4\3\4\3\4\7\48\n\4\f\4\16\4;\13\4\3\4\3")
16 buf.write(
u"\4\3\5\3\5\3\5\3\5\3\5\3\5\3\6\7\6F\n\6\f\6\16\6I\13")
17 buf.write(
u"\6\3\7\3\7\3\7\3\7\3\7\7\7P\n\7\f\7\16\7S\13\7\3\7\3")
18 buf.write(
u"\7\5\7W\n\7\3\b\3\b\3\b\3\b\5\b]\n\b\3\t\3\t\3\t\3\t")
19 buf.write(
u"\2\2\n\2\4\6\b\n\f\16\20\2\2\2f\2\"\3\2\2\2\4$\3\2\2")
20 buf.write(
u"\2\6\63\3\2\2\2\b>\3\2\2\2\nG\3\2\2\2\fJ\3\2\2\2\16\\")
21 buf.write(
u"\3\2\2\2\20^\3\2\2\2\22\27\7\17\2\2\23\24\7\6\2\2\24")
22 buf.write(
u"\26\7\17\2\2\25\23\3\2\2\2\26\31\3\2\2\2\27\25\3\2\2")
23 buf.write(
u"\2\27\30\3\2\2\2\30\32\3\2\2\2\31\27\3\2\2\2\32\33\7")
24 buf.write(
u"\f\2\2\33\34\7\23\2\2\34\37\7\25\2\2\35 \7\24\2\2\36")
25 buf.write(
u" \5\20\t\2\37\35\3\2\2\2\37\36\3\2\2\2 #\3\2\2\2!#\5")
26 buf.write(
u"\4\3\2\"\22\3\2\2\2\"!\3\2\2\2#\3\3\2\2\2$-\7\r\2\2%")
27 buf.write(
u"*\5\f\7\2&\'\7\6\2\2\')\5\f\7\2(&\3\2\2\2),\3\2\2\2*")
28 buf.write(
u"(\3\2\2\2*+\3\2\2\2+.\3\2\2\2,*\3\2\2\2-%\3\2\2\2-.\3")
29 buf.write(
u"\2\2\2./\3\2\2\2/\61\7\16\2\2\60\62\5\6\4\2\61\60\3\2")
30 buf.write(
u"\2\2\61\62\3\2\2\2\62\5\3\2\2\2\63\64\7\7\2\2\649\5\b")
31 buf.write(
u"\5\2\65\66\7\6\2\2\668\5\b\5\2\67\65\3\2\2\28;\3\2\2")
32 buf.write(
u"\29\67\3\2\2\29:\3\2\2\2:<\3\2\2\2;9\3\2\2\2<=\7\b\2")
33 buf.write(
u"\2=\7\3\2\2\2>?\7\n\2\2?@\7\t\2\2@A\7\5\2\2AB\7\t\2\2")
34 buf.write(
u"BC\7\13\2\2C\t\3\2\2\2DF\5\2\2\2ED\3\2\2\2FI\3\2\2\2")
35 buf.write(
u"GE\3\2\2\2GH\3\2\2\2H\13\3\2\2\2IG\3\2\2\2JV\7\17\2\2")
36 buf.write(
u"KL\7\21\2\2LQ\5\16\b\2MN\7\6\2\2NP\5\16\b\2OM\3\2\2\2")
37 buf.write(
u"PS\3\2\2\2QO\3\2\2\2QR\3\2\2\2RT\3\2\2\2SQ\3\2\2\2TU")
38 buf.write(
u"\7\22\2\2UW\3\2\2\2VK\3\2\2\2VW\3\2\2\2W\r\3\2\2\2X]")
39 buf.write(
u"\7\17\2\2Y]\7\t\2\2Z]\5\f\7\2[]\7\20\2\2\\X\3\2\2\2\\")
40 buf.write(
u"Y\3\2\2\2\\Z\3\2\2\2\\[\3\2\2\2]\17\3\2\2\2^_\7\27\2")
41 buf.write(
u"\2_`\5\4\3\2`\21\3\2\2\2\r\27\37\"*-\619GQV\\")
47 grammarFileName =
"DLVHEXParser.g4"
49 atn = ATNDeserializer().deserialize(serializedATN())
51 decisionsToDFA = [ DFA(ds, i)
for i, ds
in enumerate(atn.decisionToState) ]
53 sharedContextCache = PredictionContextCache()
55 literalNames = [
u"<INVALID>",
u"<INVALID>",
u"<INVALID>",
u"':'",
u"','",
56 u"'<'",
u"'>'",
u"<INVALID>",
u"'['",
u"']'",
u"' is '",
57 u"'{'",
u"'}'",
u"<INVALID>",
u"<INVALID>",
u"'('",
58 u"')'",
u"<INVALID>",
u"'.'",
u"<INVALID>",
u"<INVALID>",
61 symbolicNames = [
u"<INVALID>",
u"HEADER",
u"WHITE_SPACE",
u"COLON",
62 u"COMMA",
u"COST_BEGIN",
u"COST_END",
u"INTEGER",
63 u"LEVEL_BEGIN",
u"LEVEL_END",
u"GROUND_QUERY_BEGIN",
64 u"ANSWER_SET_BEGIN",
u"ANSWER_SET_END",
u"IDENTIFIER",
65 u"STRING_CONSTANT",
u"TERMS_BEGIN",
u"TERMS_END",
66 u"REASONING",
u"DOT",
u"BOOLEAN",
u"WHITESPACE_IN_GROUND_QUERY",
74 RULE_predicate_atom = 5
78 ruleNames = [
u"answer_set",
u"atoms",
u"cost",
u"level",
u"output",
79 u"predicate_atom",
u"term",
u"witness" ]
101 WHITESPACE_IN_GROUND_QUERY=20
104 def __init__(self, input, output=sys.stdout):
105 super(DLVHEXParser, self).__init__(input, output=output)
106 self.checkVersion(
"4.7")
114 def __init__(self, parser, parent=None, invokingState=-1):
119 def getRuleIndex(self):
120 return DLVHEXParser.RULE_answer_set
123 def copyFrom(self, ctx):
130 def __init__(self, parser, ctx):
134 def IDENTIFIER(self, i=None):
136 return self.getTokens(DLVHEXParser.IDENTIFIER)
138 return self.getToken(DLVHEXParser.IDENTIFIER, i)
139 def GROUND_QUERY_BEGIN(self):
140 return self.getToken(DLVHEXParser.GROUND_QUERY_BEGIN, 0)
142 return self.getToken(DLVHEXParser.REASONING, 0)
144 return self.getToken(DLVHEXParser.BOOLEAN, 0)
146 return self.getToken(DLVHEXParser.DOT, 0)
150 def COMMA(self, i=None):
152 return self.getTokens(DLVHEXParser.COMMA)
154 return self.getToken(DLVHEXParser.COMMA, i)
156 def accept(self, visitor):
157 if hasattr(visitor,
"visitGroundQuery"):
158 return visitor.visitGroundQuery(self)
160 return visitor.visitChildren(self)
165 def __init__(self, parser, ctx):
173 def accept(self, visitor):
174 if hasattr(visitor,
"visitModel"):
175 return visitor.visitModel(self)
177 return visitor.visitChildren(self)
181 def answer_set(self):
184 self.enterRule(localctx, 0, self.RULE_answer_set)
188 self._errHandler.sync(self)
189 token = self._input.LA(1)
190 if token
in [DLVHEXParser.IDENTIFIER]:
192 self.enterOuterAlt(localctx, 1)
194 self.match(DLVHEXParser.IDENTIFIER)
196 self._errHandler.sync(self)
197 _la = self._input.LA(1)
198 while _la==DLVHEXParser.COMMA:
200 self.match(DLVHEXParser.COMMA)
202 self.match(DLVHEXParser.IDENTIFIER)
204 self._errHandler.sync(self)
205 _la = self._input.LA(1)
208 self.match(DLVHEXParser.GROUND_QUERY_BEGIN)
210 self.match(DLVHEXParser.REASONING)
212 self.match(DLVHEXParser.BOOLEAN)
214 self._errHandler.sync(self)
215 token = self._input.LA(1)
216 if token
in [DLVHEXParser.DOT]:
218 self.match(DLVHEXParser.DOT)
220 elif token
in [DLVHEXParser.WITNESS_LABEL]:
225 raise NoViableAltException(self)
228 elif token
in [DLVHEXParser.ANSWER_SET_BEGIN]:
230 self.enterOuterAlt(localctx, 2)
235 raise NoViableAltException(self)
237 except RecognitionException
as re:
238 localctx.exception = re
239 self._errHandler.reportError(self, re)
240 self._errHandler.recover(self, re)
247 def __init__(self, parser, parent=None, invokingState=-1):
251 def ANSWER_SET_BEGIN(self):
252 return self.getToken(DLVHEXParser.ANSWER_SET_BEGIN, 0)
254 def ANSWER_SET_END(self):
255 return self.getToken(DLVHEXParser.ANSWER_SET_END, 0)
257 def predicate_atom(self, i=None):
268 def COMMA(self, i=None):
270 return self.getTokens(DLVHEXParser.COMMA)
272 return self.getToken(DLVHEXParser.COMMA, i)
274 def getRuleIndex(self):
275 return DLVHEXParser.RULE_atoms
277 def accept(self, visitor):
278 if hasattr(visitor,
"visitAtoms"):
279 return visitor.visitAtoms(self)
281 return visitor.visitChildren(self)
289 self.enterRule(localctx, 2, self.RULE_atoms)
292 self.enterOuterAlt(localctx, 1)
294 self.match(DLVHEXParser.ANSWER_SET_BEGIN)
296 self._errHandler.sync(self)
297 _la = self._input.LA(1)
298 if _la==DLVHEXParser.IDENTIFIER:
302 self._errHandler.sync(self)
303 _la = self._input.LA(1)
304 while _la==DLVHEXParser.COMMA:
306 self.match(DLVHEXParser.COMMA)
310 self._errHandler.sync(self)
311 _la = self._input.LA(1)
316 self.match(DLVHEXParser.ANSWER_SET_END)
318 self._errHandler.sync(self)
319 _la = self._input.LA(1)
320 if _la==DLVHEXParser.COST_BEGIN:
325 except RecognitionException
as re:
326 localctx.exception = re
327 self._errHandler.reportError(self, re)
328 self._errHandler.recover(self, re)
335 def __init__(self, parser, parent=None, invokingState=-1):
339 def COST_BEGIN(self):
340 return self.getToken(DLVHEXParser.COST_BEGIN, 0)
342 def level(self, i=None):
350 return self.getToken(DLVHEXParser.COST_END, 0)
352 def COMMA(self, i=None):
354 return self.getTokens(DLVHEXParser.COMMA)
356 return self.getToken(DLVHEXParser.COMMA, i)
358 def getRuleIndex(self):
359 return DLVHEXParser.RULE_cost
361 def accept(self, visitor):
362 if hasattr(visitor,
"visitCost"):
363 return visitor.visitCost(self)
365 return visitor.visitChildren(self)
373 self.enterRule(localctx, 4, self.RULE_cost)
376 self.enterOuterAlt(localctx, 1)
378 self.match(DLVHEXParser.COST_BEGIN)
382 self._errHandler.sync(self)
383 _la = self._input.LA(1)
384 while _la==DLVHEXParser.COMMA:
386 self.match(DLVHEXParser.COMMA)
390 self._errHandler.sync(self)
391 _la = self._input.LA(1)
394 self.match(DLVHEXParser.COST_END)
395 except RecognitionException
as re:
396 localctx.exception = re
397 self._errHandler.reportError(self, re)
398 self._errHandler.recover(self, re)
405 def __init__(self, parser, parent=None, invokingState=-1):
409 def LEVEL_BEGIN(self):
410 return self.getToken(DLVHEXParser.LEVEL_BEGIN, 0)
412 def INTEGER(self, i=None):
414 return self.getTokens(DLVHEXParser.INTEGER)
416 return self.getToken(DLVHEXParser.INTEGER, i)
419 return self.getToken(DLVHEXParser.COLON, 0)
422 return self.getToken(DLVHEXParser.LEVEL_END, 0)
424 def getRuleIndex(self):
425 return DLVHEXParser.RULE_level
427 def accept(self, visitor):
428 if hasattr(visitor,
"visitLevel"):
429 return visitor.visitLevel(self)
431 return visitor.visitChildren(self)
439 self.enterRule(localctx, 6, self.RULE_level)
441 self.enterOuterAlt(localctx, 1)
443 self.match(DLVHEXParser.LEVEL_BEGIN)
445 self.match(DLVHEXParser.INTEGER)
447 self.match(DLVHEXParser.COLON)
449 self.match(DLVHEXParser.INTEGER)
451 self.match(DLVHEXParser.LEVEL_END)
452 except RecognitionException
as re:
453 localctx.exception = re
454 self._errHandler.reportError(self, re)
455 self._errHandler.recover(self, re)
462 def __init__(self, parser, parent=None, invokingState=-1):
466 def answer_set(self, i=None):
473 def getRuleIndex(self):
474 return DLVHEXParser.RULE_output
476 def accept(self, visitor):
477 if hasattr(visitor,
"visitOutput"):
478 return visitor.visitOutput(self)
480 return visitor.visitChildren(self)
488 self.enterRule(localctx, 8, self.RULE_output)
491 self.enterOuterAlt(localctx, 1)
493 self._errHandler.sync(self)
494 _la = self._input.LA(1)
495 while _la==DLVHEXParser.ANSWER_SET_BEGIN
or _la==DLVHEXParser.IDENTIFIER:
499 self._errHandler.sync(self)
500 _la = self._input.LA(1)
502 except RecognitionException
as re:
503 localctx.exception = re
504 self._errHandler.reportError(self, re)
505 self._errHandler.recover(self, re)
512 def __init__(self, parser, parent=None, invokingState=-1):
516 def IDENTIFIER(self):
517 return self.getToken(DLVHEXParser.IDENTIFIER, 0)
519 def TERMS_BEGIN(self):
520 return self.getToken(DLVHEXParser.TERMS_BEGIN, 0)
522 def term(self, i=None):
530 return self.getToken(DLVHEXParser.TERMS_END, 0)
532 def COMMA(self, i=None):
534 return self.getTokens(DLVHEXParser.COMMA)
536 return self.getToken(DLVHEXParser.COMMA, i)
538 def getRuleIndex(self):
539 return DLVHEXParser.RULE_predicate_atom
541 def accept(self, visitor):
542 if hasattr(visitor,
"visitPredicate_atom"):
543 return visitor.visitPredicate_atom(self)
545 return visitor.visitChildren(self)
550 def predicate_atom(self):
553 self.enterRule(localctx, 10, self.RULE_predicate_atom)
556 self.enterOuterAlt(localctx, 1)
558 self.match(DLVHEXParser.IDENTIFIER)
560 self._errHandler.sync(self)
561 _la = self._input.LA(1)
562 if _la==DLVHEXParser.TERMS_BEGIN:
564 self.match(DLVHEXParser.TERMS_BEGIN)
568 self._errHandler.sync(self)
569 _la = self._input.LA(1)
570 while _la==DLVHEXParser.COMMA:
572 self.match(DLVHEXParser.COMMA)
576 self._errHandler.sync(self)
577 _la = self._input.LA(1)
580 self.match(DLVHEXParser.TERMS_END)
583 except RecognitionException
as re:
584 localctx.exception = re
585 self._errHandler.reportError(self, re)
586 self._errHandler.recover(self, re)
593 def __init__(self, parser, parent=None, invokingState=-1):
597 def IDENTIFIER(self):
598 return self.getToken(DLVHEXParser.IDENTIFIER, 0)
601 return self.getToken(DLVHEXParser.INTEGER, 0)
603 def predicate_atom(self):
607 def STRING_CONSTANT(self):
608 return self.getToken(DLVHEXParser.STRING_CONSTANT, 0)
610 def getRuleIndex(self):
611 return DLVHEXParser.RULE_term
613 def accept(self, visitor):
614 if hasattr(visitor,
"visitTerm"):
615 return visitor.visitTerm(self)
617 return visitor.visitChildren(self)
625 self.enterRule(localctx, 12, self.RULE_term)
628 self._errHandler.sync(self)
629 la_ = self._interp.adaptivePredict(self._input,10,self._ctx)
631 self.enterOuterAlt(localctx, 1)
633 self.match(DLVHEXParser.IDENTIFIER)
637 self.enterOuterAlt(localctx, 2)
639 self.match(DLVHEXParser.INTEGER)
643 self.enterOuterAlt(localctx, 3)
649 self.enterOuterAlt(localctx, 4)
651 self.match(DLVHEXParser.STRING_CONSTANT)
655 except RecognitionException
as re:
656 localctx.exception = re
657 self._errHandler.reportError(self, re)
658 self._errHandler.recover(self, re)
665 def __init__(self, parser, parent=None, invokingState=-1):
669 def WITNESS_LABEL(self):
670 return self.getToken(DLVHEXParser.WITNESS_LABEL, 0)
676 def getRuleIndex(self):
677 return DLVHEXParser.RULE_witness
679 def accept(self, visitor):
680 if hasattr(visitor,
"visitWitness"):
681 return visitor.visitWitness(self)
683 return visitor.visitChildren(self)
691 self.enterRule(localctx, 14, self.RULE_witness)
693 self.enterOuterAlt(localctx, 1)
695 self.match(DLVHEXParser.WITNESS_LABEL)
698 except RecognitionException
as re:
699 localctx.exception = re
700 self._errHandler.reportError(self, re)
701 self._errHandler.recover(self, re)