Example #1
0
        public static IEnumerable <CssSourceMapNode> Decode(string vlqValue, string basePath, params string[] sources)
        {
            int generatedLine = 0, previousSource, previousGeneratedColumn, previousOriginalLine, previousOriginalColumn;

            previousSource = previousGeneratedColumn = previousOriginalLine = previousOriginalColumn = 0;

            var stream = new StringReader(vlqValue);

            while (stream.Peek() != -1)
            {
                if (stream.Peek() == ',')
                {
                    stream.Read();
                    continue;
                }

                if (stream.Peek() == ';')
                {
                    stream.Read();
                    generatedLine++;
                    previousGeneratedColumn = 0;
                    continue;
                }

                var result = new CssSourceMapNode();

                // Generated column.
                result.GeneratedColumn  = previousGeneratedColumn + VlqDecode(stream);
                result.GeneratedLine    = generatedLine;
                previousGeneratedColumn = result.GeneratedColumn;

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                {
                    yield break;
                }

                // Original source.
                previousSource       += VlqDecode(stream);
                result.SourceFilePath = GetName(previousSource, basePath, sources);

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                {
                    throw new VlqException("Found a source, but no line and column");
                }

                // Original line.
                result.OriginalLine  = previousOriginalLine + VlqDecode(stream);
                previousOriginalLine = result.OriginalLine;

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                {
                    throw new VlqException("Found a source and line, but no column");
                }

                // Original column.
                result.OriginalColumn  = previousOriginalColumn + VlqDecode(stream);
                previousOriginalColumn = result.OriginalColumn;

                // Skip Original Name bit; we are not using it.
                if (stream.Peek() > 0 && !IsMappingSeparator(stream.Peek()))
                {
                    stream.Read();
                }

                yield return(result);
            }
        }
