mirror of
https://github.com/danbulant/monaco-yaml
synced 2026-06-24 17:11:59 +00:00
63 lines
1.8 KiB
TypeScript
63 lines
1.8 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
export type ASTNode =
|
|
| ObjectASTNode
|
|
| PropertyASTNode
|
|
| ArrayASTNode
|
|
| StringASTNode
|
|
| NumberASTNode
|
|
| BooleanASTNode
|
|
| NullASTNode;
|
|
|
|
export interface BaseASTNode {
|
|
readonly type:
|
|
| 'object'
|
|
| 'array'
|
|
| 'property'
|
|
| 'string'
|
|
| 'number'
|
|
| 'boolean'
|
|
| 'null';
|
|
readonly parent?: ASTNode;
|
|
readonly offset: number;
|
|
readonly length: number;
|
|
readonly children?: ASTNode[];
|
|
readonly value?: string | boolean | number | null;
|
|
}
|
|
export interface ObjectASTNode extends BaseASTNode {
|
|
readonly type: 'object';
|
|
readonly properties: PropertyASTNode[];
|
|
readonly children: ASTNode[];
|
|
}
|
|
export interface PropertyASTNode extends BaseASTNode {
|
|
readonly type: 'property';
|
|
readonly keyNode: StringASTNode;
|
|
readonly valueNode?: ASTNode;
|
|
readonly colonOffset?: number;
|
|
readonly children: ASTNode[];
|
|
}
|
|
export interface ArrayASTNode extends BaseASTNode {
|
|
readonly type: 'array';
|
|
readonly items: ASTNode[];
|
|
readonly children: ASTNode[];
|
|
}
|
|
export interface StringASTNode extends BaseASTNode {
|
|
readonly type: 'string';
|
|
readonly value: string;
|
|
}
|
|
export interface NumberASTNode extends BaseASTNode {
|
|
readonly type: 'number';
|
|
readonly value: number;
|
|
readonly isInteger: boolean;
|
|
}
|
|
export interface BooleanASTNode extends BaseASTNode {
|
|
readonly type: 'boolean';
|
|
readonly value: boolean;
|
|
}
|
|
export interface NullASTNode extends BaseASTNode {
|
|
readonly type: 'null';
|
|
readonly value: null;
|
|
}
|