import _classCallCheck from "@babel/runtime/helpers/classCallCheck"; import _createClass from "@babel/runtime/helpers/createClass"; import _inherits from "@babel/runtime/helpers/inherits"; import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn"; import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf"; function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } import { Type } from '../constants'; import { Node } from './Node'; import { Range } from './Range'; export var Directive = /*#__PURE__*/function (_Node) { _inherits(Directive, _Node); var _super = _createSuper(Directive); function Directive() { var _this; _classCallCheck(this, Directive); _this = _super.call(this, Type.DIRECTIVE); _this.name = null; return _this; } _createClass(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(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(start, offset); return offset; } }, { key: "parameters", get: function get() { var raw = this.rawValue; return raw ? raw.trim().split(/[ \t]+/) : []; } }]); return Directive; }(Node);