buffer.push(character);
} else if (isCommentEnd) {
// comment end, e.g. /* comment */<--
- lastToken = [Token.COMMENT, [buffer.join('').trim() + character, [metadata]]];
+ lastToken = [Token.COMMENT, buffer.join('').trim() + character, [metadata]];
newTokens.push(lastToken);
level = levels.pop();
buffer = [];
} else if (character == Marker.COMMA && level == Level.BLOCK && ruleToken) {
// comma separator at block level, e.g. a,div,<--
- ruleToken[1].push([buffer.join('').trim(), [metadata]]);
+ ruleToken[1].push([tokenScopeFrom(ruleToken[0]), buffer.join('').trim(), [metadata]]);
buffer = [];
} else if (character == Marker.COMMA && level == Level.BLOCK && tokenTypeFrom(buffer) == Token.AT_RULE) {
buffer.push(character);
} else if (character == Marker.COMMA && level == Level.BLOCK) {
// comma separator at block level, e.g. a,<--
- ruleToken = [tokenTypeFrom(buffer), [[buffer.join('').trim(), [metadata]]], []];
+ ruleToken = [tokenTypeFrom(buffer), [], []];
+ ruleToken[1].push([tokenScopeFrom(ruleToken[0]), buffer.join('').trim(), [metadata]]);
buffer = [];
} else if (character == Marker.OPEN_BRACE && level == Level.BLOCK && ruleToken && ruleToken[0] == Token.BLOCK) {
// open brace opening at-rule at block level, e.g. @media{<--
- ruleToken[1].push([buffer.join('').trim(), [metadata]]);
+ ruleToken[1].push([Token.BLOCK_SCOPE, buffer.join('').trim(), [metadata]]);
allTokens.push(ruleToken);
levels.push(level);
} else if (character == Marker.OPEN_BRACE && level == Level.BLOCK && tokenTypeFrom(buffer) == Token.BLOCK) {
// open brace opening at-rule at block level, e.g. @media{<--
ruleToken = ruleToken || [Token.BLOCK, [], []];
- ruleToken[1].push([buffer.join('').trim(), [metadata]]);
+ ruleToken[1].push([Token.BLOCK_SCOPE, buffer.join('').trim(), [metadata]]);
allTokens.push(ruleToken);
levels.push(level);
} else if (character == Marker.OPEN_BRACE && level == Level.BLOCK) {
// open brace opening rule at block level, e.g. div{<--
ruleToken = ruleToken || [tokenTypeFrom(buffer), [], []];
- ruleToken[1].push([buffer.join('').trim(), [metadata]]);
+ ruleToken[1].push([tokenScopeFrom(ruleToken[0]), buffer.join('').trim(), [metadata]]);
newTokens = ruleToken[2];
allTokens.push(ruleToken);
}
}
+function tokenScopeFrom(tokenType) {
+ if (tokenType == Token.RULE) {
+ return Token.RULE_SCOPE;
+ } else if (tokenType == Token.BLOCK) {
+ return Token.BLOCK_SCOPE;
+ } else if (tokenType == Token.AT_RULE_BLOCK) {
+ return Token.AT_RULE_BLOCK_SCOPE;
+ }
+}
+
module.exports = tokenize;
'color',
['property', ['property-name', 'color', [[1, 2, undefined]]], ['property-value', 'red', [[1, 8, undefined]]]],
'color:red',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'color',
['property', ['property-name', 'color', [[1, 2, undefined]]], ['property-value', 'red!important', [[1, 8, undefined]]]],
'color:red!important',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'color',
['property', ['property-name', 'color', [[1, 10, undefined]]], ['property-value', 'red', [[1, 16, undefined]]]],
'color:red',
- [['#one span', [[1, 0, undefined]]]],
+ [['rule-scope', '#one span', [[1, 0, undefined]]]],
true
]
]);
'color',
['property', ['property-name', 'color', [[1, 5, undefined]]], ['property-value', 'red', [[1, 11, undefined]]]],
'color:red',
- [['.one', [[1, 0, undefined]]]],
+ [['rule-scope', '.one', [[1, 0, undefined]]]],
false
]
]);
'color',
['property', ['property-name', 'color', [[1, 2, undefined]]], ['property-value', 'red', [[1, 8, undefined]]]],
'color:red',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
],
[
'display',
['property', ['property-name', 'display', [[1, 12, undefined]]], ['property-value', 'block', [[1, 20, undefined]]]],
'display:block',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'color',
['property', ['property-name', 'color', [[1, 9, undefined]]], ['property-value', 'red', [[1, 15, undefined]]]],
'color:red',
- [['a', [[1, 7, undefined]]]],
+ [['rule-scope', 'a', [[1, 7, undefined]]]],
true
],
[
'display',
['property', ['property-name', 'display', [[1, 19, undefined]]], ['property-value', 'block', [[1, 27, undefined]]]],
'display:block',
- [['a', [[1, 7, undefined]]]],
+ [['rule-scope', 'a', [[1, 7, undefined]]]],
true
],
[
'color',
['property', ['property-name', 'color', [[1, 35, undefined]]], ['property-value', 'red', [[1, 41, undefined]]]],
'color:red',
- [['p', [[1, 33, undefined]]]],
+ [['rule-scope', 'p', [[1, 33, undefined]]]],
true
]
]);
'transform',
['property', ['property-name', '-moz-transform', [[1, 2, undefined]]], ['property-value', 'none', [[1, 17, undefined]]]],
'-moz-transform:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'list-style',
['property', ['property-name', 'list-style', [[1, 2, undefined]]], ['property-value', 'none', [[1, 13, undefined]]]],
'list-style:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border-radius',
['property', ['property-name', 'border-top-left-radius', [[1, 2, undefined]]], ['property-value', 'none', [[1, 25, undefined]]]],
'border-top-left-radius:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border-radius',
['property', ['property-name', '-webkit-border-top-left-radius', [[1, 2, undefined]]], ['property-value', 'none', [[1, 33, undefined]]]],
'-webkit-border-top-left-radius:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border-image',
['property', ['property-name', 'border-image-width', [[1, 2, undefined]]], ['property-value', '2px', [[1, 21, undefined]]]],
'border-image-width:2px',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border',
['property', ['property-name', 'border-color', [[1, 2, undefined]]], ['property-value', 'red', [[1, 15, undefined]]]],
'border-color:red',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border-top',
['property', ['property-name', 'border-top-style', [[1, 2, undefined]]], ['property-value', 'none', [[1, 19, undefined]]]],
'border-top-style:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border',
['property', ['property-name', 'border-top', [[1, 2, undefined]]], ['property-value', 'none', [[1, 13, undefined]]]],
'border-top:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'border-collapse',
['property', ['property-name', 'border-collapse', [[1, 2, undefined]]], ['property-value', 'collapse', [[1, 18, undefined]]]],
'border-collapse:collapse',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);
'text-shadow',
['property', ['property-name', 'text-shadow', [[1, 2, undefined]]], ['property-value', 'none', [[1, 14, undefined]]]],
'text-shadow:none',
- [['a', [[1, 0, undefined]]]],
+ [['rule-scope', 'a', [[1, 0, undefined]]]],
true
]
]);