SourceLocation: {
    compare(
        this: void,
        loc1: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
        loc2: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
    ): number;
    format(
        this: void,
        location:
            | undefined
            | [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
    ): string;
    from(
        this: void,
        range: SourceRange,
        file?: string,
    ): [
        startLine: number,
        startColumn: number,
        endLine: number,
        endColumn: number,
        f?: string,
    ];
    fromNode<OtherInfo>(
        this: void,
        node: RNode<OtherInfo>,
    ):
        | undefined
        | [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ];
    getFile(
        this: void,
        location: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
    ): undefined
    | string;
    getRange(
        this: void,
        location: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
    ): SourceRange;
    invalid(
        this: void,
    ): [
        startLine: number,
        startColumn: number,
        endLine: number,
        endColumn: number,
        f?: string,
    ];
    isSubsetOf(
        this: void,
        loc1: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
        loc2: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
    ): boolean;
    mapFile(
        this: void,
        loc: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ],
        fileMapper: (file: undefined | string) => string,
    ): [
        startLine: number,
        startColumn: number,
        endLine: number,
        endColumn: number,
        f?: string,
    ];
    merge(
        this: void,
        locs: (
            | undefined
            | [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ]
        )[],
    ): | undefined
    | [
        startLine: number,
        startColumn: number,
        endLine: number,
        endColumn: number,
        f?: string,
    ];
}

Utility functions for source locations.

Type declaration

  • compare:function
    • Parameters

      • this: void
      • loc1: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]
      • loc2: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]

      Returns number

  • format:function
    • Formats a source location as a human-readable string.

      Parameters

      • this: void
      • location:
            | undefined
            | [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ]

      Returns string

  • from:function
    • Returns the file part of a source location, or undefined if no file is set.

      Parameters

      Returns [
          startLine: number,
          startColumn: number,
          endLine: number,
          endColumn: number,
          f?: string,
      ]

  • fromNode:function
    • Creates a source location from a source range and a file name.

      Type Parameters

      • OtherInfo

      Parameters

      Returns
          | undefined
          | [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ]

      undefined if the given range is undefined

      SourceRange.fromNode for getting the range from an AST node

  • getFile:function
    • Parameters

      • this: void
      • location: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]

      Returns undefined | string

  • getRange:function
    • Returns the source range part of a source location.

      Parameters

      • this: void
      • location: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]

      Returns SourceRange

  • invalid:function
    • Returns an invalid source location (i.e., with an invalid range and no file).

      Parameters

      • this: void

      Returns [
          startLine: number,
          startColumn: number,
          endLine: number,
          endColumn: number,
          f?: string,
      ]

  • isSubsetOf:function
    • Checks if the first location is a subset of the second location. For this, they must be in the same file!

      Parameters

      • this: void
      • loc1: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]
      • loc2: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]

      Returns boolean

  • mapFile:function
    • Maps the file part of a source location using the given mapper function.

      Parameters

      • this: void
      • loc: [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ]
      • fileMapper: (file: undefined | string) => string

      Returns [
          startLine: number,
          startColumn: number,
          endLine: number,
          endColumn: number,
          f?: string,
      ]

  • merge:function
    • Merges multiple source locations into a single source location that spans from the earliest start to the latest end. If the locations are from different files, undefined is returned. Files may be undefined themselves, but if there is at least one defined file, they must all be the same defined file for the merge to succeed.

      Parameters

      • this: void
      • locs: (
            | undefined
            | [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ]
        )[]

      Returns
          | undefined
          | [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ]