module.exports = { name: 'Nth', structure: { nth: ['AnPlusB', 'Identifier'], selector: ['SelectorList', null] }, parse: function(allowOfClause) { this.scanner.skipSC(); var start = this.scanner.tokenStart; var end = start; var selector = null; var query; if (this.scanner.lookupValue(0, 'odd') || this.scanner.lookupValue(0, 'even')) { query = this.Identifier(); } else { query = this.AnPlusB(); } this.scanner.skipSC(); if (allowOfClause && this.scanner.lookupValue(0, 'of')) { this.scanner.next(); selector = this.SelectorList(); if (this.needPositions) { end = this.getLastListNode(selector.children).loc.end.offset; } } else { if (this.needPositions) { end = query.loc.end.offset; } } return { type: 'Nth', loc: this.getLocation(start, end), nth: query, selector: selector }; }, generate: function(node) { this.node(node.nth); if (node.selector !== null) { this.chunk(' of '); this.node(node.selector); } } };