def UnionExpr(self): UnaryExpr = self.UnaryExpr() Expr = UnaryExpr while self._peek("'\\|'", 'MUL_COMP', 'ADD_COMP', 'REL_COMP', 'EQ_COMP', "r'and'", "r'or'", 'END', "r'\\]'", "r'\\)'", "r'\\,'") == "'\\|'": self._scan("'\\|'") UnaryExpr = self.UnaryExpr() Expr = X.UnionExpr('|', Expr, UnaryExpr) return Expr
def Pattern(self): LocationPathPattern = self.LocationPathPattern() Expr = LocationPathPattern while self._peek("'\\|'", 'END') == "'\\|'": self._scan("'\\|'") LocationPathPattern = self.LocationPathPattern() Expr = X.UnionExpr('|', Expr, LocationPathPattern) END = self._scan('END') return Expr