Sha256: 7c0535cfda132f1d4dc4597b4209cc40419dcd8c670ed4c0c605b4f3ed9d8945
Contents?: true
Size: 1.9 KB
Versions: 41
Compression:
Stored size: 1.9 KB
Contents
var TYPE = require('../../tokenizer').TYPE; var IDENT = TYPE.Ident; var NUMBER = TYPE.Number; var DIMENSION = TYPE.Dimension; var LEFTPARENTHESIS = TYPE.LeftParenthesis; var RIGHTPARENTHESIS = TYPE.RightParenthesis; var COLON = TYPE.Colon; var DELIM = TYPE.Delim; module.exports = { name: 'MediaFeature', structure: { name: String, value: ['Identifier', 'Number', 'Dimension', 'Ratio', null] }, parse: function() { var start = this.scanner.tokenStart; var name; var value = null; this.eat(LEFTPARENTHESIS); this.scanner.skipSC(); name = this.consume(IDENT); this.scanner.skipSC(); if (this.scanner.tokenType !== RIGHTPARENTHESIS) { this.eat(COLON); this.scanner.skipSC(); switch (this.scanner.tokenType) { case NUMBER: if (this.lookupNonWSType(1) === DELIM) { value = this.Ratio(); } else { value = this.Number(); } break; case DIMENSION: value = this.Dimension(); break; case IDENT: value = this.Identifier(); break; default: this.error('Number, dimension, ratio or identifier is expected'); } this.scanner.skipSC(); } this.eat(RIGHTPARENTHESIS); return { type: 'MediaFeature', loc: this.getLocation(start, this.scanner.tokenStart), name: name, value: value }; }, generate: function(node) { this.chunk('('); this.chunk(node.name); if (node.value !== null) { this.chunk(':'); this.node(node.value); } this.chunk(')'); } };
Version data entries
41 entries across 31 versions & 9 rubygems