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"\30z\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\3\2\3\2\3\2\7\2&")
14 buf.write(
u"\n\2\f\2\16\2)\13\2\3\2\5\2,\n\2\3\2\3\2\3\2\5\2\61\n")
15 buf.write(
u"\2\3\3\3\3\3\3\3\3\7\3\67\n\3\f\3\16\3:\13\3\3\3\3\3")
16 buf.write(
u"\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\7\5H\n\5\f\5")
17 buf.write(
u"\16\5K\13\5\5\5M\n\5\3\5\3\5\3\6\7\6R\n\6\f\6\16\6U\13")
18 buf.write(
u"\6\3\7\3\7\3\7\3\7\3\7\7\7\\\n\7\f\7\16\7_\13\7\3\7\3")
19 buf.write(
u"\7\5\7c\n\7\3\b\3\b\3\b\3\b\3\b\3\b\3\b\7\bl\n\b\f\b")
20 buf.write(
u"\16\bo\13\b\5\bq\n\b\3\b\3\b\5\bu\n\b\3\t\3\t\3\t\3\t")
21 buf.write(
u"\2\2\n\2\4\6\b\n\f\16\20\2\2\2\u0084\2\60\3\2\2\2\4\62")
22 buf.write(
u"\3\2\2\2\6=\3\2\2\2\bC\3\2\2\2\nS\3\2\2\2\fV\3\2\2\2")
23 buf.write(
u"\16t\3\2\2\2\20v\3\2\2\2\22\27\7\16\2\2\23\24\7\r\2\2")
24 buf.write(
u"\24\26\7\16\2\2\25\23\3\2\2\2\26\31\3\2\2\2\27\25\3\2")
25 buf.write(
u"\2\2\27\30\3\2\2\2\30\32\3\2\2\2\31\27\3\2\2\2\32\33")
26 buf.write(
u"\7\t\2\2\33\34\7\24\2\2\34\37\7\26\2\2\35 \7\25\2\2\36")
27 buf.write(
u" \5\20\t\2\37\35\3\2\2\2\37\36\3\2\2\2 \61\3\2\2\2!\61")
28 buf.write(
u"\5\b\5\2\"\'\5\16\b\2#$\7\r\2\2$&\5\16\b\2%#\3\2\2\2")
29 buf.write(
u"&)\3\2\2\2\'%\3\2\2\2\'(\3\2\2\2(\61\3\2\2\2)\'\3\2\2")
30 buf.write(
u"\2*,\7\f\2\2+*\3\2\2\2+,\3\2\2\2,-\3\2\2\2-.\5\b\5\2")
31 buf.write(
u"./\5\4\3\2/\61\3\2\2\2\60\22\3\2\2\2\60!\3\2\2\2\60\"")
32 buf.write(
u"\3\2\2\2\60+\3\2\2\2\61\3\3\2\2\2\62\63\7\5\2\2\638\5")
33 buf.write(
u"\6\4\2\64\65\7\r\2\2\65\67\5\6\4\2\66\64\3\2\2\2\67:")
34 buf.write(
u"\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:8\3\2\2\2;<")
35 buf.write(
u"\7\6\2\2<\5\3\2\2\2=>\7\7\2\2>?\7\17\2\2?@\7\4\2\2@A")
36 buf.write(
u"\7\17\2\2AB\7\b\2\2B\7\3\2\2\2CL\7\n\2\2DI\5\f\7\2EF")
37 buf.write(
u"\7\r\2\2FH\5\f\7\2GE\3\2\2\2HK\3\2\2\2IG\3\2\2\2IJ\3")
38 buf.write(
u"\2\2\2JM\3\2\2\2KI\3\2\2\2LD\3\2\2\2LM\3\2\2\2MN\3\2")
39 buf.write(
u"\2\2NO\7\13\2\2O\t\3\2\2\2PR\5\2\2\2QP\3\2\2\2RU\3\2")
40 buf.write(
u"\2\2SQ\3\2\2\2ST\3\2\2\2T\13\3\2\2\2US\3\2\2\2Vb\7\16")
41 buf.write(
u"\2\2WX\7\21\2\2X]\5\16\b\2YZ\7\r\2\2Z\\\5\16\b\2[Y\3")
42 buf.write(
u"\2\2\2\\_\3\2\2\2][\3\2\2\2]^\3\2\2\2^`\3\2\2\2_]\3\2")
43 buf.write(
u"\2\2`a\7\22\2\2ac\3\2\2\2bW\3\2\2\2bc\3\2\2\2c\r\3\2")
44 buf.write(
u"\2\2du\7\16\2\2eu\7\17\2\2fu\5\f\7\2gp\7\7\2\2hm\5\16")
45 buf.write(
u"\b\2ij\7\r\2\2jl\5\16\b\2ki\3\2\2\2lo\3\2\2\2mk\3\2\2")
46 buf.write(
u"\2mn\3\2\2\2nq\3\2\2\2om\3\2\2\2ph\3\2\2\2pq\3\2\2\2")
47 buf.write(
u"qr\3\2\2\2ru\7\b\2\2su\7\20\2\2td\3\2\2\2te\3\2\2\2t")
48 buf.write(
u"f\3\2\2\2tg\3\2\2\2ts\3\2\2\2u\17\3\2\2\2vw\7\30\2\2")
49 buf.write(
u"wx\5\b\5\2x\21\3\2\2\2\20\27\37\'+\608ILS]bmpt")
55 grammarFileName =
"DLVParser.g4"
57 atn = ATNDeserializer().deserialize(serializedATN())
59 decisionsToDFA = [ DFA(ds, i)
for i, ds
in enumerate(atn.decisionToState) ]
61 sharedContextCache = PredictionContextCache()
63 literalNames = [
u"<INVALID>",
u"<INVALID>",
u"':'",
u"'Cost ([Weight:Level]): <'",
64 u"'>'",
u"'['",
u"']'",
u"' is '",
u"'{'",
u"'}'",
65 u"'Best model:'",
u"','",
u"<INVALID>",
u"<INVALID>",
66 u"<INVALID>",
u"'('",
u"')'",
u"<INVALID>",
u"<INVALID>",
67 u"'.'",
u"<INVALID>",
u"<INVALID>",
u"', evidenced by'" ]
69 symbolicNames = [
u"<INVALID>",
u"HEADER",
u"COLON",
u"COST_BEGIN",
70 u"COST_END",
u"OPEN_SQUARE_BRACKET",
u"CLOSE_SQUARE_BRACKET",
71 u"GROUND_QUERY_BEGIN",
u"MODEL_BEGIN",
u"MODEL_END",
72 u"WEIGHTED_MODEL_LABEL",
u"COMMA",
u"IDENTIFIER",
73 u"INTEGER_CONSTANT",
u"STRING_CONSTANT",
u"TERMS_BEGIN",
74 u"TERMS_END",
u"WHITESPACE",
u"REASONING",
u"DOT",
75 u"BOOLEAN",
u"WHITESPACE_IN_GROUND_QUERY",
u"WITNESS_LABEL" ]
86 ruleNames = [
u"answer_set",
u"cost",
u"cost_level",
u"model",
u"output",
87 u"predicate",
u"term",
u"witness" ]
95 CLOSE_SQUARE_BRACKET=6
99 WEIGHTED_MODEL_LABEL=10
110 WHITESPACE_IN_GROUND_QUERY=21
113 def __init__(self, input, output=sys.stdout):
114 super(DLVParser, self).__init__(input, output=output)
115 self.checkVersion(
"4.7")
123 def __init__(self, parser, parent=None, invokingState=-1):
128 def getRuleIndex(self):
129 return DLVParser.RULE_answer_set
132 def copyFrom(self, ctx):
139 def __init__(self, parser, ctx):
147 def accept(self, visitor):
148 if hasattr(visitor,
"visitSimpleModel"):
149 return visitor.visitSimpleModel(self)
151 return visitor.visitChildren(self)
156 def __init__(self, parser, ctx):
160 def IDENTIFIER(self, i=None):
162 return self.getTokens(DLVParser.IDENTIFIER)
164 return self.getToken(DLVParser.IDENTIFIER, i)
165 def GROUND_QUERY_BEGIN(self):
166 return self.getToken(DLVParser.GROUND_QUERY_BEGIN, 0)
168 return self.getToken(DLVParser.REASONING, 0)
170 return self.getToken(DLVParser.BOOLEAN, 0)
172 return self.getToken(DLVParser.DOT, 0)
176 def COMMA(self, i=None):
178 return self.getTokens(DLVParser.COMMA)
180 return self.getToken(DLVParser.COMMA, i)
182 def accept(self, visitor):
183 if hasattr(visitor,
"visitGroundQuery"):
184 return visitor.visitGroundQuery(self)
186 return visitor.visitChildren(self)
191 def __init__(self, parser, ctx):
201 def WEIGHTED_MODEL_LABEL(self):
202 return self.getToken(DLVParser.WEIGHTED_MODEL_LABEL, 0)
204 def accept(self, visitor):
205 if hasattr(visitor,
"visitWeightedModel"):
206 return visitor.visitWeightedModel(self)
208 return visitor.visitChildren(self)
213 def __init__(self, parser, ctx):
217 def term(self, i=None):
223 def COMMA(self, i=None):
225 return self.getTokens(DLVParser.COMMA)
227 return self.getToken(DLVParser.COMMA, i)
229 def accept(self, visitor):
230 if hasattr(visitor,
"visitNonGroundQuery"):
231 return visitor.visitNonGroundQuery(self)
233 return visitor.visitChildren(self)
237 def answer_set(self):
240 self.enterRule(localctx, 0, self.RULE_answer_set)
244 self._errHandler.sync(self)
245 la_ = self._interp.adaptivePredict(self._input,4,self._ctx)
248 self.enterOuterAlt(localctx, 1)
250 self.match(DLVParser.IDENTIFIER)
252 self._errHandler.sync(self)
253 _la = self._input.LA(1)
254 while _la==DLVParser.COMMA:
256 self.match(DLVParser.COMMA)
258 self.match(DLVParser.IDENTIFIER)
260 self._errHandler.sync(self)
261 _la = self._input.LA(1)
264 self.match(DLVParser.GROUND_QUERY_BEGIN)
266 self.match(DLVParser.REASONING)
268 self.match(DLVParser.BOOLEAN)
270 self._errHandler.sync(self)
271 token = self._input.LA(1)
272 if token
in [DLVParser.DOT]:
274 self.match(DLVParser.DOT)
276 elif token
in [DLVParser.WITNESS_LABEL]:
281 raise NoViableAltException(self)
287 self.enterOuterAlt(localctx, 2)
294 self.enterOuterAlt(localctx, 3)
298 self._errHandler.sync(self)
299 _la = self._input.LA(1)
300 while _la==DLVParser.COMMA:
302 self.match(DLVParser.COMMA)
306 self._errHandler.sync(self)
307 _la = self._input.LA(1)
313 self.enterOuterAlt(localctx, 4)
315 self._errHandler.sync(self)
316 _la = self._input.LA(1)
317 if _la==DLVParser.WEIGHTED_MODEL_LABEL:
319 self.match(DLVParser.WEIGHTED_MODEL_LABEL)
329 except RecognitionException
as re:
330 localctx.exception = re
331 self._errHandler.reportError(self, re)
332 self._errHandler.recover(self, re)
339 def __init__(self, parser, parent=None, invokingState=-1):
343 def COST_BEGIN(self):
344 return self.getToken(DLVParser.COST_BEGIN, 0)
346 def cost_level(self, i=None):
354 return self.getToken(DLVParser.COST_END, 0)
356 def COMMA(self, i=None):
358 return self.getTokens(DLVParser.COMMA)
360 return self.getToken(DLVParser.COMMA, i)
362 def getRuleIndex(self):
363 return DLVParser.RULE_cost
365 def accept(self, visitor):
366 if hasattr(visitor,
"visitCost"):
367 return visitor.visitCost(self)
369 return visitor.visitChildren(self)
377 self.enterRule(localctx, 2, self.RULE_cost)
380 self.enterOuterAlt(localctx, 1)
382 self.match(DLVParser.COST_BEGIN)
386 self._errHandler.sync(self)
387 _la = self._input.LA(1)
388 while _la==DLVParser.COMMA:
390 self.match(DLVParser.COMMA)
394 self._errHandler.sync(self)
395 _la = self._input.LA(1)
398 self.match(DLVParser.COST_END)
399 except RecognitionException
as re:
400 localctx.exception = re
401 self._errHandler.reportError(self, re)
402 self._errHandler.recover(self, re)
409 def __init__(self, parser, parent=None, invokingState=-1):
413 def OPEN_SQUARE_BRACKET(self):
414 return self.getToken(DLVParser.OPEN_SQUARE_BRACKET, 0)
416 def INTEGER_CONSTANT(self, i=None):
418 return self.getTokens(DLVParser.INTEGER_CONSTANT)
420 return self.getToken(DLVParser.INTEGER_CONSTANT, i)
423 return self.getToken(DLVParser.COLON, 0)
425 def CLOSE_SQUARE_BRACKET(self):
426 return self.getToken(DLVParser.CLOSE_SQUARE_BRACKET, 0)
428 def getRuleIndex(self):
429 return DLVParser.RULE_cost_level
431 def accept(self, visitor):
432 if hasattr(visitor,
"visitCost_level"):
433 return visitor.visitCost_level(self)
435 return visitor.visitChildren(self)
440 def cost_level(self):
443 self.enterRule(localctx, 4, self.RULE_cost_level)
445 self.enterOuterAlt(localctx, 1)
447 self.match(DLVParser.OPEN_SQUARE_BRACKET)
449 self.match(DLVParser.INTEGER_CONSTANT)
451 self.match(DLVParser.COLON)
453 self.match(DLVParser.INTEGER_CONSTANT)
455 self.match(DLVParser.CLOSE_SQUARE_BRACKET)
456 except RecognitionException
as re:
457 localctx.exception = re
458 self._errHandler.reportError(self, re)
459 self._errHandler.recover(self, re)
466 def __init__(self, parser, parent=None, invokingState=-1):
470 def MODEL_BEGIN(self):
471 return self.getToken(DLVParser.MODEL_BEGIN, 0)
474 return self.getToken(DLVParser.MODEL_END, 0)
476 def predicate(self, i=None):
483 def COMMA(self, i=None):
485 return self.getTokens(DLVParser.COMMA)
487 return self.getToken(DLVParser.COMMA, i)
489 def getRuleIndex(self):
490 return DLVParser.RULE_model
492 def accept(self, visitor):
493 if hasattr(visitor,
"visitModel"):
494 return visitor.visitModel(self)
496 return visitor.visitChildren(self)
504 self.enterRule(localctx, 6, self.RULE_model)
507 self.enterOuterAlt(localctx, 1)
509 self.match(DLVParser.MODEL_BEGIN)
511 self._errHandler.sync(self)
512 _la = self._input.LA(1)
513 if _la==DLVParser.IDENTIFIER:
517 self._errHandler.sync(self)
518 _la = self._input.LA(1)
519 while _la==DLVParser.COMMA:
521 self.match(DLVParser.COMMA)
525 self._errHandler.sync(self)
526 _la = self._input.LA(1)
531 self.match(DLVParser.MODEL_END)
532 except RecognitionException
as re:
533 localctx.exception = re
534 self._errHandler.reportError(self, re)
535 self._errHandler.recover(self, re)
542 def __init__(self, parser, parent=None, invokingState=-1):
546 def answer_set(self, i=None):
553 def getRuleIndex(self):
554 return DLVParser.RULE_output
556 def accept(self, visitor):
557 if hasattr(visitor,
"visitOutput"):
558 return visitor.visitOutput(self)
560 return visitor.visitChildren(self)
568 self.enterRule(localctx, 8, self.RULE_output)
571 self.enterOuterAlt(localctx, 1)
573 self._errHandler.sync(self)
574 _la = self._input.LA(1)
575 while (((_la) & ~0x3f) == 0
and ((1 << _la) & ((1 << DLVParser.OPEN_SQUARE_BRACKET) | (1 << DLVParser.MODEL_BEGIN) | (1 << DLVParser.WEIGHTED_MODEL_LABEL) | (1 << DLVParser.IDENTIFIER) | (1 << DLVParser.INTEGER_CONSTANT) | (1 << DLVParser.STRING_CONSTANT))) != 0):
579 self._errHandler.sync(self)
580 _la = self._input.LA(1)
582 except RecognitionException
as re:
583 localctx.exception = re
584 self._errHandler.reportError(self, re)
585 self._errHandler.recover(self, re)
592 def __init__(self, parser, parent=None, invokingState=-1):
596 def IDENTIFIER(self):
597 return self.getToken(DLVParser.IDENTIFIER, 0)
599 def TERMS_BEGIN(self):
600 return self.getToken(DLVParser.TERMS_BEGIN, 0)
602 def term(self, i=None):
610 return self.getToken(DLVParser.TERMS_END, 0)
612 def COMMA(self, i=None):
614 return self.getTokens(DLVParser.COMMA)
616 return self.getToken(DLVParser.COMMA, i)
618 def getRuleIndex(self):
619 return DLVParser.RULE_predicate
621 def accept(self, visitor):
622 if hasattr(visitor,
"visitPredicate"):
623 return visitor.visitPredicate(self)
625 return visitor.visitChildren(self)
633 self.enterRule(localctx, 10, self.RULE_predicate)
636 self.enterOuterAlt(localctx, 1)
638 self.match(DLVParser.IDENTIFIER)
640 self._errHandler.sync(self)
641 _la = self._input.LA(1)
642 if _la==DLVParser.TERMS_BEGIN:
644 self.match(DLVParser.TERMS_BEGIN)
648 self._errHandler.sync(self)
649 _la = self._input.LA(1)
650 while _la==DLVParser.COMMA:
652 self.match(DLVParser.COMMA)
656 self._errHandler.sync(self)
657 _la = self._input.LA(1)
660 self.match(DLVParser.TERMS_END)
663 except RecognitionException
as re:
664 localctx.exception = re
665 self._errHandler.reportError(self, re)
666 self._errHandler.recover(self, re)
673 def __init__(self, parser, parent=None, invokingState=-1):
677 def IDENTIFIER(self):
678 return self.getToken(DLVParser.IDENTIFIER, 0)
680 def INTEGER_CONSTANT(self):
681 return self.getToken(DLVParser.INTEGER_CONSTANT, 0)
687 def OPEN_SQUARE_BRACKET(self):
688 return self.getToken(DLVParser.OPEN_SQUARE_BRACKET, 0)
690 def CLOSE_SQUARE_BRACKET(self):
691 return self.getToken(DLVParser.CLOSE_SQUARE_BRACKET, 0)
693 def term(self, i=None):
700 def COMMA(self, i=None):
702 return self.getTokens(DLVParser.COMMA)
704 return self.getToken(DLVParser.COMMA, i)
706 def STRING_CONSTANT(self):
707 return self.getToken(DLVParser.STRING_CONSTANT, 0)
709 def getRuleIndex(self):
710 return DLVParser.RULE_term
712 def accept(self, visitor):
713 if hasattr(visitor,
"visitTerm"):
714 return visitor.visitTerm(self)
716 return visitor.visitChildren(self)
724 self.enterRule(localctx, 12, self.RULE_term)
728 self._errHandler.sync(self)
729 la_ = self._interp.adaptivePredict(self._input,13,self._ctx)
731 self.enterOuterAlt(localctx, 1)
733 self.match(DLVParser.IDENTIFIER)
737 self.enterOuterAlt(localctx, 2)
739 self.match(DLVParser.INTEGER_CONSTANT)
743 self.enterOuterAlt(localctx, 3)
749 self.enterOuterAlt(localctx, 4)
751 self.match(DLVParser.OPEN_SQUARE_BRACKET)
753 self._errHandler.sync(self)
754 _la = self._input.LA(1)
755 if (((_la) & ~0x3f) == 0
and ((1 << _la) & ((1 << DLVParser.OPEN_SQUARE_BRACKET) | (1 << DLVParser.IDENTIFIER) | (1 << DLVParser.INTEGER_CONSTANT) | (1 << DLVParser.STRING_CONSTANT))) != 0):
759 self._errHandler.sync(self)
760 _la = self._input.LA(1)
761 while _la==DLVParser.COMMA:
763 self.match(DLVParser.COMMA)
767 self._errHandler.sync(self)
768 _la = self._input.LA(1)
773 self.match(DLVParser.CLOSE_SQUARE_BRACKET)
777 self.enterOuterAlt(localctx, 5)
779 self.match(DLVParser.STRING_CONSTANT)
783 except RecognitionException
as re:
784 localctx.exception = re
785 self._errHandler.reportError(self, re)
786 self._errHandler.recover(self, re)
793 def __init__(self, parser, parent=None, invokingState=-1):
797 def WITNESS_LABEL(self):
798 return self.getToken(DLVParser.WITNESS_LABEL, 0)
804 def getRuleIndex(self):
805 return DLVParser.RULE_witness
807 def accept(self, visitor):
808 if hasattr(visitor,
"visitWitness"):
809 return visitor.visitWitness(self)
811 return visitor.visitChildren(self)
819 self.enterRule(localctx, 14, self.RULE_witness)
821 self.enterOuterAlt(localctx, 1)
823 self.match(DLVParser.WITNESS_LABEL)
826 except RecognitionException
as re:
827 localctx.exception = re
828 self._errHandler.reportError(self, re)
829 self._errHandler.recover(self, re)