2020-05-25 15:52:11 +02:00
|
|
|
|
2020-05-27 20:59:45 +02:00
|
|
|
import { Type } from "./types"
|
2020-05-28 14:08:49 +02:00
|
|
|
import { Diagnostic } from "./diagnostics"
|
2020-05-25 15:52:11 +02:00
|
|
|
import { Package } from "./common"
|
|
|
|
import { TextSpan } from "./text"
|
|
|
|
|
|
|
|
export function setParents(node: Syntax): void;
|
|
|
|
|
|
|
|
export type SyntaxRange = [Syntax, Syntax];
|
|
|
|
|
|
|
|
export function isSyntax(value: any): value is Syntax;
|
|
|
|
|
2020-05-26 20:59:44 +02:00
|
|
|
interface SyntaxBase {
|
2020-05-25 15:52:11 +02:00
|
|
|
id: number;
|
2020-05-26 20:59:44 +02:00
|
|
|
kind: SyntaxKind;
|
2020-05-27 19:57:15 +02:00
|
|
|
type?: Type;
|
2020-05-28 14:08:49 +02:00
|
|
|
errors: Diagnostic[]
|
2020-05-26 16:55:41 +02:00
|
|
|
parentNode: Syntax | null;
|
2020-05-25 15:52:11 +02:00
|
|
|
span: TextSpan | null;
|
2020-05-26 20:59:44 +02:00
|
|
|
visit(visitors: NodeVisitor[]): void;
|
2020-05-26 16:55:41 +02:00
|
|
|
preorder(): IterableIterator<Syntax>;
|
2020-05-26 20:59:44 +02:00
|
|
|
getParentOfKind<K1 extends SyntaxKind>(kind: K1): ResolveSyntaxKind<K1> | null;
|
2020-05-26 16:55:41 +02:00
|
|
|
getChildNodes(): IterableIterator<Syntax>,
|
2020-05-25 15:52:11 +02:00
|
|
|
findAllChildrenOfKind<K1 extends SyntaxKind>(kind: K1): IterableIterator<ResolveSyntaxKind<K1>>;
|
|
|
|
}
|
|
|
|
|
|
|
|
export type ResolveSyntaxKind<K extends SyntaxKind> = Extract<Syntax, { kind: K }>;
|
|
|
|
|
|
|
|
|