本文整理汇总了Python中antlr4.IntervalSet.IntervalSet.addRange方法的典型用法代码示例。如果您正苦于以下问题:Python IntervalSet.addRange方法的具体用法?Python IntervalSet.addRange怎么用?Python IntervalSet.addRange使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类antlr4.IntervalSet.IntervalSet
的用法示例。
在下文中一共展示了IntervalSet.addRange方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SetTransition
# 需要导入模块: from antlr4.IntervalSet import IntervalSet [as 别名]
# 或者: from antlr4.IntervalSet.IntervalSet import addRange [as 别名]
class SetTransition(Transition):
def __init__(self, target, set):
super(SetTransition, self).__init__(target)
self.serializationType = self.SET
if set is not None:
self.label = set
else:
self.label = IntervalSet()
self.label.addRange(Interval(Token.INVALID_TYPE, Token.INVALID_TYPE + 1))
def matches(self, symbol, minVocabSymbol, maxVocabSymbol):
return symbol in self.label
def __unicode__(self):
return unicode(self.label)
示例2: SetTransition
# 需要导入模块: from antlr4.IntervalSet import IntervalSet [as 别名]
# 或者: from antlr4.IntervalSet.IntervalSet import addRange [as 别名]
class SetTransition(Transition):
def __init__(self, target:ATNState, set:IntervalSet):
super().__init__(target)
self.serializationType = self.SET
if set is not None:
self.label = set
else:
self.label = IntervalSet()
self.label.addRange(range(Token.INVALID_TYPE, Token.INVALID_TYPE + 1))
def matches( self, symbol:int, minVocabSymbol:int, maxVocabSymbol:int):
return symbol in self.label
def __str__(self):
return str(self.label)
示例3: makeLabel
# 需要导入模块: from antlr4.IntervalSet import IntervalSet [as 别名]
# 或者: from antlr4.IntervalSet.IntervalSet import addRange [as 别名]
def makeLabel(self):
s = IntervalSet()
s.addRange(range(self.start, self.stop + 1))
return s
示例4: _LOOK
# 需要导入模块: from antlr4.IntervalSet import IntervalSet [as 别名]
# 或者: from antlr4.IntervalSet.IntervalSet import addRange [as 别名]
def _LOOK(self, s:ATNState, stopState:ATNState , ctx:PredictionContext, look:IntervalSet, lookBusy:set,
calledRuleStack:set, seeThruPreds:bool, addEOF:bool):
c = ATNConfig(s, 0, ctx)
if c in lookBusy:
return
lookBusy.add(c)
if s == stopState:
if ctx is None:
look.addOne(Token.EPSILON)
return
elif ctx.isEmpty() and addEOF:
look.addOne(Token.EOF)
return
if isinstance(s, RuleStopState ):
if ctx is None:
look.addOne(Token.EPSILON)
return
elif ctx.isEmpty() and addEOF:
look.addOne(Token.EOF)
return
if ctx != PredictionContext.EMPTY:
# run thru all possible stack tops in ctx
for i in range(0, len(ctx)):
returnState = self.atn.states[ctx.getReturnState(i)]
removed = returnState.ruleIndex in calledRuleStack
try:
calledRuleStack.discard(returnState.ruleIndex)
self._LOOK(returnState, stopState, ctx.getParent(i), look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
finally:
if removed:
calledRuleStack.add(returnState.ruleIndex)
return
for t in s.transitions:
if type(t) == RuleTransition:
if t.target.ruleIndex in calledRuleStack:
continue
newContext = SingletonPredictionContext.create(ctx, t.followState.stateNumber)
try:
calledRuleStack.add(t.target.ruleIndex)
self._LOOK(t.target, stopState, newContext, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
finally:
calledRuleStack.remove(t.target.ruleIndex)
elif isinstance(t, AbstractPredicateTransition ):
if seeThruPreds:
self._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
else:
look.addOne(self.HIT_PRED)
elif t.isEpsilon:
self._LOOK(t.target, stopState, ctx, look, lookBusy, calledRuleStack, seeThruPreds, addEOF)
elif type(t) == WildcardTransition:
look.addRange( range(Token.MIN_USER_TOKEN_TYPE, self.atn.maxTokenType + 1) )
else:
set_ = t.label
if set_ is not None:
if isinstance(t, NotSetTransition):
set_ = set_.complement(Token.MIN_USER_TOKEN_TYPE, self.atn.maxTokenType)
look.addSet(set_)