def ParseIsCategory(self): """Returns a CharClass corresponding to one of the character categories or raises an error.""" if self.the_char in self.Categories: cat = self.the_char self.next_char() if self.the_char is not None and (cat + self.the_char) in self.Categories: cat = cat + self.the_char self.next_char() return CharClass.ucd_category(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.ucd_category('Nd') DClass = CharClass(dClass) DClass.negate() WClass = CharClass(CharClass.ucd_category( 'P'), CharClass.ucd_category('Z'), CharClass.ucd_category('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):