diff options
Diffstat (limited to 'node_modules/scss-tokenizer/lib')
-rw-r--r-- | node_modules/scss-tokenizer/lib/entry.js | 21 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/input.js | 57 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/previous-map.js | 105 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/tokenize-comment.js | 148 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/tokenize-interpolant.js | 303 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/tokenize-string.js | 130 | ||||
-rw-r--r-- | node_modules/scss-tokenizer/lib/tokenize.js | 302 |
7 files changed, 0 insertions, 1066 deletions
diff --git a/node_modules/scss-tokenizer/lib/entry.js b/node_modules/scss-tokenizer/lib/entry.js deleted file mode 100644 index 282c6b6..0000000 --- a/node_modules/scss-tokenizer/lib/entry.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -exports.__esModule = true; - -var _input = require('./input'); - -var _input2 = _interopRequireDefault(_input); - -var _tokenize = require('./tokenize'); - -var _tokenize2 = _interopRequireDefault(_tokenize); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var scss = {}; -scss.tokenize = function (css) { - var input = new _input2.default(css); - return (0, _tokenize2.default)(input); -}; - -exports.default = scss;
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/input.js b/node_modules/scss-tokenizer/lib/input.js deleted file mode 100644 index ffbc009..0000000 --- a/node_modules/scss-tokenizer/lib/input.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -exports.__esModule = true; - -var _previousMap = require('./previous-map'); - -var _previousMap2 = _interopRequireDefault(_previousMap); - -var _path = require('path'); - -var _path2 = _interopRequireDefault(_path); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var sequence = 0; - -var Input = function () { - function Input(css) { - var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - _classCallCheck(this, Input); - - this.css = css.toString(); - - if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { - this.css = this.css.slice(1); - } - - if (opts.from) this.file = _path2.default.resolve(opts.from); - - var map = new _previousMap2.default(this.css, opts, this.id); - if (map.text) { - this.map = map; - var file = map.consumer().file; - if (!this.file && file) this.file = this.mapResolve(file); - } - - if (this.file) { - this.from = this.file; - } else { - sequence += 1; - this.id = '<input css ' + sequence + '>'; - this.from = this.id; - } - if (this.map) this.map.file = this.from; - } - - Input.prototype.mapResolve = function mapResolve(file) { - return _path2.default.resolve(this.map.consumer().sourceRoot || '.', file); - }; - - return Input; -}(); - -exports.default = Input;
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/previous-map.js b/node_modules/scss-tokenizer/lib/previous-map.js deleted file mode 100644 index 034e9ca..0000000 --- a/node_modules/scss-tokenizer/lib/previous-map.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; - -exports.__esModule = true; - -var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; - -var _jsBase = require('js-base64'); - -var _sourceMap = require('source-map'); - -var _sourceMap2 = _interopRequireDefault(_sourceMap); - -var _path = require('path'); - -var _path2 = _interopRequireDefault(_path); - -var _fs = require('fs'); - -var _fs2 = _interopRequireDefault(_fs); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var PreviousMap = function () { - function PreviousMap(css, opts) { - _classCallCheck(this, PreviousMap); - - this.loadAnnotation(css); - this.inline = this.startWith(this.annotation, 'data:'); - - var prev = opts.map ? opts.map.prev : undefined; - var text = this.loadMap(opts.from, prev); - if (text) this.text = text; - } - - PreviousMap.prototype.consumer = function consumer() { - if (!this.consumerCache) { - this.consumerCache = new _sourceMap2.default.SourceMapConsumer(this.text); - } - return this.consumerCache; - }; - - PreviousMap.prototype.withContent = function withContent() { - return !!(this.consumer().sourcesContent && this.consumer().sourcesContent.length > 0); - }; - - PreviousMap.prototype.startWith = function startWith(string, start) { - if (!string) return false; - return string.substr(0, start.length) === start; - }; - - PreviousMap.prototype.loadAnnotation = function loadAnnotation(css) { - var match = css.match(/\/\*\s*# sourceMappingURL=(.*)\s*\*\//); - if (match) this.annotation = match[1].trim(); - }; - - PreviousMap.prototype.decodeInline = function decodeInline(text) { - var uri = 'data:application/json,'; - var base64 = 'data:application/json;base64,'; - - if (this.startWith(text, uri)) { - return decodeURIComponent(text.substr(uri.length)); - } else if (this.startWith(text, base64)) { - return _jsBase.Base64.decode(text.substr(base64.length)); - } else { - var encoding = text.match(/data:application\/json;([^,]+),/)[1]; - throw new Error('Unsupported source map encoding ' + encoding); - } - }; - - PreviousMap.prototype.loadMap = function loadMap(file, prev) { - if (prev === false) return false; - - if (prev) { - if (typeof prev === 'string') { - return prev; - } else if (prev instanceof _sourceMap2.default.SourceMapConsumer) { - return _sourceMap2.default.SourceMapGenerator.fromSourceMap(prev).toString(); - } else if (prev instanceof _sourceMap2.default.SourceMapGenerator) { - return prev.toString(); - } else if ((typeof prev === 'undefined' ? 'undefined' : _typeof(prev)) === 'object' && prev.mappings) { - return JSON.stringify(prev); - } else { - throw new Error('Unsupported previous source map format: ' + prev.toString()); - } - } else if (this.inline) { - return this.decodeInline(this.annotation); - } else if (this.annotation) { - var map = this.annotation; - if (file) map = _path2.default.join(_path2.default.dirname(file), map); - - this.root = _path2.default.dirname(map); - if (_fs2.default.existsSync && _fs2.default.existsSync(map)) { - return _fs2.default.readFileSync(map, 'utf-8').toString().trim(); - } else { - return false; - } - } - }; - - return PreviousMap; -}(); - -exports.default = PreviousMap;
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/tokenize-comment.js b/node_modules/scss-tokenizer/lib/tokenize-comment.js deleted file mode 100644 index ade9717..0000000 --- a/node_modules/scss-tokenizer/lib/tokenize-comment.js +++ /dev/null @@ -1,148 +0,0 @@ -'use strict'; - -exports.__esModule = true; -exports.default = tokenize; - -var _input = require('./input'); - -var _input2 = _interopRequireDefault(_input); - -var _tokenizeString = require('./tokenize-string'); - -var _tokenizeString2 = _interopRequireDefault(_tokenizeString); - -var _tokenizeInterpolant2 = require('./tokenize-interpolant'); - -var _tokenizeInterpolant3 = _interopRequireDefault(_tokenizeInterpolant2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var newline = '\n'.charCodeAt(0), - space = ' '.charCodeAt(0), - feed = '\f'.charCodeAt(0), - tab = '\t'.charCodeAt(0), - cr = '\r'.charCodeAt(0), - hash = '#'.charCodeAt(0), - backslash = '\\'.charCodeAt(0), - slash = '/'.charCodeAt(0), - openCurly = '{'.charCodeAt(0), - closeCurly = '}'.charCodeAt(0), - asterisk = '*'.charCodeAt(0), - wordEnd = /[ \n\t\r\(\)\{\},:;@!'"\\]|\*(?=\/)|#(?={)/g; - -function tokenize(input, l, p) { - var tokens = []; - var css = input.css.valueOf(); - - var code = void 0, - next = void 0, - lines = void 0, - last = void 0, - content = void 0, - escape = void 0, - nextLine = void 0, - nextOffset = void 0, - escaped = void 0, - escapePos = void 0, - inInterpolant = void 0, - inComment = void 0, - inString = void 0; - - var length = css.length; - var offset = -1; - var line = l || 1; - var pos = p || 0; - - loop: while (pos < length) { - code = css.charCodeAt(pos); - - if (code === newline) { - offset = pos; - line += 1; - } - - switch (code) { - case space: - case tab: - case cr: - case feed: - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - if (code === newline) { - offset = next; - line += 1; - } - } while (code === space || code === tab || code === cr || code === feed); - - tokens.push(['space', css.slice(pos, next)]); - pos = next - 1; - break; - - case newline: - tokens.push(['newline', '\n', line, pos - offset]); - break; - - case closeCurly: - tokens.push(['endInterpolant', '}', line, pos - offset]); - break; - - case backslash: - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === backslash) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== slash && code !== space && code !== newline && code !== tab && code !== cr && code !== feed) { - next += 1; - } - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - pos = next; - break; - - default: - - if (code === asterisk && css.charCodeAt(pos + 1) === slash) { - next = pos; - pos = next - 1; - break loop; - } - - if (code === hash && css.charCodeAt(pos + 1) === openCurly) { - tokens.push(['startInterpolant', '#{', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeInterpolant = (0, _tokenizeInterpolant3.default)(input, line, next + 1), - t = _tokenizeInterpolant.tokens, - _p = _tokenizeInterpolant.pos; - - tokens = tokens.concat(t); - next = _p; - - pos = next; - break; - } - - wordEnd.lastIndex = pos + 1; - wordEnd.test(css); - if (wordEnd.lastIndex === 0) { - next = css.length - 1; - } else { - next = wordEnd.lastIndex - 2; - } - - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - - break; - } - - pos++; - } - - return { tokens: tokens, line: line, pos: pos, offset: offset }; -}
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/tokenize-interpolant.js b/node_modules/scss-tokenizer/lib/tokenize-interpolant.js deleted file mode 100644 index 415771f..0000000 --- a/node_modules/scss-tokenizer/lib/tokenize-interpolant.js +++ /dev/null @@ -1,303 +0,0 @@ -'use strict'; - -exports.__esModule = true; -exports.default = tokenize; - -var _input = require('./input'); - -var _input2 = _interopRequireDefault(_input); - -var _tokenizeString2 = require('./tokenize-string'); - -var _tokenizeString3 = _interopRequireDefault(_tokenizeString2); - -var _tokenizeComment2 = require('./tokenize-comment'); - -var _tokenizeComment3 = _interopRequireDefault(_tokenizeComment2); - -var _tokenizeInterpolant2 = require('./tokenize-interpolant'); - -var _tokenizeInterpolant3 = _interopRequireDefault(_tokenizeInterpolant2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var singleQuote = "'".charCodeAt(0), - doubleQuote = '"'.charCodeAt(0), - dollar = '$'.charCodeAt(0), - hash = '#'.charCodeAt(0), - backslash = '\\'.charCodeAt(0), - slash = '/'.charCodeAt(0), - newline = '\n'.charCodeAt(0), - space = ' '.charCodeAt(0), - feed = '\f'.charCodeAt(0), - tab = '\t'.charCodeAt(0), - cr = '\r'.charCodeAt(0), - openBracket = '('.charCodeAt(0), - closeBracket = ')'.charCodeAt(0), - openCurly = '{'.charCodeAt(0), - closeCurly = '}'.charCodeAt(0), - semicolon = ';'.charCodeAt(0), - asterisk = '*'.charCodeAt(0), - colon = ':'.charCodeAt(0), - at = '@'.charCodeAt(0), - comma = ','.charCodeAt(0), - plus = '+'.charCodeAt(0), - minus = '-'.charCodeAt(0), - decComb = '>'.charCodeAt(0), - adjComb = '~'.charCodeAt(0), - number = /[+-]?(\d+(\.\d+)?|\.\d+)|(e[+-]\d+)/gi, - sQuoteEnd = /(.*?)[^\\](?=((#{)|'))/gm, - dQuoteEnd = /(.*?)[^\\](?=((#{)|"))/gm, - wordEnd = /[ \n\t\r\(\)\{\},:;@!'"\\]|\/(?=\*)|#(?={)/g, - ident = /-?([a-z_]|\\[^\\])([a-z-_0-9]|\\[^\\])*/gi; - -function tokenize(input, l, p) { - var tokens = []; - var css = input.css.valueOf(); - - var code = void 0, - next = void 0, - quote = void 0, - lines = void 0, - last = void 0, - content = void 0, - escape = void 0, - nextLine = void 0, - nextOffset = void 0, - escaped = void 0, - escapePos = void 0, - inInterpolant = void 0, - inComment = void 0, - inString = void 0; - - var length = css.length; - var offset = -1; - var line = l || 1; - var pos = p || 0; - - loop: while (pos < length) { - code = css.charCodeAt(pos); - - if (code === newline) { - offset = pos; - line += 1; - } - - switch (code) { - case space: - case tab: - case cr: - case feed: - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - if (code === newline) { - offset = next; - line += 1; - } - } while (code === space || code === tab || code === cr || code === feed); - - tokens.push(['space', css.slice(pos, next)]); - pos = next - 1; - break; - - case newline: - tokens.push(['newline', '\n', line, pos - offset]); - break; - - case plus: - tokens.push(['+', '+', line, pos - offset]); - break; - - case minus: - tokens.push(['-', '-', line, pos - offset]); - break; - - case decComb: - tokens.push(['>', '>', line, pos - offset]); - break; - - case adjComb: - tokens.push(['~', '~', line, pos - offset]); - break; - - case openCurly: - tokens.push(['{', '{', line, pos - offset]); - break; - - case closeCurly: - if (inInterpolant) { - inInterpolant = false; - tokens.push(['endInterpolant', '}', line, pos - offset]); - } else { - break loop; - } - break; - - case comma: - tokens.push([',', ',', line, pos - offset]); - break; - - case dollar: - tokens.push(['$', '$', line, pos - offset]); - break; - - case colon: - tokens.push([':', ':', line, pos - offset]); - break; - - case semicolon: - tokens.push([';', ';', line, pos - offset]); - break; - - case openBracket: - tokens.push(['(', '(', line, pos - offset]); - break; - - case closeBracket: - tokens.push([')', ')', line, pos - offset]); - break; - - case singleQuote: - case doubleQuote: - quote = code === singleQuote ? "'" : '"'; - tokens.push([quote, quote, line, pos - offset]); - next = pos + 1; - - var _tokenizeString = (0, _tokenizeString3.default)(input, line, next, quote), - t = _tokenizeString.tokens, - _p = _tokenizeString.pos; - - tokens = tokens.concat(t); - next = _p; - - pos = next; - break; - - case at: - tokens.push(['@', '@', line, pos - offset]); - break; - - case backslash: - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === backslash) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== space && code !== newline && code !== tab && code !== cr && code !== feed) { - next += 1; - } - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - pos = next; - break; - - default: - ident.lastIndex = pos; - number.lastIndex = pos; - wordEnd.lastIndex = pos; - - if (code === slash && css.charCodeAt(pos + 1) === asterisk) { - inComment = true; - tokens.push(['startComment', '/*', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeComment = (0, _tokenizeComment3.default)(input, line, next + 1), - _t = _tokenizeComment.tokens, - _l = _tokenizeComment.line, - _p2 = _tokenizeComment.pos, - o = _tokenizeComment.offset; - - tokens = tokens.concat(_t); - next = _p2; - line = _l; - offset = o; - - pos = next; - break; - } - - if (code === asterisk && css.charCodeAt(pos + 1) !== slash) { - tokens.push(['*', '*', line, pos - offset]); - break; - } - - if (inComment && code === asterisk && css.charCodeAt(pos + 1) === slash) { - inComment = false; - tokens.push(['endComment', '*/', line, pos + 1 - offset]); - pos += 2; - break; - } - - if (code === slash && css.charCodeAt(pos + 1) !== slash) { - tokens.push(['/', '/', line, pos - offset]); - pos += 2; - break; - } - - if (code === hash && css.charCodeAt(pos + 1) === openCurly) { - inInterpolant = true; - tokens.push(['startInterpolant', '#{', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeInterpolant = (0, _tokenizeInterpolant3.default)(input, line, next + 1), - _t2 = _tokenizeInterpolant.tokens, - _p3 = _tokenizeInterpolant.pos; - - tokens = tokens.concat(_t2); - next = _p3; - - pos = next; - break; - } - - if (code === slash && css.charCodeAt(pos + 1) === slash) { - next = css.indexOf('\n\n', pos + 2); - next = next > 0 ? next : css.length; - - tokens.push(['scssComment', css.slice(pos, next), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - if (ident.test(css) && (ident.lastIndex = pos || 1) && ident.exec(css).index === pos) { - next = ident.lastIndex - 1; - - tokens.push(['ident', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - if (number.test(css) && (number.lastIndex = pos || 1) && number.exec(css).index === pos) { - next = number.lastIndex - 1; - - tokens.push(['number', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - wordEnd.lastIndex = pos + 1; - wordEnd.test(css); - if (wordEnd.lastIndex === 0) { - next = css.length - 1; - } else { - next = wordEnd.lastIndex - 2; - } - - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - - break; - } - - pos++; - } - - return { tokens: tokens, pos: pos }; -}
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/tokenize-string.js b/node_modules/scss-tokenizer/lib/tokenize-string.js deleted file mode 100644 index 55e7af5..0000000 --- a/node_modules/scss-tokenizer/lib/tokenize-string.js +++ /dev/null @@ -1,130 +0,0 @@ -'use strict'; - -exports.__esModule = true; -exports.default = tokenize; - -var _input = require('./input'); - -var _input2 = _interopRequireDefault(_input); - -var _tokenizeString = require('./tokenize-string'); - -var _tokenizeString2 = _interopRequireDefault(_tokenizeString); - -var _tokenizeInterpolant2 = require('./tokenize-interpolant'); - -var _tokenizeInterpolant3 = _interopRequireDefault(_tokenizeInterpolant2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var singleQuote = "'".charCodeAt(0), - doubleQuote = '"'.charCodeAt(0), - newline = '\n'.charCodeAt(0), - space = ' '.charCodeAt(0), - feed = '\f'.charCodeAt(0), - tab = '\t'.charCodeAt(0), - cr = '\r'.charCodeAt(0), - hash = '#'.charCodeAt(0), - backslash = '\\'.charCodeAt(0), - slash = '/'.charCodeAt(0), - openCurly = '{'.charCodeAt(0), - closeCurly = '}'.charCodeAt(0), - interpolantEnd = /([.\s]*?)[^\\](?=(}))/gm, - sQuoteEnd = /([.\s]*?)[^\\](?=((#{)|'))/gm, - dQuoteEnd = /([.\s]*?)[^\\](?=((#{)|"))/gm; - -function tokenize(input, l, p, quote) { - var tokens = []; - var css = input.css.valueOf(); - - var code = void 0, - next = void 0, - lines = void 0, - last = void 0, - content = void 0, - escape = void 0, - nextLine = void 0, - nextOffset = void 0, - escaped = void 0, - escapePos = void 0, - inInterpolant = void 0, - inComment = void 0, - inString = void 0; - - var length = css.length; - var offset = -1; - var line = l || 1; - var pos = p || 0; - - var quoteEnd = quote === "'" ? sQuoteEnd : dQuoteEnd; - var quoteChar = quote.charCodeAt(0); - - loop: while (pos < length) { - code = css.charCodeAt(pos); - - if (code === newline) { - offset = pos; - line += 1; - } - - switch (code) { - - case closeCurly: - tokens.push(['endInterpolant', '}', line, pos - offset]); - break; - - case quoteChar: - tokens.push([quote, quote, line, pos - offset]); - break loop; - - case backslash: - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === backslash) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== slash && code !== space && code !== newline && code !== tab && code !== cr && code !== feed) { - next += 1; - } - tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - pos = next; - break; - - default: - if (code === hash && css.charCodeAt(pos + 1) === openCurly) { - tokens.push(['startInterpolant', '#{', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeInterpolant = (0, _tokenizeInterpolant3.default)(input, line, next + 1), - t = _tokenizeInterpolant.tokens, - _p = _tokenizeInterpolant.pos; - - tokens = tokens.concat(t); - next = _p; - - pos = next; - } else { - quoteEnd.lastIndex = pos; - quoteEnd.test(css); - - if (quoteEnd.lastIndex === 0) { - next = css.length - 1; - } else { - next = quoteEnd.lastIndex - 1; - } - - tokens.push(['string', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - } - - break; - } - - pos++; - } - - return { tokens: tokens, pos: pos }; -}
\ No newline at end of file diff --git a/node_modules/scss-tokenizer/lib/tokenize.js b/node_modules/scss-tokenizer/lib/tokenize.js deleted file mode 100644 index 4be34fe..0000000 --- a/node_modules/scss-tokenizer/lib/tokenize.js +++ /dev/null @@ -1,302 +0,0 @@ -'use strict'; - -exports.__esModule = true; -exports.default = tokenize; - -var _input = require('./input'); - -var _input2 = _interopRequireDefault(_input); - -var _tokenizeString2 = require('./tokenize-string'); - -var _tokenizeString3 = _interopRequireDefault(_tokenizeString2); - -var _tokenizeComment2 = require('./tokenize-comment'); - -var _tokenizeComment3 = _interopRequireDefault(_tokenizeComment2); - -var _tokenizeInterpolant2 = require('./tokenize-interpolant'); - -var _tokenizeInterpolant3 = _interopRequireDefault(_tokenizeInterpolant2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var singleQuote = "'".charCodeAt(0), - doubleQuote = '"'.charCodeAt(0), - dollar = '$'.charCodeAt(0), - hash = '#'.charCodeAt(0), - backslash = '\\'.charCodeAt(0), - slash = '/'.charCodeAt(0), - newline = '\n'.charCodeAt(0), - space = ' '.charCodeAt(0), - feed = '\f'.charCodeAt(0), - tab = '\t'.charCodeAt(0), - cr = '\r'.charCodeAt(0), - openBracket = '('.charCodeAt(0), - closeBracket = ')'.charCodeAt(0), - openCurly = '{'.charCodeAt(0), - closeCurly = '}'.charCodeAt(0), - semicolon = ';'.charCodeAt(0), - asterisk = '*'.charCodeAt(0), - colon = ':'.charCodeAt(0), - at = '@'.charCodeAt(0), - comma = ','.charCodeAt(0), - plus = '+'.charCodeAt(0), - minus = '-'.charCodeAt(0), - decComb = '>'.charCodeAt(0), - adjComb = '~'.charCodeAt(0), - number = /[+-]?(\d+(\.\d+)?|\.\d+)|(e[+-]\d+)/gi, - sQuoteEnd = /(.*?)[^\\](?=((#{)|'))/gm, - dQuoteEnd = /(.*?)[^\\](?=((#{)|"))/gm, - wordEnd = /[ \n\t\r\(\)\{\},:;@!'"\\]|\/(?=\*)|#(?={)/g, - ident = /-?([a-z_]|\\[^\\])([a-z-_0-9]|\\[^\\])*/gi; - -function tokenize(input, l, p) { - var tokens = []; - var css = input.css.valueOf(); - - var code = void 0, - next = void 0, - quote = void 0, - lines = void 0, - last = void 0, - content = void 0, - escape = void 0, - nextLine = void 0, - nextOffset = void 0, - escaped = void 0, - escapePos = void 0, - inInterpolant = void 0, - inComment = void 0, - inString = void 0; - - var length = css.length; - var offset = -1; - var line = l || 1; - var pos = p || 0; - - while (pos < length) { - code = css.charCodeAt(pos); - - if (code === newline) { - offset = pos; - line += 1; - } - - switch (code) { - case space: - case tab: - case cr: - case feed: - next = pos; - do { - next += 1; - code = css.charCodeAt(next); - if (code === newline) { - offset = next; - line += 1; - } - } while (code === space || code === tab || code === cr || code === feed); - - tokens.push(['space', css.slice(pos, next)]); - pos = next - 1; - break; - - case newline: - tokens.push(['newline', '\n', line, pos - offset]); - break; - - case plus: - tokens.push(['+', '+', line, pos - offset]); - break; - - case minus: - tokens.push(['-', '-', line, pos - offset]); - break; - - case decComb: - tokens.push(['>', '>', line, pos - offset]); - break; - - case adjComb: - tokens.push(['~', '~', line, pos - offset]); - break; - - case openCurly: - tokens.push(['{', '{', line, pos - offset]); - break; - - case closeCurly: - if (inInterpolant) { - inInterpolant = false; - tokens.push(['endInterpolant', '}', line, pos - offset]); - } else { - tokens.push(['}', '}', line, pos - offset]); - } - break; - - case comma: - tokens.push([',', ',', line, pos - offset]); - break; - - case dollar: - tokens.push(['$', '$', line, pos - offset]); - break; - - case colon: - tokens.push([':', ':', line, pos - offset]); - break; - - case semicolon: - tokens.push([';', ';', line, pos - offset]); - break; - - case openBracket: - tokens.push(['(', '(', line, pos - offset]); - break; - - case closeBracket: - tokens.push([')', ')', line, pos - offset]); - break; - - case singleQuote: - case doubleQuote: - quote = code === singleQuote ? "'" : '"'; - tokens.push([quote, quote, line, pos - offset]); - next = pos + 1; - - var _tokenizeString = (0, _tokenizeString3.default)(input, line, next, quote), - t = _tokenizeString.tokens, - _p = _tokenizeString.pos; - - tokens = tokens.concat(t); - next = _p; - - pos = next; - break; - - case at: - tokens.push(['@', '@', line, pos - offset]); - break; - - case backslash: - next = pos; - escape = true; - while (css.charCodeAt(next + 1) === backslash) { - next += 1; - escape = !escape; - } - code = css.charCodeAt(next + 1); - if (escape && code !== space && code !== newline && code !== tab && code !== cr && code !== feed) { - next += 1; - } - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - pos = next; - break; - - default: - ident.lastIndex = pos; - number.lastIndex = pos; - wordEnd.lastIndex = pos; - - if (code === slash && css.charCodeAt(pos + 1) === asterisk) { - inComment = true; - tokens.push(['startComment', '/*', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeComment = (0, _tokenizeComment3.default)(input, line, next + 1), - _t = _tokenizeComment.tokens, - _l = _tokenizeComment.line, - _p2 = _tokenizeComment.pos, - o = _tokenizeComment.offset; - - tokens = tokens.concat(_t); - next = _p2; - line = _l; - offset = o; - - pos = next; - break; - } - - if (code === asterisk && css.charCodeAt(pos + 1) !== slash) { - tokens.push(['*', '*', line, pos - offset]); - break; - } - - if (inComment && code === asterisk && css.charCodeAt(pos + 1) === slash) { - inComment = false; - tokens.push(['endComment', '*/', line, pos + 1 - offset]); - pos += 2; - break; - } - - if (code === slash && css.charCodeAt(pos + 1) !== slash) { - tokens.push(['/', '/', line, pos - offset]); - break; - } - - if (code === hash && css.charCodeAt(pos + 1) === openCurly) { - inInterpolant = true; - tokens.push(['startInterpolant', '#{', line, pos + 1 - offset]); - next = pos + 1; - - var _tokenizeInterpolant = (0, _tokenizeInterpolant3.default)(input, line, next + 1), - _t2 = _tokenizeInterpolant.tokens, - _p3 = _tokenizeInterpolant.pos; - - tokens = tokens.concat(_t2); - next = _p3; - - pos = next; - break; - } - - if (code === slash && css.charCodeAt(pos + 1) === slash) { - next = css.indexOf('\n', pos + 2); - next = (next > 0 ? next : css.length) - 1; - - tokens.push(['scssComment', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - if (ident.test(css) && (ident.lastIndex = pos || 1) && ident.exec(css).index === pos) { - next = ident.lastIndex - 1; - - tokens.push(['ident', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - if (number.test(css) && (number.lastIndex = pos || 1) && number.exec(css).index === pos) { - next = number.lastIndex - 1; - - tokens.push(['number', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - break; - } - - wordEnd.lastIndex = pos + 1; - wordEnd.test(css); - if (wordEnd.lastIndex === 0) { - next = css.length - 1; - } else { - next = wordEnd.lastIndex - 2; - } - - tokens.push(['word', css.slice(pos, next + 1), line, pos - offset, line, next - offset]); - - pos = next; - - break; - } - - pos++; - } - - return tokens; -}
\ No newline at end of file |