@eagleoutice/flowr - v2.15.8
    Preparing search index...

    Variable SourceRange

    SourceRange: {
        add(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): SourceRange;
        combineRanges(this: void, ...ranges: SourceRange[]): SourceRange[];
        compare(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): number;
        containsPosition(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            line: number,
            column?: number,
        ): boolean;
        equals(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        format(
            this: void,
            range:
                | [
                    startLine: number,
                    startColumn: number,
                    endLine: number,
                    endColumn: number,
                    f?: string,
                ]
                | undefined,
        ): string;
        formatPosition(this: void, pos: SourcePosition | undefined): string;
        from(
            this: void,
            sl: string | number,
            sc: string | number,
            el?: string | number,
            ec?: string | number,
        ): SourceRange;
        fromNode<OtherInfo>(
            this: void,
            node: RNode<OtherInfo> | undefined,
        ): SourceRange | undefined;
        getEnd: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            SourcePosition,
        >;
        getEndColumn: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            number,
        >;
        getEndLine: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            number,
        >;
        getStart: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            SourcePosition,
        >;
        getStartColumn: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            number,
        >;
        getStartLine: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            number,
        >;
        innermostNodes<OtherInfo>(
            this: void,
            nodes: readonly RNodeWithParent<OtherInfo>[],
            treatChildAsInner?: boolean,
        ): RNodeWithParent<OtherInfo>[];
        invalid(this: void): SourceRange;
        isSingleLine(
            this: void,
            range: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        isStrictSubsetOf(
            this: void,
            r1: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            r2: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        isSubsetOf(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        isValid(
            this: void,
            range:
                | [
                    startLine: number,
                    startColumn: number,
                    endLine: number,
                    endColumn: number,
                    f?: string,
                ]
                | undefined,
        ): range is [
            startLine: number,
            startColumn: number,
            endLine: number,
            endColumn: number,
            f?: string,
        ];
        lineCount(
            this: void,
            range: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): number;
        merge(
            this: void,
            rs: readonly (
                | [
                    startLine: number,
                    startColumn: number,
                    endLine: number,
                    endColumn: number,
                    f?: (...)
                    | (...),
                ]
                | undefined
            )[],
        ): SourceRange;
        name: "SourceRange";
        nodesContaining<OtherInfo>(
            this: void,
            nodes: readonly RNodeWithParent<OtherInfo>[],
            line: number,
            column?: number,
        ): RNodeWithParent<OtherInfo>[];
        overlap(
            this: void,
            r1: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            r2: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        startsCompletelyBefore(
            this: void,
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            __namedParameters: [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
        ): boolean;
        view: Accessor<
            [
                startLine: number,
                startColumn: number,
                endLine: number,
                endColumn: number,
                f?: string,
            ],
            SourceLocationView,
        >;
    }

    Utility functions for source ranges.

    Type Declaration

    • add: function
      • Calculates the component-wise sum of two ranges.

        Parameters

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

        Returns SourceRange

    • combineRanges: function
      • Reduces the ranges to those no other one contains, keeping the first of any duplicates. Ranges that merely overlap are both kept, as neither contains the other. A non-empty input always yields a non-empty result.

        Parameters

        Returns SourceRange[]

        SourceRange.merge for merging multiple ranges into a single range.

    • compare: function
      • Provides a comparator for SourceRanges that sorts them in ascending order.

        Parameters

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

        Returns number

        a positive number if r1 comes after r2, a negative number if r1 comes before r2, and 0 if they are equal

    • containsPosition: function
      • Checks if a given position (line, column) is contained within the range. Omitting the column checks whether the line is covered at all.

        Parameters

        • this: void
        • __namedParameters: [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ]
        • line: number
        • Optionalcolumn: number

        Returns boolean

    • equals: function
      • Checks if two ranges are equal (i.e., they start and end at the same position).

        Parameters

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

        Returns boolean

    • format: function
      • Prints a range as a human-readable string.

        Parameters

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

        Returns string

    • formatPosition: function
    • from: function
      • Creates a source range from the given line and column numbers.

        Parameters

        • this: void
        • sl: string | number

          start line

        • sc: string | number

          start column

        • el: string | number = sl

          end line

        • ec: string | number = sc

          end column

        Returns SourceRange

    • fromNode: function
    • ReadonlygetEnd: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          SourcePosition,
      >

      Returns the end position of a source range, or undefined if there is no range.

    • ReadonlygetEndColumn: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          number,
      >

      Returns the end column of a source range, or undefined if there is no range.

    • ReadonlygetEndLine: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          number,
      >

      Returns the end line of a source range, or undefined if there is no range.

    • ReadonlygetStart: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          SourcePosition,
      >

      Returns the start position of a source range, or undefined if there is no range.

    • ReadonlygetStartColumn: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          number,
      >

      Returns the start column of a source range, or undefined if there is no range.

    • ReadonlygetStartLine: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          number,
      >

      Returns the start line of a source range, or undefined if there is no range.

    • innermostNodes: function
      • Collects all nodes satisfying the innermost condition: those containing no other of the given nodes.

        Nodes may share a range (a function call and the symbol naming it do), so treatChildAsInner decides that tie: with it, a node sharing its parent's range counts as the inner one and the parent drops out; without it, both are kept and the caller may pick between them (e.g. by node type).

        A non-empty input always yields a non-empty result: enclosure is a strict order so some node is always minimal, and a node carrying no range at all is kept rather than dropped.

        Type Parameters

        • OtherInfo

        Parameters

        Returns RNodeWithParent<OtherInfo>[]

        SourceRange.nodesContaining which this usually narrows down

    • invalid: function
    • isSingleLine: function
      • Whether the range starts and ends on the same line.

        Parameters

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

        Returns boolean

    • isStrictSubsetOf: function
      • Checks if the first range is a strict subset of the second range (i.e., it is a subset but not equal).

        Parameters

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

        Returns boolean

    • isSubsetOf: function
      • Checks if the first range is a subset of the second range.

        Parameters

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

        Returns boolean

    • isValid: function
      • Whether the range is a real one, i.e., not the invalid range and not absent.

        Parameters

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

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

    • lineCount: function
      • The number of lines the range spans (always at least 1 for a valid range).

        Parameters

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

        Returns number

    • merge: function
      • Merges multiple source ranges into a single source range that spans from the earliest start to the latest end. If you are interested in reducing a set of ranges to those none of the others contains, see combineRanges.

        Parameters

        • this: void
        • rs: readonly (
              | [
                  startLine: number,
                  startColumn: number,
                  endLine: number,
                  endColumn: number,
                  f?: (...)
                  | (...),
              ]
              | undefined
          )[]

        Returns SourceRange

        if no ranges are provided

    • Readonlyname: "SourceRange"
    • nodesContaining: function
    • overlap: function
      • Checks if the two ranges overlap, i.e. whether neither of them lies completely before the other.

        Parameters

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

        Returns boolean

    • startsCompletelyBefore: function
      • Parameters

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

        Returns boolean

        true iff r1 starts and ends before r2 starts (i.e., if r1 and r2 do not overlap and r1 comes before r2

    • Readonlyview: Accessor<
          [
              startLine: number,
              startColumn: number,
              endLine: number,
              endColumn: number,
              f?: string,
          ],
          SourceLocationView,
      >

      Wraps the range in a view offering property access (range.startLine) and methods. The view does not copy the tuple; see SourceLocationView for when to use it.