Sha256: 4531ac7c91838f826abffd46c8dcf5cf6c591bfd3e4d7f3f80b2ec04f801f75b
Contents?: true
Size: 1.68 KB
Versions: 19
Compression:
Stored size: 1.68 KB
Contents
var TYPE = require('../../tokenizer').TYPE; var IDENTIFIER = TYPE.Identifier; var FUNCTION = TYPE.Function; var COLON = TYPE.Colon; var RIGHTPARENTHESIS = TYPE.RightParenthesis; // :: ident [ '(' .. ')' ]? module.exports = { name: 'PseudoElementSelector', structure: { name: String, children: [['Raw'], null] }, parse: function() { var start = this.scanner.tokenStart; var children = null; var name; var nameLowerCase; this.scanner.eat(COLON); this.scanner.eat(COLON); if (this.scanner.tokenType === FUNCTION) { name = this.scanner.consumeFunctionName(); nameLowerCase = name.toLowerCase(); if (this.pseudo.hasOwnProperty(nameLowerCase)) { this.scanner.skipSC(); children = this.pseudo[nameLowerCase].call(this); this.scanner.skipSC(); } else { children = this.createList(); children.push( this.Raw(this.scanner.currentToken, 0, 0, false, false) ); } this.scanner.eat(RIGHTPARENTHESIS); } else { name = this.scanner.consume(IDENTIFIER); } return { type: 'PseudoElementSelector', loc: this.getLocation(start, this.scanner.tokenStart), name: name, children: children }; }, generate: function(node) { this.chunk('::'); this.chunk(node.name); if (node.children !== null) { this.chunk('('); this.children(node); this.chunk(')'); } }, walkContext: 'function' };
Version data entries
19 entries across 18 versions & 4 rubygems