'use strict'; const types = require('../../tokenizer/types.cjs'); const name = 'MediaQuery'; const structure = { children: [[ 'Identifier', 'MediaFeature', 'WhiteSpace' ]] }; function parse() { const children = this.createList(); let child = null; this.skipSC(); scan: while (!this.eof) { switch (this.tokenType) { case types.Comment: case types.WhiteSpace: this.next(); continue; case types.Ident: child = this.Identifier(); break; case types.LeftParenthesis: child = this.MediaFeature(); break; default: break scan; } children.push(child); } if (child === null) { this.error('Identifier or parenthesis is expected'); } return { type: 'MediaQuery', loc: this.getLocationFromList(children), children }; } function generate(node) { this.children(node); } exports.generate = generate; exports.name = name; exports.parse = parse; exports.structure = structure;