Home > @rushstack/tree-pattern > TreePattern > match

TreePattern.match() method

Match an input tree.

Signature:

match(root: TreeNode, captures?: ITreePatternCaptureSet): boolean;

Parameters

Parameter Type Description
root TreeNode the input tree to be matched
captures ITreePatternCaptureSet an optional object to receive any subtrees that were matched using TreePattern.tag()

Returns:

boolean

true if root matches the pattern, or false otherwise

Remarks

Return true if the root node matches the pattern. (If the root node does not match, the child nodes are not recursively tested, since for an Abstract Syntax Tree the caller is typically an efficient visitor callback that already handles that job.)

If the input matches the pattern, any tagged subtrees will be assigned to the captures target object if provided. If the input does not match, the path of the mismatched node will be assigned to captures.failPath.