@glimmer/syntax
Version:
25 lines (24 loc) • 1.22 kB
TypeScript
import type { PresentArray } from '@glimmer/interfaces';
import type { LocatedWithOptionalSpan, LocatedWithSpan } from './location';
import type { SourceOffset } from './span';
import { SourceSpan } from './span';
export type HasSpan = SourceSpan | LocatedWithSpan | PresentArray<LocatedWithSpan>;
export type MaybeHasSpan = SourceSpan | LocatedWithOptionalSpan | LocatedWithOptionalSpan[] | null;
export type ToSourceOffset = number | SourceOffset;
export declare class SpanList {
static range(span: PresentArray<HasSourceSpan>): SourceSpan;
static range(span: HasSourceSpan[], fallback: SourceSpan): SourceSpan;
_span: SourceSpan[];
constructor(span?: SourceSpan[]);
add(offset: SourceSpan): void;
getRangeOffset(fallback: SourceSpan): SourceSpan;
}
export type HasSourceSpan = {
loc: SourceSpan;
} | SourceSpan | [HasSourceSpan, ...HasSourceSpan[]];
export declare function loc(span: HasSourceSpan): SourceSpan;
export type MaybeHasSourceSpan = {
loc: SourceSpan;
} | SourceSpan | MaybeHasSourceSpan[];
export declare function hasSpan(span: MaybeHasSourceSpan): span is HasSourceSpan;
export declare function maybeLoc(location: MaybeHasSourceSpan, fallback: SourceSpan): SourceSpan;