| Index: third_party/polymer/v0_8/components/polymer/src/lib/css-parse.html
|
| diff --git a/third_party/polymer/v0_8/components/polymer/src/lib/css-parse.html b/third_party/polymer/v0_8/components/polymer/src/lib/css-parse.html
|
| deleted file mode 100644
|
| index 6b2a476784437e0ae8a1de58da707ef25bac6d7d..0000000000000000000000000000000000000000
|
| --- a/third_party/polymer/v0_8/components/polymer/src/lib/css-parse.html
|
| +++ /dev/null
|
| @@ -1,140 +0,0 @@
|
| -<!--
|
| -@license
|
| -Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
| -This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
| -The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
| -The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
| -Code distributed by Google as part of the polymer project is also
|
| -subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
| --->
|
| -<script>
|
| -
|
| -/*
|
| - Extremely simple css parser. Intended to be not more than what we need
|
| - and definitely not necessarly correct =).
|
| -*/
|
| -(function() {
|
| -
|
| - // given a string of css, return a simple rule tree
|
| - function parse(text) {
|
| - text = clean(text);
|
| - return parseCss(lex(text), text);
|
| - }
|
| -
|
| - // remove stuff we don't care about that may hinder parsing
|
| - function clean(cssText) {
|
| - return cssText.replace(rx.comments, '').replace(rx.port, '');
|
| - }
|
| -
|
| - // super simple {...} lexer that returns a node tree
|
| - function lex(text) {
|
| - var root = {start: 0, end: text.length};
|
| - var n = root;
|
| - for (var i=0, s=0, l=text.length; i < l; i++) {
|
| - switch (text[i]) {
|
| - case OPEN_BRACE:
|
| - //console.group(i);
|
| - if (!n.rules) {
|
| - n.rules = [];
|
| - }
|
| - var p = n;
|
| - var previous = p.rules[p.rules.length-1];
|
| - n = {start: i+1, parent: p, previous: previous};
|
| - p.rules.push(n);
|
| - break;
|
| - case CLOSE_BRACE:
|
| - //console.groupEnd(n.start);
|
| - n.end = i+1;
|
| - n = n.parent || root;
|
| - break;
|
| - }
|
| - }
|
| - return root;
|
| - }
|
| -
|
| - // add selectors/cssText to node tree
|
| - function parseCss(node, text) {
|
| - var t = text.substring(node.start, node.end-1);
|
| - node.cssText = t.trim();
|
| - if (node.parent) {
|
| - var ss = node.previous ? node.previous.end : node.parent.start;
|
| - t = text.substring(ss, node.start-1);
|
| - // TODO(sorvell): ad hoc; make selector include only after last ;
|
| - // helps with mixin syntax
|
| - t = t.substring(t.lastIndexOf(';')+1);
|
| - node.selector = t.trim();
|
| - }
|
| - var r$ = node.rules;
|
| - if (r$) {
|
| - for (var i=0, l=r$.length, r; (i<l) && (r=r$[i]); i++) {
|
| - parseCss(r, text);
|
| - }
|
| - }
|
| - return node;
|
| - }
|
| -
|
| - // stringify parsed css.
|
| - function stringify(node, text) {
|
| - text = text || '';
|
| - // calc rule cssText
|
| - var cssText = '';
|
| - if (node.cssText || node.rules) {
|
| - var r$ = node.rules;
|
| - if (r$ && !hasMixinRules(r$)) {
|
| - for (var i=0, l=r$.length, r; (i<l) && (r=r$[i]); i++) {
|
| - cssText = stringify(r, cssText);
|
| - }
|
| - } else {
|
| - cssText = removeCustomProps(node.cssText).trim();
|
| - if (cssText) {
|
| - cssText = ' ' + cssText + '\n';
|
| - }
|
| - }
|
| - }
|
| - // emit rule iff there is cssText
|
| - if (cssText) {
|
| - if (node.selector) {
|
| - text += node.selector + ' ' + OPEN_BRACE + '\n';
|
| - }
|
| - text += cssText;
|
| - if (node.selector) {
|
| - text += CLOSE_BRACE + '\n\n';
|
| - }
|
| - }
|
| - return text;
|
| - }
|
| -
|
| - var OPEN_BRACE = '{';
|
| - var CLOSE_BRACE = '}';
|
| -
|
| - function hasMixinRules(rules) {
|
| - return (rules[0].selector.indexOf(VAR_START) >= 0);
|
| - }
|
| -
|
| - function removeCustomProps(cssText) {
|
| - return cssText
|
| - .replace(rx.customProp, '')
|
| - .replace(rx.mixinProp, '')
|
| - .replace(rx.mixinApply, '');
|
| - }
|
| -
|
| - var VAR_START = '--';
|
| -
|
| - // helper regexp's
|
| - var rx = {
|
| - comments: /\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,
|
| - port: /@import[^;]*;/gim,
|
| - customProp: /--[^;{]*?:[^{};]*?;/gim,
|
| - mixinProp: /--[^;{]*?:[^{;]*?{[^}]*?}/gim,
|
| - mixinApply: /@mixin[\s]*\([^)]*?\)[\s]*;/gim
|
| - };
|
| -
|
| - // exports
|
| - Polymer.CssParse = {
|
| - parse: parse,
|
| - stringify: stringify
|
| - };
|
| -
|
| -})();
|
| -
|
| -</script>
|
|
|