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

CompileNumber() private method

private CompileNumber ( Number num ) : QilNode
num Number
return QilNode
        private QilNode CompileNumber(Number num)
        {
            QilNode value;

            if (num.Value != null)
            {
                // REVIEW: We may want to report a warning if any of 'level', 'count' and 'from' attributes
                // specified together with 'value'. It is ERR XT0975 in XSLT 2.0.
                value = _f.ConvertToNumber(CompileXPathExpression(num.Value));
            }
            else
            {
                QilNode countPattern = (num.Count != null) ? CompileNumberPattern(num.Count) : null;
                QilNode fromPattern = (num.From != null) ? CompileNumberPattern(num.From) : null;

                switch (num.Level)
                {
                    case NumberLevel.Single: value = PlaceMarker(countPattern, fromPattern, false); break;
                    case NumberLevel.Multiple: value = PlaceMarker(countPattern, fromPattern, true); break;
                    default:
                        Debug.Assert(num.Level == NumberLevel.Any);
                        value = PlaceMarkerAny(countPattern, fromPattern);
                        break;
                }
            }

            bool fwdCompat = num.ForwardsCompatible;
            return _f.TextCtor(_f.InvokeNumberFormat(
                value, CompileStringAvt(num.Format),
                CompileLangAttributeToLcid(num.Lang, fwdCompat),
                CompileLetterValueAttribute(num.LetterValue, fwdCompat),
                CompileGroupingSeparatorAttribute(num.GroupingSeparator, fwdCompat),
                CompileGroupingSizeAttribute(num.GroupingSize, fwdCompat)
            ));
        }
QilGenerator