Exemplo n.º 1
0
 def RelativePathExpr(self):
     StepExpr = self.StepExpr()
     steps = [StepExpr]
     while self._peek("r'\\/'", "r'\\/\\/'", "'\\|'", 'MUL_COMP', 'ADD_COMP', 'REL_COMP', 'EQ_COMP', "r'and'", "r'or'", 'END', "r'\\]'", "r'\\)'", "r'\\,'") in ["r'\\/'", "r'\\/\\/'"]:
         _token_ = self._peek("r'\\/'", "r'\\/\\/'")
         if _token_ == "r'\\/'":
             self._scan("r'\\/'")
         else:# == "r'\\/\\/'"
             self._scan("r'\\/\\/'")
             steps.append(X.AxisStep('descendant-or-self'))
         StepExpr = self.StepExpr()
         steps.append(StepExpr)
     return X.PathExpr(steps)
Exemplo n.º 2
0
 def RelativePathPattern(self):
     StepPattern = self.StepPattern()
     steps = [StepPattern]
     while self._peek("r'\\/'", "r'\\/\\/'", "'\\|'",
                      'END') in ["r'\\/'", "r'\\/\\/'"]:
         _token_ = self._peek("r'\\/'", "r'\\/\\/'")
         if _token_ == "r'\\/'":
             self._scan("r'\\/'")
         else:  # == "r'\\/\\/'"
             self._scan("r'\\/\\/'")
             steps.append(X.AxisStep('descendant-or-self'))
         StepPattern = self.StepPattern()
         steps.append(StepPattern)
     return X.PathExpr(steps)