22. The computer system of claim 21 , wherein the predicate expression query comprises a plurality of the predicates of the matching library, each predicate expressed as a function call in the first procedural programming language to a function that creates a matcher object for the predicate, the matcher object determining whether the predicate is true for given nodes of the input AST.
22. The computer system of claim 21 , wherein the predicate expression query comprises a plurality of the predicates of the matching library, each predicate expressed as a function call in the first procedural programming language to a function that creates a matcher object for the predicate, the matcher object determining whether the predicate is true for given nodes of the input AST. 24. The computer system of claim 22 , wherein nodes of the input AST match the predicate expression query if each of the plurality of predicates is true for the nodes.