initial commit
This commit is contained in:
69
node_modules/autoprefixer/lib/brackets.js
generated
vendored
Normal file
69
node_modules/autoprefixer/lib/brackets.js
generated
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
"use strict";
|
||||
|
||||
function last(array) {
|
||||
return array[array.length - 1];
|
||||
}
|
||||
|
||||
var brackets = {
|
||||
/**
|
||||
* Parse string to nodes tree
|
||||
*/
|
||||
parse: function parse(str) {
|
||||
var current = [''];
|
||||
var stack = [current];
|
||||
|
||||
for (var i = 0; i < str.length; i++) {
|
||||
var sym = str[i];
|
||||
|
||||
if (sym === '(') {
|
||||
current = [''];
|
||||
last(stack).push(current);
|
||||
stack.push(current);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (sym === ')') {
|
||||
stack.pop();
|
||||
current = last(stack);
|
||||
current.push('');
|
||||
continue;
|
||||
}
|
||||
|
||||
current[current.length - 1] += sym;
|
||||
}
|
||||
|
||||
return stack[0];
|
||||
},
|
||||
|
||||
/**
|
||||
* Generate output string by nodes tree
|
||||
*/
|
||||
stringify: function stringify(ast) {
|
||||
var result = '';
|
||||
|
||||
for (var _iterator = ast, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
||||
var _ref;
|
||||
|
||||
if (_isArray) {
|
||||
if (_i >= _iterator.length) break;
|
||||
_ref = _iterator[_i++];
|
||||
} else {
|
||||
_i = _iterator.next();
|
||||
if (_i.done) break;
|
||||
_ref = _i.value;
|
||||
}
|
||||
|
||||
var i = _ref;
|
||||
|
||||
if (typeof i === 'object') {
|
||||
result += "(" + brackets.stringify(i) + ")";
|
||||
continue;
|
||||
}
|
||||
|
||||
result += i;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
module.exports = brackets;
|
||||
Reference in New Issue
Block a user