sbool matchUsingFunctionNameAndPattern(FunctionNameAndPattern fp, S s, Matches m) { if (fp == null) false; S f = fp.function, pat = fp.pattern; if (eqOneOf(f, "if", "match", "match3")) ret match(pat, s, m); if f eq "matchX" ret matchX(pat, s, m); if f eq "matchX2" ret matchX2(pat, s, m); if f eq "matchX_vbar" ret matchX_vbar(pat, s, m); warn("Unknown function: " + fp); false; } sbool matchUsingFunctionNameAndPattern(FunctionNameAndPattern fp, S s) { ret matchUsingFunctionNameAndPattern(fp, s, null); }