You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
var TYPE = require('../../tokenizer').TYPE;
var IDENT = TYPE.Ident; var FUNCTION = TYPE.Function; var COLON = TYPE.Colon; var RIGHTPARENTHESIS = TYPE.RightParenthesis;
// : [ <ident> | <function-token> <any-value>? ) ]
module.exports = { name: 'PseudoClassSelector', structure: { name: String, children: [['Raw'], null] }, parse: function() { var start = this.scanner.tokenStart; var children = null; var name; var nameLowerCase;
this.eat(COLON);
if (this.scanner.tokenType === FUNCTION) { name = this.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.tokenIndex, null, false) ); }
this.eat(RIGHTPARENTHESIS); } else { name = this.consume(IDENT); }
return { type: 'PseudoClassSelector', 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' };
|