Esempio n. 1
0
 def __init__(self, name, expr, engine, traverser=simpleTraverse):
     self._s = expr
     self._name = name
     paths = expr.split('|')
     self._subexprs = []
     add = self._subexprs.append
     for i in range(len(paths)):
         path = paths[i].lstrip()
         if _parse_expr(path):
             # This part is the start of another expression type,
             # so glue it back together and compile it.
             add(engine.compile('|'.join(paths[i:]).lstrip()))
             break
         add(SubPathExpr(path, traverser, engine)._eval)
Esempio n. 2
0
 def __init__(self, name, expr, engine, traverser=simpleTraverse):
     self._s = expr
     self._name = name
     self._hybrid = False
     paths = expr.split('|')
     self._subexprs = []
     add = self._subexprs.append
     for i, path in enumerate(paths):
         path = path.lstrip()
         if _parse_expr(path):
             # This part is the start of another expression type,
             # so glue it back together and compile it.
             add(engine.compile('|'.join(paths[i:]).lstrip()))
             self._hybrid = True
             break
         add(self.SUBEXPR_FACTORY(path, traverser, engine)._eval)