| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | var TYPE = require('../../tokenizer').TYPE;var SEMICOLON = TYPE.Semicolon;var LEFTCURLYBRACKET = TYPE.LeftCurlyBracket;module.exports = {    name: 'AtrulePrelude',    structure: {        children: [[]]    },    parse: function(name) {        var children = null;        if (name !== null) {            name = name.toLowerCase();        }        this.scanner.skipSC();        if (this.atrule.hasOwnProperty(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.scanner.skipSC();        if (this.scanner.eof !== true &&            this.scanner.tokenType !== LEFTCURLYBRACKET &&            this.scanner.tokenType !== SEMICOLON) {            this.error('Semicolon or block is expected');        }        if (children === null) {            children = this.createList();        }        return {            type: 'AtrulePrelude',            loc: this.getLocationFromList(children),            children: children        };    },    generate: function(node) {        this.children(node);    },    walkContext: 'atrulePrelude'};
 |