{"version":3,"sources":["../../src/core/positions.ts"],"sourcesContent":["\r\nexport interface Position {\r\n  pos: number;\r\n  row: number;\r\n  col: number;\r\n}\r\n\r\n/**\r\n * Position utilities for working with source positions.\r\n */\r\nexport const Position = {\r\n  /**\r\n   * Represents an unknown or uninitialized position.\r\n   * Use this instead of inline { pos: 0, row: 0, col: 0 } for clarity.\r\n   * pos: -1 distinguishes \"unknown\" from \"start of file\" (pos: 0).\r\n   */\r\n  unknown: Object.freeze({ pos: -1, row: 0, col: 0 }) as Position,\r\n\r\n  /**\r\n   * Checks if a position is unknown/uninitialized.\r\n   * @param pos - The position to check\r\n   * @returns true if the position is unknown (pos === -1)\r\n   */\r\n  isUnknown(pos: Position): boolean {\r\n    return pos.pos === -1;\r\n  },\r\n\r\n  /**\r\n   * Creates a new Position object.\r\n   * @param pos - Absolute character position (0-based)\r\n   * @param row - Line number (1-based)\r\n   * @param col - Column number (1-based)\r\n   */\r\n  create(pos: number, row: number, col: number): Position {\r\n    return { pos, row, col };\r\n  }\r\n};\r\n\r\ninterface PositionRange {\r\n  getStartPos(): Position;\r\n\r\n  getEndPos(): Position;\r\n}\r\n\r\nexport default PositionRange;\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMtB,SAAS,OAAO,OAAO,EAAE,KAAK,IAAI,KAAK,GAAG,KAAK,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOlD,UAAU,KAAwB;AAChC,WAAO,IAAI,QAAQ;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,OAAO,KAAa,KAAa,KAAuB;AACtD,WAAO,EAAE,KAAK,KAAK,IAAI;AAAA,EACzB;AACF;","names":[]}