def testLetSubexprEach(self): query = "each Process/children matches Process/command is 'foo'" expected = expression.LetEach( expression.Binding("Process/children"), expression.Equivalence(expression.Binding("Process/command"), expression.Literal("foo"))) self.assertQueryMatches(query, expected)
def TransformLetEach(let, **kwargs): if not isinstance(let, expression.Let): raise ValueError("'each' must be followed by a 'matches' expression.") context, expr = let.children return expression.LetEach(context, expr, **kwargs)