/
Mikhail823
/
todo
Обзор
Документация
Войти
/
Mikhail823
/
todo
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/css-tree/lib/syntax/node/StyleSheet.js
81 строка
2 KB
Mikhail Popov
j
23 фев 2026, 16:12
23 фев 2026, 16:12
ff7232a
Код
Авторство
О чём код?
var TYPE = require('../../tokenizer').TYPE; var WHITESPACE = TYPE.WhiteSpace; var COMMENT = TYPE.Comment; var ATKEYWORD = TYPE.AtKeyword; var CDO = TYPE.CDO; var CDC = TYPE.CDC; var EXCLAMATIONMARK = 0x0021; // U+0021 EXCLAMATION MARK (!) function consumeRaw(startToken) { return this.Raw(startToken, null, false); } module.exports = { name: 'StyleSheet', structure: { children: [[ 'Comment', 'CDO', 'CDC', 'Atrule', 'Rule', 'Raw' ]] }, parse: function() { var start = this.scanner.tokenStart; var children = this.createList(); var child; scan: while (!this.scanner.eof) { switch (this.scanner.tokenType) { case WHITESPACE: this.scanner.next(); continue; case COMMENT: // ignore comments except exclamation comments (i.e. /*! .. */) on top level if (this.scanner.source.charCodeAt(this.scanner.tokenStart + 2) !== EXCLAMATIONMARK) { this.scanner.next(); continue; } child = this.Comment(); break; case CDO: // <!-- child = this.CDO(); break; case CDC: // --> child = this.CDC(); break; // CSS Syntax Module Level 3 // §2.2 Error handling // At the "top level" of a stylesheet, an <at-keyword-token> starts an at-rule. case ATKEYWORD: child = this.parseWithFallback(this.Atrule, consumeRaw); break; // Anything else starts a qualified rule ... default: child = this.parseWithFallback(this.Rule, consumeRaw); } children.push(child); } return { type: 'StyleSheet', loc: this.getLocation(start, this.scanner.tokenStart), children: children }; }, generate: function(node) { this.children(node); }, walkContext: 'stylesheet' };