EmbASP-Python
DLV2Parser.py
1 # Generated from DLV2Parser.g4 by ANTLR 4.7
2 # encoding: utf-8
3 from __future__ import print_function
4 from antlr4 import *
5 from io import StringIO
6 import sys
7 
8 def serializedATN():
9  with StringIO() as buf:
10  buf.write(u"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\3")
11  buf.write(u"\22I\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\3\2\3\2\3\2\5\2\24\n\2\3\3\3\3\7\3\30\n\3\f")
13  buf.write(u"\3\16\3\33\13\3\3\3\3\3\3\4\3\4\3\4\3\4\3\5\3\5\3\5\7")
14  buf.write(u"\5&\n\5\f\5\16\5)\13\5\5\5+\n\5\3\5\3\5\3\6\7\6\60\n")
15  buf.write(u"\6\f\6\16\6\63\13\6\3\7\3\7\3\7\3\7\3\7\7\7:\n\7\f\7")
16  buf.write(u"\16\7=\13\7\3\7\3\7\5\7A\n\7\3\b\3\b\3\b\3\b\5\bG\n\b")
17  buf.write(u"\3\b\2\2\t\2\4\6\b\n\f\16\2\2\2K\2\20\3\2\2\2\4\25\3")
18  buf.write(u"\2\2\2\6\36\3\2\2\2\b*\3\2\2\2\n\61\3\2\2\2\f\64\3\2")
19  buf.write(u"\2\2\16F\3\2\2\2\20\21\7\3\2\2\21\23\5\b\5\2\22\24\5")
20  buf.write(u"\4\3\2\23\22\3\2\2\2\23\24\3\2\2\2\24\3\3\2\2\2\25\31")
21  buf.write(u"\7\4\2\2\26\30\5\6\4\2\27\26\3\2\2\2\30\33\3\2\2\2\31")
22  buf.write(u"\27\3\2\2\2\31\32\3\2\2\2\32\34\3\2\2\2\33\31\3\2\2\2")
23  buf.write(u"\34\35\7\t\2\2\35\5\3\2\2\2\36\37\7\b\2\2\37 \7\7\2\2")
24  buf.write(u" !\7\b\2\2!\7\3\2\2\2\"\'\5\f\7\2#$\7\13\2\2$&\5\f\7")
25  buf.write(u"\2%#\3\2\2\2&)\3\2\2\2\'%\3\2\2\2\'(\3\2\2\2(+\3\2\2")
26  buf.write(u"\2)\'\3\2\2\2*\"\3\2\2\2*+\3\2\2\2+,\3\2\2\2,-\7\16\2")
27  buf.write(u"\2-\t\3\2\2\2.\60\5\2\2\2/.\3\2\2\2\60\63\3\2\2\2\61")
28  buf.write(u"/\3\2\2\2\61\62\3\2\2\2\62\13\3\2\2\2\63\61\3\2\2\2\64")
29  buf.write(u"@\7\r\2\2\65\66\7\20\2\2\66;\5\16\b\2\678\7\13\2\28:")
30  buf.write(u"\5\16\b\29\67\3\2\2\2:=\3\2\2\2;9\3\2\2\2;<\3\2\2\2<")
31  buf.write(u">\3\2\2\2=;\3\2\2\2>?\7\21\2\2?A\3\2\2\2@\65\3\2\2\2")
32  buf.write(u"@A\3\2\2\2A\r\3\2\2\2BG\7\r\2\2CG\7\f\2\2DG\5\f\7\2E")
33  buf.write(u"G\7\17\2\2FB\3\2\2\2FC\3\2\2\2FD\3\2\2\2FE\3\2\2\2G\17")
34  buf.write(u"\3\2\2\2\n\23\31\'*\61;@F")
35  return buf.getvalue()
36 
37 
38 class DLV2Parser ( Parser ):
39 
40  grammarFileName = "DLV2Parser.g4"
41 
42  atn = ATNDeserializer().deserialize(serializedATN())
43 
44  decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]
45 
46  sharedContextCache = PredictionContextCache()
47 
48  literalNames = [ u"<INVALID>", u"'{'", u"<INVALID>", u"<INVALID>", u"<INVALID>",
49  u"'@'", u"<INVALID>", u"<INVALID>", u"<INVALID>", u"','",
50  u"<INVALID>", u"<INVALID>", u"'}'", u"<INVALID>", u"'('",
51  u"')'" ]
52 
53  symbolicNames = [ u"<INVALID>", u"START", u"COST_LABEL", u"ANY", u"IGNORE",
54  u"AT", u"INTEGER", u"NEW_LINE", u"BLANK_SPACE", u"COMMA",
55  u"INTEGER_CONSTANT", u"IDENTIFIER", u"MODEL_END",
56  u"STRING_CONSTANT", u"TERMS_BEGIN", u"TERMS_END",
57  u"WHITE_SPACE" ]
58 
59  RULE_answer_set = 0
60  RULE_cost = 1
61  RULE_level = 2
62  RULE_model = 3
63  RULE_output = 4
64  RULE_predicate_atom = 5
65  RULE_term = 6
66 
67  ruleNames = [ u"answer_set", u"cost", u"level", u"model", u"output",
68  u"predicate_atom", u"term" ]
69 
70  EOF = Token.EOF
71  START=1
72  COST_LABEL=2
73  ANY=3
74  IGNORE=4
75  AT=5
76  INTEGER=6
77  NEW_LINE=7
78  BLANK_SPACE=8
79  COMMA=9
80  INTEGER_CONSTANT=10
81  IDENTIFIER=11
82  MODEL_END=12
83  STRING_CONSTANT=13
84  TERMS_BEGIN=14
85  TERMS_END=15
86  WHITE_SPACE=16
87 
88  def __init__(self, input, output=sys.stdout):
89  super(DLV2Parser, self).__init__(input, output=output)
90  self.checkVersion("4.7")
91  self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache)
92  self._predicates = None
93 
94 
95 
96  class Answer_setContext(ParserRuleContext):
97 
98  def __init__(self, parser, parent=None, invokingState=-1):
99  super(DLV2Parser.Answer_setContext, self).__init__(parent, invokingState)
100  self.parser = parser
101 
102  def START(self):
103  return self.getToken(DLV2Parser.START, 0)
104 
105  def model(self):
106  return self.getTypedRuleContext(DLV2Parser.ModelContext,0)
107 
108 
109  def cost(self):
110  return self.getTypedRuleContext(DLV2Parser.CostContext,0)
111 
112 
113  def getRuleIndex(self):
114  return DLV2Parser.RULE_answer_set
115 
116  def accept(self, visitor):
117  if hasattr(visitor, "visitAnswer_set"):
118  return visitor.visitAnswer_set(self)
119  else:
120  return visitor.visitChildren(self)
121 
122 
123 
124 
125  def answer_set(self):
126 
127  localctx = DLV2Parser.Answer_setContext(self, self._ctx, self.state)
128  self.enterRule(localctx, 0, self.RULE_answer_set)
129  self._la = 0 # Token type
130  try:
131  self.enterOuterAlt(localctx, 1)
132  self.state = 14
133  self.match(DLV2Parser.START)
134  self.state = 15
135  self.model()
136  self.state = 17
137  self._errHandler.sync(self)
138  _la = self._input.LA(1)
139  if _la==DLV2Parser.COST_LABEL:
140  self.state = 16
141  self.cost()
142 
143 
144  except RecognitionException as re:
145  localctx.exception = re
146  self._errHandler.reportError(self, re)
147  self._errHandler.recover(self, re)
148  finally:
149  self.exitRule()
150  return localctx
151 
152  class CostContext(ParserRuleContext):
153 
154  def __init__(self, parser, parent=None, invokingState=-1):
155  super(DLV2Parser.CostContext, self).__init__(parent, invokingState)
156  self.parser = parser
157 
158  def COST_LABEL(self):
159  return self.getToken(DLV2Parser.COST_LABEL, 0)
160 
161  def NEW_LINE(self):
162  return self.getToken(DLV2Parser.NEW_LINE, 0)
163 
164  def level(self, i=None):
165  if i is None:
166  return self.getTypedRuleContexts(DLV2Parser.LevelContext)
167  else:
168  return self.getTypedRuleContext(DLV2Parser.LevelContext,i)
169 
170 
171  def getRuleIndex(self):
172  return DLV2Parser.RULE_cost
173 
174  def accept(self, visitor):
175  if hasattr(visitor, "visitCost"):
176  return visitor.visitCost(self)
177  else:
178  return visitor.visitChildren(self)
179 
180 
181 
182 
183  def cost(self):
184 
185  localctx = DLV2Parser.CostContext(self, self._ctx, self.state)
186  self.enterRule(localctx, 2, self.RULE_cost)
187  self._la = 0 # Token type
188  try:
189  self.enterOuterAlt(localctx, 1)
190  self.state = 19
191  self.match(DLV2Parser.COST_LABEL)
192  self.state = 23
193  self._errHandler.sync(self)
194  _la = self._input.LA(1)
195  while _la==DLV2Parser.INTEGER:
196  self.state = 20
197  self.level()
198  self.state = 25
199  self._errHandler.sync(self)
200  _la = self._input.LA(1)
201 
202  self.state = 26
203  self.match(DLV2Parser.NEW_LINE)
204  except RecognitionException as re:
205  localctx.exception = re
206  self._errHandler.reportError(self, re)
207  self._errHandler.recover(self, re)
208  finally:
209  self.exitRule()
210  return localctx
211 
212  class LevelContext(ParserRuleContext):
213 
214  def __init__(self, parser, parent=None, invokingState=-1):
215  super(DLV2Parser.LevelContext, self).__init__(parent, invokingState)
216  self.parser = parser
217 
218  def INTEGER(self, i=None):
219  if i is None:
220  return self.getTokens(DLV2Parser.INTEGER)
221  else:
222  return self.getToken(DLV2Parser.INTEGER, i)
223 
224  def AT(self):
225  return self.getToken(DLV2Parser.AT, 0)
226 
227  def getRuleIndex(self):
228  return DLV2Parser.RULE_level
229 
230  def accept(self, visitor):
231  if hasattr(visitor, "visitLevel"):
232  return visitor.visitLevel(self)
233  else:
234  return visitor.visitChildren(self)
235 
236 
237 
238 
239  def level(self):
240 
241  localctx = DLV2Parser.LevelContext(self, self._ctx, self.state)
242  self.enterRule(localctx, 4, self.RULE_level)
243  try:
244  self.enterOuterAlt(localctx, 1)
245  self.state = 28
246  self.match(DLV2Parser.INTEGER)
247  self.state = 29
248  self.match(DLV2Parser.AT)
249  self.state = 30
250  self.match(DLV2Parser.INTEGER)
251  except RecognitionException as re:
252  localctx.exception = re
253  self._errHandler.reportError(self, re)
254  self._errHandler.recover(self, re)
255  finally:
256  self.exitRule()
257  return localctx
258 
259  class ModelContext(ParserRuleContext):
260 
261  def __init__(self, parser, parent=None, invokingState=-1):
262  super(DLV2Parser.ModelContext, self).__init__(parent, invokingState)
263  self.parser = parser
264 
265  def MODEL_END(self):
266  return self.getToken(DLV2Parser.MODEL_END, 0)
267 
268  def predicate_atom(self, i=None):
269  if i is None:
270  return self.getTypedRuleContexts(DLV2Parser.Predicate_atomContext)
271  else:
272  return self.getTypedRuleContext(DLV2Parser.Predicate_atomContext,i)
273 
274 
275  def COMMA(self, i=None):
276  if i is None:
277  return self.getTokens(DLV2Parser.COMMA)
278  else:
279  return self.getToken(DLV2Parser.COMMA, i)
280 
281  def getRuleIndex(self):
282  return DLV2Parser.RULE_model
283 
284  def accept(self, visitor):
285  if hasattr(visitor, "visitModel"):
286  return visitor.visitModel(self)
287  else:
288  return visitor.visitChildren(self)
289 
290 
291 
292 
293  def model(self):
294 
295  localctx = DLV2Parser.ModelContext(self, self._ctx, self.state)
296  self.enterRule(localctx, 6, self.RULE_model)
297  self._la = 0 # Token type
298  try:
299  self.enterOuterAlt(localctx, 1)
300  self.state = 40
301  self._errHandler.sync(self)
302  _la = self._input.LA(1)
303  if _la==DLV2Parser.IDENTIFIER:
304  self.state = 32
305  self.predicate_atom()
306  self.state = 37
307  self._errHandler.sync(self)
308  _la = self._input.LA(1)
309  while _la==DLV2Parser.COMMA:
310  self.state = 33
311  self.match(DLV2Parser.COMMA)
312  self.state = 34
313  self.predicate_atom()
314  self.state = 39
315  self._errHandler.sync(self)
316  _la = self._input.LA(1)
317 
318 
319 
320  self.state = 42
321  self.match(DLV2Parser.MODEL_END)
322  except RecognitionException as re:
323  localctx.exception = re
324  self._errHandler.reportError(self, re)
325  self._errHandler.recover(self, re)
326  finally:
327  self.exitRule()
328  return localctx
329 
330  class OutputContext(ParserRuleContext):
331 
332  def __init__(self, parser, parent=None, invokingState=-1):
333  super(DLV2Parser.OutputContext, self).__init__(parent, invokingState)
334  self.parser = parser
335 
336  def answer_set(self, i=None):
337  if i is None:
338  return self.getTypedRuleContexts(DLV2Parser.Answer_setContext)
339  else:
340  return self.getTypedRuleContext(DLV2Parser.Answer_setContext,i)
341 
342 
343  def getRuleIndex(self):
344  return DLV2Parser.RULE_output
345 
346  def accept(self, visitor):
347  if hasattr(visitor, "visitOutput"):
348  return visitor.visitOutput(self)
349  else:
350  return visitor.visitChildren(self)
351 
352 
353 
354 
355  def output(self):
356 
357  localctx = DLV2Parser.OutputContext(self, self._ctx, self.state)
358  self.enterRule(localctx, 8, self.RULE_output)
359  self._la = 0 # Token type
360  try:
361  self.enterOuterAlt(localctx, 1)
362  self.state = 47
363  self._errHandler.sync(self)
364  _la = self._input.LA(1)
365  while _la==DLV2Parser.START:
366  self.state = 44
367  self.answer_set()
368  self.state = 49
369  self._errHandler.sync(self)
370  _la = self._input.LA(1)
371 
372  except RecognitionException as re:
373  localctx.exception = re
374  self._errHandler.reportError(self, re)
375  self._errHandler.recover(self, re)
376  finally:
377  self.exitRule()
378  return localctx
379 
380  class Predicate_atomContext(ParserRuleContext):
381 
382  def __init__(self, parser, parent=None, invokingState=-1):
383  super(DLV2Parser.Predicate_atomContext, self).__init__(parent, invokingState)
384  self.parser = parser
385 
386  def IDENTIFIER(self):
387  return self.getToken(DLV2Parser.IDENTIFIER, 0)
388 
389  def TERMS_BEGIN(self):
390  return self.getToken(DLV2Parser.TERMS_BEGIN, 0)
391 
392  def term(self, i=None):
393  if i is None:
394  return self.getTypedRuleContexts(DLV2Parser.TermContext)
395  else:
396  return self.getTypedRuleContext(DLV2Parser.TermContext,i)
397 
398 
399  def TERMS_END(self):
400  return self.getToken(DLV2Parser.TERMS_END, 0)
401 
402  def COMMA(self, i=None):
403  if i is None:
404  return self.getTokens(DLV2Parser.COMMA)
405  else:
406  return self.getToken(DLV2Parser.COMMA, i)
407 
408  def getRuleIndex(self):
409  return DLV2Parser.RULE_predicate_atom
410 
411  def accept(self, visitor):
412  if hasattr(visitor, "visitPredicate_atom"):
413  return visitor.visitPredicate_atom(self)
414  else:
415  return visitor.visitChildren(self)
416 
417 
418 
419 
420  def predicate_atom(self):
421 
422  localctx = DLV2Parser.Predicate_atomContext(self, self._ctx, self.state)
423  self.enterRule(localctx, 10, self.RULE_predicate_atom)
424  self._la = 0 # Token type
425  try:
426  self.enterOuterAlt(localctx, 1)
427  self.state = 50
428  self.match(DLV2Parser.IDENTIFIER)
429  self.state = 62
430  self._errHandler.sync(self)
431  _la = self._input.LA(1)
432  if _la==DLV2Parser.TERMS_BEGIN:
433  self.state = 51
434  self.match(DLV2Parser.TERMS_BEGIN)
435  self.state = 52
436  self.term()
437  self.state = 57
438  self._errHandler.sync(self)
439  _la = self._input.LA(1)
440  while _la==DLV2Parser.COMMA:
441  self.state = 53
442  self.match(DLV2Parser.COMMA)
443  self.state = 54
444  self.term()
445  self.state = 59
446  self._errHandler.sync(self)
447  _la = self._input.LA(1)
448 
449  self.state = 60
450  self.match(DLV2Parser.TERMS_END)
451 
452 
453  except RecognitionException as re:
454  localctx.exception = re
455  self._errHandler.reportError(self, re)
456  self._errHandler.recover(self, re)
457  finally:
458  self.exitRule()
459  return localctx
460 
461  class TermContext(ParserRuleContext):
462 
463  def __init__(self, parser, parent=None, invokingState=-1):
464  super(DLV2Parser.TermContext, self).__init__(parent, invokingState)
465  self.parser = parser
466 
467  def IDENTIFIER(self):
468  return self.getToken(DLV2Parser.IDENTIFIER, 0)
469 
470  def INTEGER_CONSTANT(self):
471  return self.getToken(DLV2Parser.INTEGER_CONSTANT, 0)
472 
473  def predicate_atom(self):
474  return self.getTypedRuleContext(DLV2Parser.Predicate_atomContext,0)
475 
476 
477  def STRING_CONSTANT(self):
478  return self.getToken(DLV2Parser.STRING_CONSTANT, 0)
479 
480  def getRuleIndex(self):
481  return DLV2Parser.RULE_term
482 
483  def accept(self, visitor):
484  if hasattr(visitor, "visitTerm"):
485  return visitor.visitTerm(self)
486  else:
487  return visitor.visitChildren(self)
488 
489 
490 
491 
492  def term(self):
493 
494  localctx = DLV2Parser.TermContext(self, self._ctx, self.state)
495  self.enterRule(localctx, 12, self.RULE_term)
496  try:
497  self.state = 68
498  self._errHandler.sync(self)
499  la_ = self._interp.adaptivePredict(self._input,7,self._ctx)
500  if la_ == 1:
501  self.enterOuterAlt(localctx, 1)
502  self.state = 64
503  self.match(DLV2Parser.IDENTIFIER)
504  pass
505 
506  elif la_ == 2:
507  self.enterOuterAlt(localctx, 2)
508  self.state = 65
509  self.match(DLV2Parser.INTEGER_CONSTANT)
510  pass
511 
512  elif la_ == 3:
513  self.enterOuterAlt(localctx, 3)
514  self.state = 66
515  self.predicate_atom()
516  pass
517 
518  elif la_ == 4:
519  self.enterOuterAlt(localctx, 4)
520  self.state = 67
521  self.match(DLV2Parser.STRING_CONSTANT)
522  pass
523 
524 
525  except RecognitionException as re:
526  localctx.exception = re
527  self._errHandler.reportError(self, re)
528  self._errHandler.recover(self, re)
529  finally:
530  self.exitRule()
531  return localctx
532 
533 
534 
535 
536 
parsers.asp.dlv2.DLV2Parser.DLV2Parser.sharedContextCache
sharedContextCache
Definition: DLV2Parser.py:46
parsers.asp.dlv2.DLV2Parser.DLV2Parser._predicates
_predicates
Definition: DLV2Parser.py:92
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Answer_setContext
Definition: DLV2Parser.py:96
parsers.asp.dlv2.DLV2Parser.DLV2Parser.ModelContext.parser
parser
Definition: DLV2Parser.py:263
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Answer_setContext.cost
def cost(self)
Definition: DLV2Parser.py:109
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Predicate_atomContext.parser
parser
Definition: DLV2Parser.py:384
parsers.asp.dlv2.DLV2Parser.DLV2Parser.ModelContext
Definition: DLV2Parser.py:259
parsers.asp.dlv2.DLV2Parser.DLV2Parser.TermContext.parser
parser
Definition: DLV2Parser.py:465
parsers.asp.dlv2.DLV2Parser.DLV2Parser.OutputContext.parser
parser
Definition: DLV2Parser.py:334
parsers.asp.dlv2.DLV2Parser.DLV2Parser.TermContext.predicate_atom
def predicate_atom(self)
Definition: DLV2Parser.py:473
parsers.asp.dlv2.DLV2Parser.DLV2Parser.LevelContext.parser
parser
Definition: DLV2Parser.py:216
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Predicate_atomContext.term
def term(self, i=None)
Definition: DLV2Parser.py:392
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Answer_setContext.parser
parser
Definition: DLV2Parser.py:100
parsers.asp.dlv2.DLV2Parser.DLV2Parser.LevelContext
Definition: DLV2Parser.py:212
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Predicate_atomContext
Definition: DLV2Parser.py:380
parsers.asp.dlv2.DLV2Parser.DLV2Parser.TermContext
Definition: DLV2Parser.py:461
parsers.asp.dlv2.DLV2Parser.DLV2Parser.Answer_setContext.model
def model(self)
Definition: DLV2Parser.py:105
parsers.asp.dlv2.DLV2Parser.DLV2Parser.OutputContext.answer_set
def answer_set(self, i=None)
Definition: DLV2Parser.py:336
parsers.asp.dlv2.DLV2Parser.DLV2Parser.OutputContext
Definition: DLV2Parser.py:330
parsers.asp.dlv2.DLV2Parser.DLV2Parser.CostContext
Definition: DLV2Parser.py:152
parsers.asp.dlv2.DLV2Parser.DLV2Parser.atn
atn
Definition: DLV2Parser.py:42
parsers.asp.dlv2.DLV2Parser.DLV2Parser
Definition: DLV2Parser.py:38
parsers.asp.dlv2.DLV2Parser.DLV2Parser._interp
_interp
Definition: DLV2Parser.py:91
parsers.asp.dlv2.DLV2Parser.DLV2Parser.CostContext.parser
parser
Definition: DLV2Parser.py:156
parsers.asp.dlv2.DLV2Parser.DLV2Parser.CostContext.level
def level(self, i=None)
Definition: DLV2Parser.py:164
parsers.asp.dlv2.DLV2Parser.DLV2Parser.ModelContext.predicate_atom
def predicate_atom(self, i=None)
Definition: DLV2Parser.py:268
parsers.asp.dlv2.DLV2Parser.DLV2Parser.decisionsToDFA
list decisionsToDFA
Definition: DLV2Parser.py:44