1 | var nodes = require('../nodes')
|
2 | , Parser = require('../selector-parser');
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | module.exports = function selectors(){
|
20 | var stack = this.selectorStack
|
21 | , expr = new nodes.Expression(true);
|
22 |
|
23 | if (stack.length) {
|
24 | for (var i = 0; i < stack.length; i++) {
|
25 | var group = stack[i]
|
26 | , nested;
|
27 |
|
28 | if (group.length > 1) {
|
29 | expr.push(new nodes.String(group.map(function(selector) {
|
30 | nested = new Parser(selector.val).parse().nested;
|
31 | return (nested && i ? '& ' : '') + selector.val;
|
32 | }).join(',')))
|
33 | } else {
|
34 | var selector = group[0].val
|
35 | nested = new Parser(selector).parse().nested;
|
36 | expr.push(new nodes.String((nested && i ? '& ' : '') + selector));
|
37 | }
|
38 | }
|
39 | } else {
|
40 | expr.push(new nodes.String('&'));
|
41 | }
|
42 | return expr;
|
43 | };
|