import type { BaseNode } from "./base"; export interface Position { /** >= 1 */ line: number; /** >= 0 */ column: number; } export type Range = [number, number]; export interface SourceLocation { start: Position; end: Position; } export interface Locations { loc: SourceLocation; range: Range; } export interface Token extends BaseNode { type: "Boolean" | "Null" | "Identifier" | "Keyword" | "Punctuator" | "JSXIdentifier" | "JSXText" | "Numeric" | "String" | "RegularExpression" | "Template" | "HTMLText" | "HTMLIdentifier" | "MustacheKeyword" | "HTMLComment"; value: string; } export interface Comment extends BaseNode { type: "Line" | "Block"; value: string; }