var TYPE = require('../../tokenizer').TYPE; var WHITESPACE = TYPE.WhiteSpace; var COMMENT = TYPE.Comment; var IDENT = TYPE.Ident; var LEFTPARENTHESIS = TYPE.LeftParenthesis; module.exports = { name: 'MediaQuery', structure: { children: [[ 'Identifier', 'MediaFeature', 'WhiteSpace' ]] }, parse: function() { this.scanner.skipSC(); var children = this.createList(); var child = null; var space = null; scan: while (!this.scanner.eof) { switch (this.scanner.tokenType) { case COMMENT: this.scanner.next(); continue; case WHITESPACE: space = this.WhiteSpace(); continue; case IDENT: child = this.Identifier(); break; case LEFTPARENTHESIS: child = this.MediaFeature(); break; default: break scan; } if (space !== null) { children.push(space); space = null; } children.push(child); } if (child === null) { this.error('Identifier or parenthesis is expected'); } return { type: 'MediaQuery', loc: this.getLocationFromList(children), children: children }; }, generate: function(node) { this.children(node); } };