@spyglassmc/mcdoc 0.1.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/binder/index.d.ts +10 -2
- package/lib/binder/index.js +705 -18
- package/lib/colorizer/index.d.ts +1 -1
- package/lib/colorizer/index.js +8 -14
- package/lib/{binder/util.d.ts → common.d.ts} +4 -1
- package/lib/common.js +11 -0
- package/lib/index.d.ts +9 -6
- package/lib/index.js +14 -42
- package/lib/node/index.d.ts +194 -27
- package/lib/node/index.js +404 -88
- package/lib/parser/index.d.ts +4 -2
- package/lib/parser/index.js +223 -242
- package/lib/type/index.d.ts +70 -41
- package/lib/type/index.js +47 -44
- package/lib/uri_processors.d.ts +4 -0
- package/lib/{binder/uriBinder.js → uri_processors.js} +19 -16
- package/package.json +4 -3
- package/lib/binder/uriBinder.d.ts +0 -3
- package/lib/binder/util.js +0 -16
- package/lib/checker/CheckerContext.d.ts +0 -18
- package/lib/checker/CheckerContext.js +0 -3
- package/lib/checker/entry.d.ts +0 -4
- package/lib/checker/entry.js +0 -358
- package/lib/checker/index.d.ts +0 -2
- package/lib/checker/index.js +0 -18
package/lib/colorizer/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Colorizer, MetaRegistry } from '@spyglassmc/core';
|
|
2
|
-
import type { IdentifierNode, LiteralNode } from '../node';
|
|
2
|
+
import type { IdentifierNode, LiteralNode } from '../node/index.js';
|
|
3
3
|
export declare const identifier: Colorizer<IdentifierNode>;
|
|
4
4
|
export declare const literal: Colorizer<LiteralNode>;
|
|
5
5
|
export declare function registerMcdocColorizer(meta: MetaRegistry): void;
|
package/lib/colorizer/index.js
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const core_1 = require("@spyglassmc/core");
|
|
5
|
-
const identifier = node => {
|
|
6
|
-
return [core_1.ColorToken.create(node, 'variable')];
|
|
1
|
+
import { ColorToken } from '@spyglassmc/core';
|
|
2
|
+
export const identifier = node => {
|
|
3
|
+
return [ColorToken.create(node, 'variable')];
|
|
7
4
|
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return [core_1.ColorToken.create(node, node.colorTokenType ?? 'literal')];
|
|
5
|
+
export const literal = node => {
|
|
6
|
+
return [ColorToken.create(node, node.colorTokenType ?? 'literal')];
|
|
11
7
|
};
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
meta.registerColorizer('mcdoc:
|
|
15
|
-
meta.registerColorizer('mcdoc:identifier', exports.identifier);
|
|
8
|
+
export function registerMcdocColorizer(meta) {
|
|
9
|
+
meta.registerColorizer('mcdoc:literal', literal);
|
|
10
|
+
meta.registerColorizer('mcdoc:identifier', identifier);
|
|
16
11
|
}
|
|
17
|
-
exports.registerMcdocColorizer = registerMcdocColorizer;
|
|
18
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export declare type Segments = readonly string[];
|
|
2
2
|
export declare function identifierToSeg(identifier: string): Segments;
|
|
3
3
|
export declare function segToIdentifier(seg: Segments): string;
|
|
4
|
-
|
|
4
|
+
export interface AdditionalContext {
|
|
5
|
+
moduleIdentifier: string;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=common.d.ts.map
|
package/lib/common.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function identifierToSeg(identifier) {
|
|
2
|
+
const ans = identifier.slice(2).split('::');
|
|
3
|
+
if (ans.length === 1 && ans[0] === '') {
|
|
4
|
+
return [];
|
|
5
|
+
}
|
|
6
|
+
return ans;
|
|
7
|
+
}
|
|
8
|
+
export function segToIdentifier(seg) {
|
|
9
|
+
return `::${seg.join('::')}`;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=common.js.map
|
package/lib/index.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type * as core from '@spyglassmc/core';
|
|
2
|
-
export * as
|
|
3
|
-
export * as colorizer from './colorizer';
|
|
4
|
-
export * from './node';
|
|
5
|
-
export * from './parser';
|
|
6
|
-
export * from './type';
|
|
7
|
-
export
|
|
2
|
+
export * as binder from './binder/index.js';
|
|
3
|
+
export * as colorizer from './colorizer/index.js';
|
|
4
|
+
export * from './node/index.js';
|
|
5
|
+
export * from './parser/index.js';
|
|
6
|
+
export * from './type/index.js';
|
|
7
|
+
export * from './uri_processors.js';
|
|
8
|
+
export declare const initialize: ({ meta }: {
|
|
9
|
+
meta: core.MetaRegistry;
|
|
10
|
+
}) => void;
|
|
8
11
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.js
CHANGED
|
@@ -1,50 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
26
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.initialize = exports.colorizer = exports.checker = void 0;
|
|
30
|
-
const binder = __importStar(require("./binder"));
|
|
31
|
-
const checker = __importStar(require("./checker"));
|
|
32
|
-
const colorizer = __importStar(require("./colorizer"));
|
|
33
|
-
const parser = __importStar(require("./parser"));
|
|
34
|
-
exports.checker = __importStar(require("./checker"));
|
|
35
|
-
exports.colorizer = __importStar(require("./colorizer"));
|
|
36
|
-
__exportStar(require("./node"), exports);
|
|
37
|
-
__exportStar(require("./parser"), exports);
|
|
38
|
-
__exportStar(require("./type"), exports);
|
|
1
|
+
import * as binder from './binder/index.js';
|
|
2
|
+
import * as colorizer from './colorizer/index.js';
|
|
3
|
+
import * as parser from './parser/index.js';
|
|
4
|
+
import * as uri_professors from './uri_processors.js';
|
|
5
|
+
export * as binder from './binder/index.js';
|
|
6
|
+
export * as colorizer from './colorizer/index.js';
|
|
7
|
+
export * from './node/index.js';
|
|
8
|
+
export * from './parser/index.js';
|
|
9
|
+
export * from './type/index.js';
|
|
10
|
+
export * from './uri_processors.js';
|
|
39
11
|
/* istanbul ignore next */
|
|
40
|
-
const initialize = ({ meta }) => {
|
|
12
|
+
export const initialize = ({ meta }) => {
|
|
41
13
|
meta.registerLanguage('mcdoc', {
|
|
42
14
|
extensions: ['.mcdoc'],
|
|
43
15
|
parser: parser.module_,
|
|
44
16
|
});
|
|
45
|
-
meta.
|
|
46
|
-
meta.
|
|
17
|
+
meta.registerUriBinder(uri_professors.uriBinder);
|
|
18
|
+
meta.setUriSorter(uri_professors.uriSorter);
|
|
19
|
+
binder.registerMcdocBinders(meta);
|
|
47
20
|
colorizer.registerMcdocColorizer(meta);
|
|
48
21
|
};
|
|
49
|
-
exports.initialize = initialize;
|
|
50
22
|
//# sourceMappingURL=index.js.map
|
package/lib/node/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { AstNode, ColorTokenType,
|
|
2
|
-
import { CommentNode, ResourceLocationNode, StringNode } from '@spyglassmc/core';
|
|
3
|
-
import type { McdocType } from '../type';
|
|
1
|
+
import type { AstNode, ColorTokenType, IntegerNode, SymbolBaseNode } from '@spyglassmc/core';
|
|
2
|
+
import { CommentNode, FloatNode, ResourceLocationNode, StringNode } from '@spyglassmc/core';
|
|
4
3
|
export interface ModuleNode extends AstNode {
|
|
5
4
|
type: 'mcdoc:module';
|
|
6
5
|
children: TopLevelNode[];
|
|
@@ -17,6 +16,12 @@ export interface DispatchStatementNode extends AstNode {
|
|
|
17
16
|
children: (CommentNode | AttributeNode | LiteralNode | ResourceLocationNode | IndexBodyNode | TypeNode)[];
|
|
18
17
|
}
|
|
19
18
|
export declare const DispatchStatementNode: Readonly<{
|
|
19
|
+
destruct(node: DispatchStatementNode): {
|
|
20
|
+
attributes: AttributeNode[];
|
|
21
|
+
location?: ResourceLocationNode;
|
|
22
|
+
index?: IndexBodyNode;
|
|
23
|
+
target?: TypeNode;
|
|
24
|
+
};
|
|
20
25
|
is(node: AstNode | undefined): node is DispatchStatementNode;
|
|
21
26
|
}>;
|
|
22
27
|
export interface LiteralNode extends AstNode {
|
|
@@ -32,6 +37,9 @@ export interface IndexBodyNode extends AstNode {
|
|
|
32
37
|
children: (CommentNode | IndexNode)[];
|
|
33
38
|
}
|
|
34
39
|
export declare const IndexBodyNode: Readonly<{
|
|
40
|
+
destruct(node: IndexBodyNode): {
|
|
41
|
+
parallelIndices: IndexNode[];
|
|
42
|
+
};
|
|
35
43
|
is(node: AstNode | undefined): node is IndexBodyNode;
|
|
36
44
|
}>;
|
|
37
45
|
export declare type IndexNode = StaticIndexNode | DynamicIndexNode;
|
|
@@ -53,27 +61,38 @@ export interface DynamicIndexNode extends AstNode {
|
|
|
53
61
|
children: (CommentNode | AccessorKeyNode)[];
|
|
54
62
|
}
|
|
55
63
|
export declare const DynamicIndexNode: Readonly<{
|
|
64
|
+
destruct(node: DynamicIndexNode): {
|
|
65
|
+
keys: AccessorKeyNode[];
|
|
66
|
+
};
|
|
56
67
|
is(node: AstNode | undefined): node is DynamicIndexNode;
|
|
57
68
|
}>;
|
|
58
69
|
export declare type AccessorKeyNode = LiteralNode | IdentifierNode | StringNode;
|
|
59
70
|
export declare const AccessorKeyNode: Readonly<{
|
|
60
71
|
is(node: AstNode | undefined): node is AccessorKeyNode;
|
|
61
72
|
}>;
|
|
62
|
-
export declare type TypeNode = AnyTypeNode | BooleanTypeNode | StringTypeNode | LiteralTypeNode | NumericTypeNode | PrimitiveArrayTypeNode | ListTypeNode | TupleTypeNode | EnumNode | StructNode |
|
|
73
|
+
export declare type TypeNode = AnyTypeNode | BooleanTypeNode | StringTypeNode | LiteralTypeNode | NumericTypeNode | PrimitiveArrayTypeNode | ListTypeNode | TupleTypeNode | EnumNode | StructNode | ReferenceTypeNode | DispatcherTypeNode | UnionTypeNode;
|
|
63
74
|
export declare const TypeNode: Readonly<{
|
|
64
75
|
is(node: AstNode | undefined): node is TypeNode;
|
|
65
|
-
asType(node: TypeNode): McdocType;
|
|
66
76
|
}>;
|
|
67
77
|
export interface TypeBaseNode<CN extends AstNode> extends AstNode {
|
|
68
78
|
type: `mcdoc:${string}`;
|
|
69
79
|
children: (CommentNode | AttributeNode | IndexBodyNode | CN)[];
|
|
70
80
|
}
|
|
81
|
+
export declare const TypeBaseNode: Readonly<{
|
|
82
|
+
destruct(node: TypeBaseNode<any>): {
|
|
83
|
+
attributes: AttributeNode[];
|
|
84
|
+
indices: IndexBodyNode[];
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
71
87
|
export interface AttributeNode extends AstNode {
|
|
72
88
|
type: 'mcdoc:attribute';
|
|
73
89
|
children: (CommentNode | IdentifierNode | AttributeValueNode)[];
|
|
74
|
-
sep?: boolean;
|
|
75
90
|
}
|
|
76
91
|
export declare const AttributeNode: Readonly<{
|
|
92
|
+
destruct(node: AttributeNode): {
|
|
93
|
+
name: IdentifierNode;
|
|
94
|
+
value: AttributeValueNode | undefined;
|
|
95
|
+
};
|
|
77
96
|
is(node: AstNode | undefined): node is AttributeNode;
|
|
78
97
|
}>;
|
|
79
98
|
export declare type AttributeValueNode = TypeNode | AttributeTreeNode;
|
|
@@ -86,6 +105,10 @@ export interface AttributeTreeNode extends AstNode {
|
|
|
86
105
|
delim: '(' | '[' | '{';
|
|
87
106
|
}
|
|
88
107
|
export declare const AttributeTreeNode: Readonly<{
|
|
108
|
+
destruct(node: AttributeTreeNode): {
|
|
109
|
+
positional?: AttributeTreePosValuesNode;
|
|
110
|
+
named?: AttributeTreeNamedValuesNode;
|
|
111
|
+
};
|
|
89
112
|
is(node: AstNode | undefined): node is AttributeTreeNode;
|
|
90
113
|
}>;
|
|
91
114
|
export interface AttributeTreePosValuesNode extends AstNode {
|
|
@@ -93,6 +116,9 @@ export interface AttributeTreePosValuesNode extends AstNode {
|
|
|
93
116
|
children: (CommentNode | AttributeValueNode)[];
|
|
94
117
|
}
|
|
95
118
|
export declare const AttributeTreePosValuesNode: Readonly<{
|
|
119
|
+
destruct(node: AttributeTreePosValuesNode): {
|
|
120
|
+
values: AttributeValueNode[];
|
|
121
|
+
};
|
|
96
122
|
is(node: AstNode | undefined): node is AttributeTreePosValuesNode;
|
|
97
123
|
}>;
|
|
98
124
|
export interface AttributeTreeNamedValuesNode extends AstNode {
|
|
@@ -100,8 +126,15 @@ export interface AttributeTreeNamedValuesNode extends AstNode {
|
|
|
100
126
|
children: (CommentNode | IdentifierNode | StringNode | AttributeValueNode)[];
|
|
101
127
|
}
|
|
102
128
|
export declare const AttributeTreeNamedValuesNode: Readonly<{
|
|
129
|
+
destruct(node: AttributeTreeNamedValuesNode): {
|
|
130
|
+
values: AttributeTreeNamedKeyValuePair[];
|
|
131
|
+
};
|
|
103
132
|
is(node: AstNode | undefined): node is AttributeTreeNamedValuesNode;
|
|
104
133
|
}>;
|
|
134
|
+
export interface AttributeTreeNamedKeyValuePair {
|
|
135
|
+
key: IdentifierNode | StringNode;
|
|
136
|
+
value: AttributeValueNode;
|
|
137
|
+
}
|
|
105
138
|
export interface AnyTypeNode extends TypeBaseNode<LiteralNode> {
|
|
106
139
|
type: 'mcdoc:type/any';
|
|
107
140
|
}
|
|
@@ -114,83 +147,146 @@ export interface BooleanTypeNode extends TypeBaseNode<LiteralNode> {
|
|
|
114
147
|
export declare const BooleanTypeNode: Readonly<{
|
|
115
148
|
is(node: AstNode | undefined): node is BooleanTypeNode;
|
|
116
149
|
}>;
|
|
117
|
-
export interface StringTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
|
|
118
|
-
type: 'mcdoc:type/string';
|
|
119
|
-
}
|
|
120
|
-
export declare const StringTypeNode: Readonly<{
|
|
121
|
-
is(node: AstNode | undefined): node is StringTypeNode;
|
|
122
|
-
}>;
|
|
123
150
|
export interface IntRangeNode extends AstNode {
|
|
124
151
|
type: 'mcdoc:int_range';
|
|
125
|
-
children: IntegerNode[];
|
|
152
|
+
children: (IntegerNode | LiteralNode)[];
|
|
126
153
|
}
|
|
127
154
|
export declare const IntRangeNode: Readonly<{
|
|
155
|
+
destruct(node: IntRangeNode): {
|
|
156
|
+
kind: RangeKind;
|
|
157
|
+
min?: IntegerNode;
|
|
158
|
+
max?: IntegerNode;
|
|
159
|
+
};
|
|
128
160
|
is(node: AstNode | undefined): node is IntRangeNode;
|
|
129
161
|
}>;
|
|
130
|
-
export interface LiteralTypeNode extends TypeBaseNode<
|
|
162
|
+
export interface LiteralTypeNode extends TypeBaseNode<LiteralTypeValueNode> {
|
|
131
163
|
type: 'mcdoc:type/literal';
|
|
132
164
|
}
|
|
133
165
|
export declare const LiteralTypeNode: Readonly<{
|
|
166
|
+
destruct(node: LiteralTypeNode): {
|
|
167
|
+
value: LiteralTypeValueNode;
|
|
168
|
+
};
|
|
134
169
|
is(node: AstNode | undefined): node is LiteralTypeNode;
|
|
135
170
|
}>;
|
|
171
|
+
export declare type LiteralTypeValueNode = LiteralNode | TypedNumberNode | StringNode;
|
|
172
|
+
export declare const LiteralTypeValueNode: Readonly<{
|
|
173
|
+
is(node: AstNode | undefined): node is LiteralTypeValueNode;
|
|
174
|
+
}>;
|
|
136
175
|
export interface TypedNumberNode extends AstNode {
|
|
137
176
|
type: 'mcdoc:typed_number';
|
|
138
177
|
children: (FloatNode | LiteralNode)[];
|
|
139
178
|
}
|
|
140
179
|
export declare const TypedNumberNode: Readonly<{
|
|
180
|
+
destruct(node: TypedNumberNode): {
|
|
181
|
+
value: FloatNode;
|
|
182
|
+
suffix?: LiteralNode;
|
|
183
|
+
};
|
|
141
184
|
is(node: AstNode | undefined): node is TypedNumberNode;
|
|
142
185
|
}>;
|
|
143
186
|
export interface NumericTypeNode extends TypeBaseNode<LiteralNode | FloatRangeNode | IntRangeNode> {
|
|
144
187
|
type: 'mcdoc:type/numeric_type';
|
|
145
188
|
}
|
|
146
189
|
export declare const NumericTypeNode: Readonly<{
|
|
190
|
+
destruct(node: NumericTypeNode): {
|
|
191
|
+
numericKind: LiteralNode;
|
|
192
|
+
valueRange?: FloatRangeNode | IntRangeNode;
|
|
193
|
+
};
|
|
147
194
|
is(node: AstNode | undefined): node is NumericTypeNode;
|
|
148
195
|
}>;
|
|
196
|
+
export declare const RangeExclusiveChar = "<";
|
|
197
|
+
/**
|
|
198
|
+
* A 2-bit binary number is used to represent the kind of range.
|
|
199
|
+
* The first bit from the left represents the start, the second bit from the left represents the end.
|
|
200
|
+
* The bit is turned on if the range is exclusive on that end.
|
|
201
|
+
*/
|
|
202
|
+
export declare type RangeKind = 0b00 | 0b01 | 0b10 | 0b11;
|
|
203
|
+
export declare function getRangeDelimiter(kind: RangeKind): string;
|
|
149
204
|
export interface FloatRangeNode extends AstNode {
|
|
150
205
|
type: 'mcdoc:float_range';
|
|
151
|
-
children: FloatNode[];
|
|
206
|
+
children: (FloatNode | LiteralNode)[];
|
|
152
207
|
}
|
|
153
208
|
export declare const FloatRangeNode: Readonly<{
|
|
209
|
+
destruct(node: FloatRangeNode): {
|
|
210
|
+
kind: RangeKind;
|
|
211
|
+
min?: FloatNode;
|
|
212
|
+
max?: FloatNode;
|
|
213
|
+
};
|
|
154
214
|
is(node: AstNode | undefined): node is FloatRangeNode;
|
|
155
215
|
}>;
|
|
156
|
-
export interface PrimitiveArrayTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode
|
|
216
|
+
export interface PrimitiveArrayTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
|
|
157
217
|
type: 'mcdoc:type/primitive_array';
|
|
158
218
|
}
|
|
159
219
|
export declare const PrimitiveArrayTypeNode: Readonly<{
|
|
220
|
+
destruct(node: PrimitiveArrayTypeNode): {
|
|
221
|
+
arrayKind: LiteralNode;
|
|
222
|
+
lengthRange?: IntRangeNode | undefined;
|
|
223
|
+
valueRange?: IntRangeNode | undefined;
|
|
224
|
+
};
|
|
160
225
|
is(node: AstNode | undefined): node is PrimitiveArrayTypeNode;
|
|
161
226
|
}>;
|
|
162
227
|
export interface ListTypeNode extends TypeBaseNode<TypeNode | IntRangeNode> {
|
|
163
228
|
type: 'mcdoc:type/list';
|
|
164
229
|
}
|
|
165
230
|
export declare const ListTypeNode: Readonly<{
|
|
231
|
+
destruct(node: ListTypeNode): {
|
|
232
|
+
item: TypeNode;
|
|
233
|
+
lengthRange?: IntRangeNode;
|
|
234
|
+
};
|
|
166
235
|
is(node: AstNode | undefined): node is ListTypeNode;
|
|
167
236
|
}>;
|
|
237
|
+
export interface StringTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode> {
|
|
238
|
+
type: 'mcdoc:type/string';
|
|
239
|
+
}
|
|
240
|
+
export declare const StringTypeNode: Readonly<{
|
|
241
|
+
destruct(node: StringTypeNode): {
|
|
242
|
+
lengthRange?: IntRangeNode;
|
|
243
|
+
};
|
|
244
|
+
is(node: AstNode | undefined): node is StringTypeNode;
|
|
245
|
+
}>;
|
|
168
246
|
export interface TupleTypeNode extends TypeBaseNode<TypeNode> {
|
|
169
247
|
type: 'mcdoc:type/tuple';
|
|
170
248
|
}
|
|
171
249
|
export declare const TupleTypeNode: Readonly<{
|
|
250
|
+
destruct(node: TupleTypeNode): {
|
|
251
|
+
items: TypeNode[];
|
|
252
|
+
};
|
|
172
253
|
is(node: AstNode | undefined): node is TupleTypeNode;
|
|
173
254
|
}>;
|
|
174
255
|
export interface EnumNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | EnumBlockNode> {
|
|
175
256
|
type: 'mcdoc:enum';
|
|
176
257
|
}
|
|
258
|
+
declare const EnumKinds: Set<"string" | "float" | "byte" | "short" | "int" | "long" | "double">;
|
|
259
|
+
export declare type EnumKind = typeof EnumKinds extends Set<infer V> ? V : never;
|
|
177
260
|
export declare const EnumNode: Readonly<{
|
|
261
|
+
kinds: Set<"string" | "float" | "byte" | "short" | "int" | "long" | "double">;
|
|
262
|
+
destruct(node: EnumNode): {
|
|
263
|
+
block: EnumBlockNode;
|
|
264
|
+
docComments?: DocCommentsNode;
|
|
265
|
+
enumKind?: EnumKind;
|
|
266
|
+
identifier?: IdentifierNode;
|
|
267
|
+
keyword: LiteralNode;
|
|
268
|
+
};
|
|
178
269
|
is(node: AstNode | undefined): node is EnumNode;
|
|
179
|
-
kinds: Set<"string" | "float" | "long" | "short" | "double" | "byte" | "int">;
|
|
180
270
|
}>;
|
|
181
|
-
export declare type EnumKind = typeof EnumNode['kinds'] extends Set<infer V> ? V : never;
|
|
182
271
|
export interface DocCommentsNode extends AstNode {
|
|
183
272
|
type: 'mcdoc:doc_comments';
|
|
184
273
|
children: CommentNode[];
|
|
185
274
|
}
|
|
186
275
|
export declare const DocCommentsNode: Readonly<{
|
|
276
|
+
/**
|
|
277
|
+
* @returns The text content of this doc comment block.
|
|
278
|
+
*/
|
|
279
|
+
asText(node: DocCommentsNode | undefined): string | undefined;
|
|
187
280
|
is(node: AstNode | undefined): node is DocCommentsNode;
|
|
188
281
|
}>;
|
|
189
282
|
export interface EnumBlockNode extends AstNode {
|
|
190
283
|
type: 'mcdoc:enum/block';
|
|
191
|
-
children: (CommentNode | EnumFieldNode
|
|
284
|
+
children: (CommentNode | EnumFieldNode)[];
|
|
192
285
|
}
|
|
193
286
|
export declare const EnumBlockNode: Readonly<{
|
|
287
|
+
destruct(node: EnumBlockNode): {
|
|
288
|
+
fields: EnumFieldNode[];
|
|
289
|
+
};
|
|
194
290
|
is(node: AstNode | undefined): node is EnumBlockNode;
|
|
195
291
|
}>;
|
|
196
292
|
export interface EnumFieldNode extends AstNode {
|
|
@@ -198,6 +294,11 @@ export interface EnumFieldNode extends AstNode {
|
|
|
198
294
|
children: (CommentNode | PrelimNode | IdentifierNode | EnumValueNode)[];
|
|
199
295
|
}
|
|
200
296
|
export declare const EnumFieldNode: Readonly<{
|
|
297
|
+
destruct(node: EnumFieldNode): {
|
|
298
|
+
attributes: AttributeNode[];
|
|
299
|
+
identifier: IdentifierNode;
|
|
300
|
+
value: EnumValueNode;
|
|
301
|
+
};
|
|
201
302
|
is(node: AstNode | undefined): node is EnumFieldNode;
|
|
202
303
|
}>;
|
|
203
304
|
export declare type EnumValueNode = TypedNumberNode | StringNode;
|
|
@@ -208,27 +309,46 @@ export declare type PrelimNode = AttributeNode | DocCommentsNode;
|
|
|
208
309
|
export declare const PrelimNode: Readonly<{
|
|
209
310
|
is(node: AstNode | undefined): node is PrelimNode;
|
|
210
311
|
}>;
|
|
211
|
-
export interface StructNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode |
|
|
312
|
+
export interface StructNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | StructBlockNode> {
|
|
212
313
|
type: 'mcdoc:struct';
|
|
213
314
|
}
|
|
214
315
|
export declare const StructNode: Readonly<{
|
|
316
|
+
destruct(node: StructNode): {
|
|
317
|
+
block: StructBlockNode;
|
|
318
|
+
docComments?: DocCommentsNode;
|
|
319
|
+
identifier?: IdentifierNode;
|
|
320
|
+
keyword: LiteralNode;
|
|
321
|
+
};
|
|
215
322
|
is(node: AstNode | undefined): node is StructNode;
|
|
216
323
|
}>;
|
|
217
|
-
export interface
|
|
218
|
-
type: 'mcdoc:type/
|
|
324
|
+
export interface ReferenceTypeNode extends TypeBaseNode<PathNode | TypeNode> {
|
|
325
|
+
type: 'mcdoc:type/reference';
|
|
219
326
|
}
|
|
327
|
+
export declare const ReferenceTypeNode: Readonly<{
|
|
328
|
+
destruct(node: ReferenceTypeNode): {
|
|
329
|
+
path: PathNode;
|
|
330
|
+
typeParameters: TypeNode[];
|
|
331
|
+
};
|
|
332
|
+
is(node: AstNode | undefined): node is ReferenceTypeNode;
|
|
333
|
+
}>;
|
|
220
334
|
export interface TypeParamBlockNode extends AstNode {
|
|
221
335
|
type: 'mcdoc:type_param_block';
|
|
222
336
|
children: (CommentNode | TypeParamNode)[];
|
|
223
337
|
}
|
|
224
338
|
export declare const TypeParamBlockNode: Readonly<{
|
|
339
|
+
destruct(node: TypeParamBlockNode): {
|
|
340
|
+
params: TypeParamNode[];
|
|
341
|
+
};
|
|
225
342
|
is(node: AstNode | undefined): node is TypeParamBlockNode;
|
|
226
343
|
}>;
|
|
227
344
|
export interface TypeParamNode extends AstNode {
|
|
228
345
|
type: 'mcdoc:type_param';
|
|
229
|
-
children: (CommentNode | IdentifierNode | LiteralNode
|
|
346
|
+
children: (CommentNode | IdentifierNode | LiteralNode)[];
|
|
230
347
|
}
|
|
231
348
|
export declare const TypeParamNode: Readonly<{
|
|
349
|
+
destruct(node: TypeParamNode): {
|
|
350
|
+
identifier: IdentifierNode;
|
|
351
|
+
};
|
|
232
352
|
is(node: AstNode | undefined): node is TypeParamNode;
|
|
233
353
|
}>;
|
|
234
354
|
export interface PathNode extends AstNode {
|
|
@@ -237,13 +357,21 @@ export interface PathNode extends AstNode {
|
|
|
237
357
|
isAbsolute?: boolean;
|
|
238
358
|
}
|
|
239
359
|
export declare const PathNode: Readonly<{
|
|
360
|
+
destruct(node: PathNode | undefined): {
|
|
361
|
+
children: (LiteralNode | IdentifierNode)[];
|
|
362
|
+
isAbsolute?: boolean;
|
|
363
|
+
lastIdentifier?: IdentifierNode;
|
|
364
|
+
};
|
|
240
365
|
is(node: AstNode | undefined): node is PathNode;
|
|
241
366
|
}>;
|
|
242
367
|
export interface StructBlockNode extends AstNode {
|
|
243
368
|
type: 'mcdoc:struct/block';
|
|
244
|
-
children: (CommentNode | StructFieldNode
|
|
369
|
+
children: (CommentNode | StructFieldNode)[];
|
|
245
370
|
}
|
|
246
371
|
export declare const StructBlockNode: Readonly<{
|
|
372
|
+
destruct(node: StructBlockNode): {
|
|
373
|
+
fields: StructFieldNode[];
|
|
374
|
+
};
|
|
247
375
|
is(node: AstNode | undefined): node is StructBlockNode;
|
|
248
376
|
}>;
|
|
249
377
|
export declare type StructFieldNode = StructPairFieldNode | StructSpreadFieldNode;
|
|
@@ -256,6 +384,12 @@ export interface StructPairFieldNode extends AstNode {
|
|
|
256
384
|
isOptional?: boolean;
|
|
257
385
|
}
|
|
258
386
|
export declare const StructPairFieldNode: Readonly<{
|
|
387
|
+
destruct(node: StructPairFieldNode): {
|
|
388
|
+
attributes: AttributeNode[];
|
|
389
|
+
key: StructKeyNode;
|
|
390
|
+
type: TypeNode;
|
|
391
|
+
isOptional?: boolean;
|
|
392
|
+
};
|
|
259
393
|
is(node: AstNode | undefined): node is StructPairFieldNode;
|
|
260
394
|
}>;
|
|
261
395
|
export declare type StructKeyNode = StringNode | IdentifierNode | StructMapKeyNode;
|
|
@@ -267,6 +401,9 @@ export interface StructMapKeyNode extends AstNode {
|
|
|
267
401
|
children: (CommentNode | TypeNode)[];
|
|
268
402
|
}
|
|
269
403
|
export declare const StructMapKeyNode: Readonly<{
|
|
404
|
+
destruct(node: StructMapKeyNode): {
|
|
405
|
+
type: TypeNode;
|
|
406
|
+
};
|
|
270
407
|
is(node: AstNode | undefined): node is StructMapKeyNode;
|
|
271
408
|
}>;
|
|
272
409
|
export interface StructSpreadFieldNode extends AstNode {
|
|
@@ -274,27 +411,45 @@ export interface StructSpreadFieldNode extends AstNode {
|
|
|
274
411
|
children: (CommentNode | AttributeNode | TypeNode)[];
|
|
275
412
|
}
|
|
276
413
|
export declare const StructSpreadFieldNode: Readonly<{
|
|
414
|
+
destruct(node: StructSpreadFieldNode): {
|
|
415
|
+
attributes: AttributeNode[];
|
|
416
|
+
type: TypeNode;
|
|
417
|
+
};
|
|
277
418
|
is(node: AstNode | undefined): node is StructSpreadFieldNode;
|
|
278
419
|
}>;
|
|
279
420
|
export interface DispatcherTypeNode extends TypeBaseNode<ResourceLocationNode | IndexBodyNode> {
|
|
280
421
|
type: 'mcdoc:type/dispatcher';
|
|
281
422
|
}
|
|
282
423
|
export declare const DispatcherTypeNode: Readonly<{
|
|
424
|
+
destruct(node: DispatcherTypeNode): {
|
|
425
|
+
location: ResourceLocationNode;
|
|
426
|
+
index: IndexBodyNode;
|
|
427
|
+
};
|
|
283
428
|
is(node: AstNode | undefined): node is DispatcherTypeNode;
|
|
284
429
|
}>;
|
|
285
430
|
export interface UnionTypeNode extends TypeBaseNode<TypeNode> {
|
|
286
431
|
type: 'mcdoc:type/union';
|
|
287
432
|
}
|
|
288
433
|
export declare const UnionTypeNode: Readonly<{
|
|
434
|
+
destruct(node: UnionTypeNode): {
|
|
435
|
+
members: TypeNode[];
|
|
436
|
+
};
|
|
289
437
|
is(node: AstNode | undefined): node is UnionTypeNode;
|
|
290
438
|
}>;
|
|
291
439
|
export interface InjectionNode extends AstNode {
|
|
292
440
|
type: 'mcdoc:injection';
|
|
293
|
-
children: (CommentNode | LiteralNode |
|
|
441
|
+
children: (CommentNode | LiteralNode | InjectionContentNode)[];
|
|
294
442
|
}
|
|
295
443
|
export declare const InjectionNode: Readonly<{
|
|
444
|
+
destruct(node: InjectionNode): {
|
|
445
|
+
injection: InjectionContentNode;
|
|
446
|
+
};
|
|
296
447
|
is(node: AstNode | undefined): node is InjectionNode;
|
|
297
448
|
}>;
|
|
449
|
+
export declare type InjectionContentNode = EnumInjectionNode | StructInjectionNode;
|
|
450
|
+
export declare const InjectionContentNode: Readonly<{
|
|
451
|
+
is(node: AstNode | undefined): node is InjectionContentNode;
|
|
452
|
+
}>;
|
|
298
453
|
export interface EnumInjectionNode extends AstNode {
|
|
299
454
|
type: 'mcdoc:injection/enum';
|
|
300
455
|
children: (CommentNode | LiteralNode | PathNode | EnumBlockNode)[];
|
|
@@ -304,16 +459,23 @@ export declare const EnumInjectionNode: Readonly<{
|
|
|
304
459
|
}>;
|
|
305
460
|
export interface StructInjectionNode extends AstNode {
|
|
306
461
|
type: 'mcdoc:injection/struct';
|
|
307
|
-
children: (CommentNode | LiteralNode | PathNode |
|
|
462
|
+
children: (CommentNode | LiteralNode | PathNode | StructBlockNode)[];
|
|
308
463
|
}
|
|
309
464
|
export declare const StructInjectionNode: Readonly<{
|
|
310
465
|
is(node: AstNode | undefined): node is StructInjectionNode;
|
|
311
466
|
}>;
|
|
312
467
|
export interface TypeAliasNode extends AstNode {
|
|
313
468
|
type: 'mcdoc:type_alias';
|
|
314
|
-
children: (CommentNode |
|
|
469
|
+
children: (CommentNode | DocCommentsNode | LiteralNode | IdentifierNode | TypeParamBlockNode | TypeNode)[];
|
|
315
470
|
}
|
|
316
471
|
export declare const TypeAliasNode: Readonly<{
|
|
472
|
+
destruct(node: TypeAliasNode): {
|
|
473
|
+
docComments?: DocCommentsNode;
|
|
474
|
+
identifier?: IdentifierNode;
|
|
475
|
+
keyword: LiteralNode;
|
|
476
|
+
typeParams?: TypeParamBlockNode;
|
|
477
|
+
rhs?: TypeNode;
|
|
478
|
+
};
|
|
317
479
|
is(node: AstNode | undefined): node is TypeAliasNode;
|
|
318
480
|
}>;
|
|
319
481
|
export interface UseStatementNode extends AstNode {
|
|
@@ -321,6 +483,11 @@ export interface UseStatementNode extends AstNode {
|
|
|
321
483
|
children: (CommentNode | LiteralNode | PathNode | IdentifierNode)[];
|
|
322
484
|
}
|
|
323
485
|
export declare const UseStatementNode: Readonly<{
|
|
486
|
+
destruct(node: UseStatementNode): {
|
|
487
|
+
binding?: IdentifierNode;
|
|
488
|
+
path?: PathNode;
|
|
489
|
+
};
|
|
324
490
|
is(node: AstNode | undefined): node is UseStatementNode;
|
|
325
491
|
}>;
|
|
492
|
+
export {};
|
|
326
493
|
//# sourceMappingURL=index.d.ts.map
|