Ejemplo n.º 1
0
 def __div__(self, other):
     '''
     Filter matched with self through other function
     '''
     if not other:
         parser = tools.skip(self.parser)
     else:
         if isinstance(other, basestring):
             parser = filters.pipe(self.parser, filters.repl(other))
         else:
             parser = filters.pipe(self.parser, other)
     return Parser(parser)
Ejemplo n.º 2
0
 def __div__(self, other):
     '''
     Filter matched with self through other function
     '''
     if not other:
         parser = tools.skip(self.parser)
     else:
         if isinstance(other, basestring):
             parser = filters.pipe(self.parser, filters.repl(other))
         else:
             parser = filters.pipe(self.parser, other)
     return Parser(parser)
Ejemplo n.º 3
0
 def __eq__(self, func):
     '''
     Match self only if other function permits so
     '''
     checker = self._checker(func)
     parser = filters.pipe(self.parser, checker)
     return Parser(parser)
Ejemplo n.º 4
0
 def __eq__(self, func):
     '''
     Match self only if other function permits so
     '''
     checker = self._checker(func)
     parser = filters.pipe(self.parser, checker)
     return Parser(parser)
Ejemplo n.º 5
0
def quoted(char=anychar, quot=charclass('\'"'), esc=lit('\\')):
    charseq = seq(but(state.check), char)
    if esc:
        escseq = seq(skip(esc), alter(quot, esc))
        charseq = alter(escseq, charseq)
    return wrap_parser('quoted')(
                surround(pipe(star(charseq), join), state.push(quot), state.pop)
                )
Ejemplo n.º 6
0
def braced(char=anychar, left=lit('('), right=lit(')'), esc=lit('\\')):
    charseq = seq(but(right), char)
    if esc:
        escseq = seq(skip(esc), alter(right, esc))
        charseq = alter(escseq, charseq)
    return wrap_parser('braced')(
                surround(pipe(star(charseq), join), left, right)
                )
Ejemplo n.º 7
0
 def __rshift__(self, other):
     '''
     Wrap self into other (or compose self with other)
     '''
     from greencss.lexer.parsers.tokens import TokenError
     def filter(token):
         try:
             return other(*token)
         except TokenError:
             return None
     parser = filters.pipe(self.parser, filter)
     return Parser(parser)
Ejemplo n.º 8
0
    def __rshift__(self, other):
        '''
        Wrap self into other (or compose self with other)
        '''
        from greencss.lexer.parsers.tokens import TokenError

        def filter(token):
            try:
                return other(*token)
            except TokenError:
                return None

        parser = filters.pipe(self.parser, filter)
        return Parser(parser)
Ejemplo n.º 9
0
 def __getslice__(self, first, last):
     parser = filters.pipe(self.parser, lambda t: t[first:last])
     return Parser(parser)
Ejemplo n.º 10
0
 def __getitem__(self, index):
     parser = filters.pipe(self.parser, filters.take(index))
     return Parser(parser)
Ejemplo n.º 11
0
 def __ne__(self, func):
     checker = self._checker(func)
     parser = filters.pipe(self.parser, lambda token: not checker(token))
     return Parser(parser)
Ejemplo n.º 12
0
 def __getslice__(self, first, last):
     parser = filters.pipe(self.parser, lambda t: t[first:last])
     return Parser(parser)
Ejemplo n.º 13
0
 def __getitem__(self, index):
     parser = filters.pipe(self.parser, filters.take(index))
     return Parser(parser)
Ejemplo n.º 14
0
 def __ne__(self, func):
     checker = self._checker(func)
     parser = filters.pipe(self.parser, lambda token: not checker(token))
     return Parser(parser)