Example #2
0
        public static IEnumerable<CssSourceMapNode> Decode(string vlqValue, string basePath, params string[] sources)
        {
            int generatedLine = 0, previousSource, previousGeneratedColumn, previousOriginalLine, previousOriginalColumn;
            previousSource = previousGeneratedColumn = previousOriginalLine = previousOriginalColumn = 0;

            var stream = new StringReader(vlqValue);
            while (stream.Peek() != -1)
            {
                if (stream.Peek() == ',')
                {
                    stream.Read();
                    continue;
                }

                if (stream.Peek() == ';')
                {
                    stream.Read();
                    generatedLine++;
                    previousGeneratedColumn = 0;
                    continue;
                }

                var result = new CssSourceMapNode();

                // Generated column.
                result.GeneratedColumn = previousGeneratedColumn + VlqDecode(stream);
                result.GeneratedLine = generatedLine;
                previousGeneratedColumn = result.GeneratedColumn;

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                    yield break;

                // Original source.
                previousSource += VlqDecode(stream);
                result.SourceFilePath = GetName(previousSource, basePath, sources);

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                    throw new VlqException("Found a source, but no line and column");

                // Original line.
                result.OriginalLine = previousOriginalLine + VlqDecode(stream);
                previousOriginalLine = result.OriginalLine;

                if (stream.Peek() < 0 || IsMappingSeparator(stream.Peek()))
                    throw new VlqException("Found a source and line, but no column");

                // Original column.
                result.OriginalColumn = previousOriginalColumn + VlqDecode(stream);
                previousOriginalColumn = result.OriginalColumn;

                // Skip Original Name bit; we are not using it.
                if (stream.Peek() > 0 && !IsMappingSeparator(stream.Peek()))
                    stream.Read();

                yield return result;
            }
        }
        public static IEnumerable<CssSourceMapNode> Decode(string vlqValue, string basePath, params string[] sources)
        {
            int generatedLine = 0, previousSource, previousGeneratedColumn, previousOriginalLine, previousOriginalColumn;
            previousSource = previousGeneratedColumn = previousOriginalLine = previousOriginalColumn = 0;

            while (vlqValue.Length > 0)
            {
                if (vlqValue[0] == ',')
                {
                    vlqValue = vlqValue.Substring(1);
                    continue;
                }

                if (vlqValue[0] == ';')
                {
                    generatedLine++;
                    vlqValue = vlqValue.Substring(1);
                    previousGeneratedColumn = 0;
                    continue;
                }

                var temp = VlqDecode(vlqValue);
                var result = new CssSourceMapNode();

                // Generated column.
                result.GeneratedColumn = previousGeneratedColumn + temp.value;
                result.GeneratedLine = generatedLine;
                previousGeneratedColumn = result.GeneratedColumn;

                vlqValue = temp.rest;

                if (vlqValue.Length < 1 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                    yield break;

                // Original source.
                temp = VlqDecode(vlqValue);
                previousSource += temp.value;
                result.SourceFilePath = GetName(previousSource, basePath, sources);
                vlqValue = temp.rest;

                if (vlqValue.Length == 0 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                    throw new VlqException("Found a source, but no line and column");

                // Original line.
                temp = VlqDecode(vlqValue);
                result.OriginalLine = previousOriginalLine + temp.value;
                previousOriginalLine = result.OriginalLine;
                vlqValue = temp.rest;

                if (vlqValue.Length == 0 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                    throw new VlqException("Found a source and line, but no column");

                // Original column.
                temp = VlqDecode(vlqValue);
                result.OriginalColumn = previousOriginalColumn + temp.value;
                previousOriginalColumn = result.OriginalColumn;
                vlqValue = temp.rest;

                if (vlqValue.Length > 0 && !_mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                    // Skip Original Name bit; we are not using it.
                    vlqValue = vlqValue.Substring(1);

                yield return result;
            }
        }
Example #4
0
        public static IEnumerable <CssSourceMapNode> Decode(string vlqValue, string basePath, params string[] sources)
        {
            int generatedLine = 0, previousSource, previousGeneratedColumn, previousOriginalLine, previousOriginalColumn;

            previousSource = previousGeneratedColumn = previousOriginalLine = previousOriginalColumn = 0;

            while (vlqValue.Length > 0)
            {
                if (vlqValue[0] == ',')
                {
                    vlqValue = vlqValue.Substring(1);
                    continue;
                }

                if (vlqValue[0] == ';')
                {
                    generatedLine++;
                    vlqValue = vlqValue.Substring(1);
                    previousGeneratedColumn = 0;
                    continue;
                }

                var temp   = VlqDecode(vlqValue);
                var result = new CssSourceMapNode();

                // Generated column.
                result.GeneratedColumn  = previousGeneratedColumn + temp.value;
                result.GeneratedLine    = generatedLine;
                previousGeneratedColumn = result.GeneratedColumn;

                vlqValue = temp.rest;

                if (vlqValue.Length < 1 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                {
                    yield break;
                }

                // Original source.
                temp                  = VlqDecode(vlqValue);
                previousSource       += temp.value;
                result.SourceFilePath = GetName(previousSource, basePath, sources);
                vlqValue              = temp.rest;

                if (vlqValue.Length == 0 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                {
                    throw new VlqException("Found a source, but no line and column");
                }

                // Original line.
                temp = VlqDecode(vlqValue);
                result.OriginalLine  = previousOriginalLine + temp.value;
                previousOriginalLine = result.OriginalLine;
                vlqValue             = temp.rest;

                if (vlqValue.Length == 0 || _mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                {
                    throw new VlqException("Found a source and line, but no column");
                }

                // Original column.
                temp = VlqDecode(vlqValue);
                result.OriginalColumn  = previousOriginalColumn + temp.value;
                previousOriginalColumn = result.OriginalColumn;
                vlqValue = temp.rest;

                if (vlqValue.Length > 0 && !_mappingSeparator.IsMatch(vlqValue.Substring(0, 1)))
                {
                    // Skip Original Name bit; we are not using it.
                    vlqValue = vlqValue.Substring(1);
                }

                yield return(result);
            }
        }