System.Xml.Xsl.Xslt.QilGenerator.CompileAndSortMatches C# (CSharp) Method

CompileAndSortMatches() private method

private CompileAndSortMatches ( Stylesheet sheet ) : void
sheet Stylesheet
return void
        private void CompileAndSortMatches(Stylesheet sheet)
        {
            Debug.Assert(sheet.TemplateMatches.Count == 0);

            foreach (Template template in sheet.Templates)
            {
                if (template.Match != null)
                {
                    EnterScope(template);
                    QilNode result = CompileMatchPattern(template.Match);
                    if (result.NodeType == QilNodeType.Sequence)
                    {
                        QilList filters = (QilList)result;
                        for (int idx = 0; idx < filters.Count; idx++)
                        {
                            sheet.AddTemplateMatch(template, (QilLoop)filters[idx]);
                        }
                    }
                    else
                    {
                        sheet.AddTemplateMatch(template, (QilLoop)result);
                    }
                    ExitScope();
                }
            }

            sheet.SortTemplateMatches();

            foreach (Stylesheet import in sheet.Imports)
            {
                CompileAndSortMatches(import);
            }
        }
QilGenerator