"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _constants = require("../constants"); var _Node2 = _interopRequireDefault(require("./Node")); var _Range = _interopRequireDefault(require("./Range")); var Directive = /*#__PURE__*/ function (_Node) { (0, _inherits2.default)(Directive, _Node); (0, _createClass2.default)(Directive, null, [{ key: "endOfDirective", value: function endOfDirective(src, offset) { var 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; } }]); function Directive() { var _this; (0, _classCallCheck2.default)(this, Directive); _this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(Directive).call(this, _constants.Type.DIRECTIVE)); _this.name = null; return _this; } (0, _createClass2.default)(Directive, [{ key: "parseName", value: function parseName(start) { var src = this.context.src; var offset = start; var ch = src[offset]; while (ch && ch !== '\n' && ch !== '\t' && ch !== ' ') { ch = src[offset += 1]; } this.name = src.slice(start, offset); return offset; } }, { key: "parseParameters", value: function parseParameters(start) { var src = this.context.src; var offset = start; var ch = src[offset]; while (ch && ch !== '\n' && ch !== '#') { ch = src[offset += 1]; } this.valueRange = new _Range.default(start, offset); return offset; } }, { key: "parse", value: function parse(context, start) { this.context = context; var offset = this.parseName(start + 1); offset = this.parseParameters(offset); offset = this.parseComment(offset); this.range = new _Range.default(start, offset); return offset; } }, { key: "parameters", get: function get() { var raw = this.rawValue; return raw ? raw.trim().split(/[ \t]+/) : []; } }]); return Directive; }(_Node2.default); exports.default = Directive;