Esempio n. 1
0
 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)
Esempio n. 2
0
            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):