| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = void 0;
-
- var _constants = require("../constants");
-
- var _Node = _interopRequireDefault(require("./Node"));
-
- var _Range = _interopRequireDefault(require("./Range"));
-
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
-
- class Directive extends _Node.default {
- static endOfDirective(src, offset) {
- let ch = src[offset];
-
- while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1]; // last char can't be whitespace
-
-
- ch = src[offset - 1];
-
- while (ch === ' ' || ch === '\t') {
- offset -= 1;
- ch = src[offset - 1];
- }
-
- return offset;
- }
-
- constructor() {
- super(_constants.Type.DIRECTIVE);
- this.name = null;
- }
-
- get parameters() {
- const raw = this.rawValue;
- return raw ? raw.trim().split(/[ \t]+/) : [];
- }
-
- parseName(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
-
- while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') ch = src[offset += 1];
-
- this.name = src.slice(start, offset);
- return offset;
- }
-
- parseParameters(start) {
- const {
- src
- } = this.context;
- let offset = start;
- let ch = src[offset];
-
- while (ch && ch !== '\n' && ch !== '#') ch = src[offset += 1];
-
- this.valueRange = new _Range.default(start, offset);
- return offset;
- }
-
- parse(context, start) {
- this.context = context;
- let offset = this.parseName(start + 1);
- offset = this.parseParameters(offset);
- offset = this.parseComment(offset);
- this.range = new _Range.default(start, offset);
- return offset;
- }
-
- }
-
- exports.default = Directive;
|