def activate(self, ruleName, window=0, exclusive=None, noError=0): if ruleName not in self.validRules: raise gramparser.GrammarError( "rule %s was not exported in the grammar" % ruleName, self.scanObj) if type(ruleName) != six.binary_type: raise gramparser.GrammarError( 'GrammarBase, wrong type in activate, %s (%s)' % (ruleName, type(ruleName)), self.scanObj) if ruleName in self.activeRules: if window == self.activeRules[ruleName]: print 'rule %s already active for window %s' % (ruleName, window) return else: print 'change rule %s from window %s to window %s' % ( ruleName, self.activeRules[ruleName], window) self.gramObj.deactivate(ruleName) if debugLoad: print 'activate rule %s (window: %s)' % (ruleName, window) self.gramObj.activate(ruleName, window) self.activeRules[ruleName] = window if not exclusive is None: if debugLoad: print 'set exclusive mode to %s for rule %s' % (exclusive, ruleName) self.setExclusive(exclusive) pass
def deactivate(self, ruleName, noError=0): if ruleName not in self.validRules: if noError: return raise gramparser.GrammarError( "rule %s was not exported in the grammar" % ruleName, self.scanObj) if ruleName not in self.activeRules: if noError: return raise gramparser.GrammarError("rule %s is not active", self.scanObj) self.gramObj.deactivate(ruleName) self.activeRules.remove(ruleName)
def activate(self, ruleName, window=0, exclusive=None, noError=0): if ruleName not in self.validRules: raise gramparser.GrammarError( "rule %s was not exported in the grammar" % ruleName, self.scanObj) if ruleName in self.activeRules: if noError: return None raise gramparser.GrammarError( "rule %s is already active" % ruleName, self.scanObj) self.gramObj.activate(ruleName, window) self.activeRules.append(ruleName) if exclusive != None: self.gramObj.setExclusive(exclusive)
def deactivate(self, ruleName, noError=0): if type(ruleName) == six.text_type: ruleName = utilsqh.convertToBinary(ruleName) if ruleName not in self.validRules: if noError: return if type(ruleName) != six.binary_type: print 'GrammarBase, deactivate, %s (%s)'% (ruleName, type(ruleName)) raise gramparser.GrammarError( "rule %s (%s) was not exported in the grammar" % ruleName, type(ruleName), self.scanObj) if ruleName not in self.activeRules: if noError: return raise gramparser.GrammarError( "rule %s is not active", self.scanObj) if debugLoad: print 'deactivate rule %s'% ruleName self.gramObj.deactivate(ruleName) del self.activeRules[ruleName]
def emptyList(self, listName): if type(listName) == six.text_type: listName = utilsqh.convertToBinary(listName) if listName not in self.validLists: raise gramparser.GrammarError( "list %s was not defined in the grammar" % listName, self.scanObj) self.gramObj.emptyList(listName)
def appendList(self, listName, words): if listName not in self.validLists: raise gramparser.GrammarError( "list %s was not defined in the grammar" % listName, self.scanObj) if type(words) == type(""): self.gramObj.appendList(listName, words) else: for x in words: self.gramObj.appendList(listName, x)
def appendList(self, listName, words): listName = utilsqh.convertToBinary(listName) if listName not in self.validLists: raise gramparser.GrammarError( "list %s was not defined in the grammar" % listName , self.scanObj) if type(words) in (six.binary_type, six.text_type): words = utilsqh.convertToBinary(words) self.gramObj.appendList(listName,words) else: for x in words: if type(x) == six.text_type: x = utilsqh.convertToBinary(x) self.gramObj.appendList(listName,x)
def activateSet(self, ruleNames, window=0, exclusive=None): if not type(ruleNames) in (types.ListType, types.TupleType): raise TypeError( "activateSet, ruleNames (%s) must be a list or a tuple, not: %s" % ( ` ruleNames `, type(ruleNames))) for x in copy.copy(self.activeRules): if not x in ruleNames: self.gramObj.deactivate(x) self.activeRules.remove(x) for x in ruleNames: if x not in self.validRules: raise gramparser.GrammarError( "rule %s was not exported in the grammar" % x, self.scanObj) if not x in self.activeRules: self.gramObj.activate(x, window) self.activeRules.append(x) if exclusive != None: self.gramObj.setExclusive(exclusive)
def emptyList(self, listName): if listName not in self.validLists: raise gramparser.GrammarError( "list %s was not defined in the grammar" % listName, self.scanObj) self.gramObj.emptyList(listName)