def ParseIsCategory(self): """Returns a CharClass corresponding to one of the character categories or raises an error.""" if self.theChar in self.Categories: cat = self.theChar self.NextChar() if self.theChar is not None and (cat + self.theChar) in self.Categories: cat = cat + self.theChar self.NextChar() return CharClass.UCDCategory(cat) else: raise RegularExpressionError( "Expected category name [%i]" % self.pos)
return 1 class RegularExpressionError(Exception): pass sClass = CharClass(u'\x09', u'\x0A', u'\x0D', u' ') SClass = CharClass(sClass) SClass.Negate() iClass = CharClass(LetterCharClass, u'_', u':') IClass = CharClass(iClass) IClass.Negate() CClass = CharClass(NameCharClass) CClass.Negate() dClass = CharClass.UCDCategory('Nd') DClass = CharClass(dClass) DClass.Negate() WClass = CharClass(CharClass.UCDCategory( 'P'), CharClass.UCDCategory('Z'), CharClass.UCDCategory('C')) wClass = CharClass(WClass) wClass.Negate() class RegularExpressionParser(BasicParser): """A custom parser for XML schema regular expressions. The parser is initialised from a source string, the string to be parsed.""" def _REEscape(self, c=None):