| 'use strict'; |
| |
| const types = require('../../tokenizer/types.cjs'); |
| |
| const name = 'AtrulePrelude'; |
| const walkContext = 'atrulePrelude'; |
| const structure = { |
| children: [[]] |
| }; |
| |
| function parse(name) { |
| let children = null; |
| |
| if (name !== null) { |
| name = name.toLowerCase(); |
| } |
| |
| this.skipSC(); |
| |
| if (hasOwnProperty.call(this.atrule, name) && |
| typeof this.atrule[name].prelude === 'function') { |
| // custom consumer |
| children = this.atrule[name].prelude.call(this); |
| } else { |
| // default consumer |
| children = this.readSequence(this.scope.AtrulePrelude); |
| } |
| |
| this.skipSC(); |
| |
| if (this.eof !== true && |
| this.tokenType !== types.LeftCurlyBracket && |
| this.tokenType !== types.Semicolon) { |
| this.error('Semicolon or block is expected'); |
| } |
| |
| return { |
| type: 'AtrulePrelude', |
| loc: this.getLocationFromList(children), |
| children |
| }; |
| } |
| |
| function generate(node) { |
| this.children(node); |
| } |
| |
| exports.generate = generate; |
| exports.name = name; |
| exports.parse = parse; |
| exports.structure = structure; |
| exports.walkContext = walkContext; |