import defineInspect from "../jsutils/defineInspect.mjs"; /** * Contains a range of UTF-8 character offsets and token references that * identify the region of the source from which the AST derived. */ export var Location = /*#__PURE__*/function () { /** * The character offset at which this Node begins. */ /** * The character offset at which this Node ends. */ /** * The Token at which this Node begins. */ /** * The Token at which this Node ends. */ /** * The Source document the AST represents. */ function Location(startToken, endToken, source) { this.start = startToken.start; this.end = endToken.end; this.startToken = startToken; this.endToken = endToken; this.source = source; } var _proto = Location.prototype; _proto.toJSON = function toJSON() { return { start: this.start, end: this.end }; }; return Location; }(); // Print a simplified form when appearing in `inspect` and `util.inspect`. defineInspect(Location); /** * Represents a range of characters represented by a lexical token * within a Source. */ export var Token = /*#__PURE__*/function () { /** * The kind of Token. */ /** * The character offset at which this Node begins. */ /** * The character offset at which this Node ends. */ /** * The 1-indexed line number on which this Token appears. */ /** * The 1-indexed column number at which this Token begins. */ /** * For non-punctuation tokens, represents the interpreted value of the token. */ /** * Tokens exist as nodes in a double-linked-list amongst all tokens * including ignored tokens. is always the first node and * the last. */ function Token(kind, start, end, line, column, prev, value) { this.kind = kind; this.start = start; this.end = end; this.line = line; this.column = column; this.value = value; this.prev = prev; this.next = null; } var _proto2 = Token.prototype; _proto2.toJSON = function toJSON() { return { kind: this.kind, value: this.value, line: this.line, column: this.column }; }; return Token; }(); // Print a simplified form when appearing in `inspect` and `util.inspect`. defineInspect(Token); /** * @internal */ export function isNode(maybeNode) { return maybeNode != null && typeof maybeNode.kind === 'string'; } /** * The list of all possible AST node types. */