Sha256: 513b7efe4d9ab49ff1cca7035d9763a7162d47f4aef51c56851184981b6161f1
Contents?: true
Size: 1.19 KB
Versions: 41
Compression:
Stored size: 1.19 KB
Contents
var TYPE = require('../../tokenizer').TYPE; var rawMode = require('./Raw').mode; var WHITESPACE = TYPE.WhiteSpace; var COMMENT = TYPE.Comment; var SEMICOLON = TYPE.Semicolon; function consumeRaw(startToken) { return this.Raw(startToken, rawMode.semicolonIncluded, true); } module.exports = { name: 'DeclarationList', structure: { children: [[ 'Declaration' ]] }, parse: function() { var children = this.createList(); scan: while (!this.scanner.eof) { switch (this.scanner.tokenType) { case WHITESPACE: case COMMENT: case SEMICOLON: this.scanner.next(); break; default: children.push(this.parseWithFallback(this.Declaration, consumeRaw)); } } return { type: 'DeclarationList', loc: this.getLocationFromList(children), children: children }; }, generate: function(node) { this.children(node, function(prev) { if (prev.type === 'Declaration') { this.chunk(';'); } }); } };
Version data entries
41 entries across 31 versions & 9 rubygems