private QilNode CompileMatchPattern(string pttrn)
{
Debug.Assert(pttrn != null);
XPathScanner scanner;
QilNode result;
SetEnvironmentFlags(/*allowVariables:*/false, /*allowCurrent:*/false, /*allowKey:*/true);
try
{
scanner = new XPathScanner(pttrn);
result = _ptrnParser.Parse(scanner, _ptrnBuilder);
}
catch (XslLoadException e)
{
if (_xslVersion != XslVersion.ForwardsCompatible)
{
ReportErrorInXPath(/*[XT0340]*/e);
}
result = _f.Loop(_f.For(_ptrnBuilder.FixupNode),
_f.Error(_f.String(e.Message))
);
XPathPatternBuilder.SetPriority(result, 0.5);
}
return result;
}