@spyglassmc/mcdoc 0.1.0
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/README.md +20 -0
- package/lib/binder/index.d.ts +3 -0
- package/lib/binder/index.js +19 -0
- package/lib/binder/uriBinder.d.ts +3 -0
- package/lib/binder/uriBinder.js +50 -0
- package/lib/binder/util.d.ts +4 -0
- package/lib/binder/util.js +16 -0
- package/lib/checker/CheckerContext.d.ts +18 -0
- package/lib/checker/CheckerContext.js +3 -0
- package/lib/checker/entry.d.ts +4 -0
- package/lib/checker/entry.js +358 -0
- package/lib/checker/index.d.ts +2 -0
- package/lib/checker/index.js +18 -0
- package/lib/colorizer/index.d.ts +6 -0
- package/lib/colorizer/index.js +18 -0
- package/lib/index.d.ts +8 -0
- package/lib/index.js +50 -0
- package/lib/node/index.d.ts +326 -0
- package/lib/node/index.js +277 -0
- package/lib/parser/index.d.ts +44 -0
- package/lib/parser/index.js +631 -0
- package/lib/type/index.d.ts +161 -0
- package/lib/type/index.js +398 -0
- package/package.json +30 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
import type { AstNode, ColorTokenType, FloatNode, IntegerNode, SymbolBaseNode } from '@spyglassmc/core';
|
|
2
|
+
import { CommentNode, ResourceLocationNode, StringNode } from '@spyglassmc/core';
|
|
3
|
+
import type { McdocType } from '../type';
|
|
4
|
+
export interface ModuleNode extends AstNode {
|
|
5
|
+
type: 'mcdoc:module';
|
|
6
|
+
children: TopLevelNode[];
|
|
7
|
+
}
|
|
8
|
+
export declare const ModuleNode: Readonly<{
|
|
9
|
+
is(node: AstNode | undefined): node is ModuleNode;
|
|
10
|
+
}>;
|
|
11
|
+
export declare type TopLevelNode = CommentNode | DispatchStatementNode | EnumNode | InjectionNode | StructNode | TypeAliasNode | UseStatementNode;
|
|
12
|
+
export declare const TopLevelNode: Readonly<{
|
|
13
|
+
is(node: AstNode | undefined): node is TopLevelNode;
|
|
14
|
+
}>;
|
|
15
|
+
export interface DispatchStatementNode extends AstNode {
|
|
16
|
+
type: 'mcdoc:dispatch_statement';
|
|
17
|
+
children: (CommentNode | AttributeNode | LiteralNode | ResourceLocationNode | IndexBodyNode | TypeNode)[];
|
|
18
|
+
}
|
|
19
|
+
export declare const DispatchStatementNode: Readonly<{
|
|
20
|
+
is(node: AstNode | undefined): node is DispatchStatementNode;
|
|
21
|
+
}>;
|
|
22
|
+
export interface LiteralNode extends AstNode {
|
|
23
|
+
type: 'mcdoc:literal';
|
|
24
|
+
value: string;
|
|
25
|
+
colorTokenType?: ColorTokenType;
|
|
26
|
+
}
|
|
27
|
+
export declare const LiteralNode: Readonly<{
|
|
28
|
+
is(node: AstNode | undefined): node is LiteralNode;
|
|
29
|
+
}>;
|
|
30
|
+
export interface IndexBodyNode extends AstNode {
|
|
31
|
+
type: 'mcdoc:index_body';
|
|
32
|
+
children: (CommentNode | IndexNode)[];
|
|
33
|
+
}
|
|
34
|
+
export declare const IndexBodyNode: Readonly<{
|
|
35
|
+
is(node: AstNode | undefined): node is IndexBodyNode;
|
|
36
|
+
}>;
|
|
37
|
+
export declare type IndexNode = StaticIndexNode | DynamicIndexNode;
|
|
38
|
+
export declare const IndexNode: Readonly<{
|
|
39
|
+
is(node: AstNode | undefined): node is IndexNode;
|
|
40
|
+
}>;
|
|
41
|
+
export declare type StaticIndexNode = LiteralNode | IdentifierNode | StringNode | ResourceLocationNode;
|
|
42
|
+
export declare const StaticIndexNode: Readonly<{
|
|
43
|
+
is(node: AstNode | undefined): node is StaticIndexNode;
|
|
44
|
+
}>;
|
|
45
|
+
export interface IdentifierNode extends SymbolBaseNode {
|
|
46
|
+
type: 'mcdoc:identifier';
|
|
47
|
+
}
|
|
48
|
+
export declare const IdentifierNode: Readonly<{
|
|
49
|
+
is(node: AstNode | undefined): node is IdentifierNode;
|
|
50
|
+
}>;
|
|
51
|
+
export interface DynamicIndexNode extends AstNode {
|
|
52
|
+
type: 'mcdoc:dynamic_index';
|
|
53
|
+
children: (CommentNode | AccessorKeyNode)[];
|
|
54
|
+
}
|
|
55
|
+
export declare const DynamicIndexNode: Readonly<{
|
|
56
|
+
is(node: AstNode | undefined): node is DynamicIndexNode;
|
|
57
|
+
}>;
|
|
58
|
+
export declare type AccessorKeyNode = LiteralNode | IdentifierNode | StringNode;
|
|
59
|
+
export declare const AccessorKeyNode: Readonly<{
|
|
60
|
+
is(node: AstNode | undefined): node is AccessorKeyNode;
|
|
61
|
+
}>;
|
|
62
|
+
export declare type TypeNode = AnyTypeNode | BooleanTypeNode | StringTypeNode | LiteralTypeNode | NumericTypeNode | PrimitiveArrayTypeNode | ListTypeNode | TupleTypeNode | EnumNode | StructNode | PathTypeNode | DispatcherTypeNode | UnionTypeNode;
|
|
63
|
+
export declare const TypeNode: Readonly<{
|
|
64
|
+
is(node: AstNode | undefined): node is TypeNode;
|
|
65
|
+
asType(node: TypeNode): McdocType;
|
|
66
|
+
}>;
|
|
67
|
+
export interface TypeBaseNode<CN extends AstNode> extends AstNode {
|
|
68
|
+
type: `mcdoc:${string}`;
|
|
69
|
+
children: (CommentNode | AttributeNode | IndexBodyNode | CN)[];
|
|
70
|
+
}
|
|
71
|
+
export interface AttributeNode extends AstNode {
|
|
72
|
+
type: 'mcdoc:attribute';
|
|
73
|
+
children: (CommentNode | IdentifierNode | AttributeValueNode)[];
|
|
74
|
+
sep?: boolean;
|
|
75
|
+
}
|
|
76
|
+
export declare const AttributeNode: Readonly<{
|
|
77
|
+
is(node: AstNode | undefined): node is AttributeNode;
|
|
78
|
+
}>;
|
|
79
|
+
export declare type AttributeValueNode = TypeNode | AttributeTreeNode;
|
|
80
|
+
export declare const AttributeValueNode: Readonly<{
|
|
81
|
+
is(node: AstNode | undefined): node is AttributeValueNode;
|
|
82
|
+
}>;
|
|
83
|
+
export interface AttributeTreeNode extends AstNode {
|
|
84
|
+
type: 'mcdoc:attribute/tree';
|
|
85
|
+
children: (CommentNode | AttributeTreePosValuesNode | AttributeTreeNamedValuesNode)[];
|
|
86
|
+
delim: '(' | '[' | '{';
|
|
87
|
+
}
|
|
88
|
+
export declare const AttributeTreeNode: Readonly<{
|
|
89
|
+
is(node: AstNode | undefined): node is AttributeTreeNode;
|
|
90
|
+
}>;
|
|
91
|
+
export interface AttributeTreePosValuesNode extends AstNode {
|
|
92
|
+
type: 'mcdoc:attribute/tree/pos';
|
|
93
|
+
children: (CommentNode | AttributeValueNode)[];
|
|
94
|
+
}
|
|
95
|
+
export declare const AttributeTreePosValuesNode: Readonly<{
|
|
96
|
+
is(node: AstNode | undefined): node is AttributeTreePosValuesNode;
|
|
97
|
+
}>;
|
|
98
|
+
export interface AttributeTreeNamedValuesNode extends AstNode {
|
|
99
|
+
type: 'mcdoc:attribute/tree/named';
|
|
100
|
+
children: (CommentNode | IdentifierNode | StringNode | AttributeValueNode)[];
|
|
101
|
+
}
|
|
102
|
+
export declare const AttributeTreeNamedValuesNode: Readonly<{
|
|
103
|
+
is(node: AstNode | undefined): node is AttributeTreeNamedValuesNode;
|
|
104
|
+
}>;
|
|
105
|
+
export interface AnyTypeNode extends TypeBaseNode<LiteralNode> {
|
|
106
|
+
type: 'mcdoc:type/any';
|
|
107
|
+
}
|
|
108
|
+
export declare const AnyTypeNode: Readonly<{
|
|
109
|
+
is(node: AstNode | undefined): node is AnyTypeNode;
|
|
110
|
+
}>;
|
|
111
|
+
export interface BooleanTypeNode extends TypeBaseNode<LiteralNode> {
|
|
112
|
+
type: 'mcdoc:type/boolean';
|
|
113
|
+
}
|
|
114
|
+
export declare const BooleanTypeNode: Readonly<{
|
|
115
|
+
is(node: AstNode | undefined): node is BooleanTypeNode;
|
|
116
|
+
}>;
|
|
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
|
+
export interface IntRangeNode extends AstNode {
|
|
124
|
+
type: 'mcdoc:int_range';
|
|
125
|
+
children: IntegerNode[];
|
|
126
|
+
}
|
|
127
|
+
export declare const IntRangeNode: Readonly<{
|
|
128
|
+
is(node: AstNode | undefined): node is IntRangeNode;
|
|
129
|
+
}>;
|
|
130
|
+
export interface LiteralTypeNode extends TypeBaseNode<LiteralNode | TypedNumberNode | StringNode> {
|
|
131
|
+
type: 'mcdoc:type/literal';
|
|
132
|
+
}
|
|
133
|
+
export declare const LiteralTypeNode: Readonly<{
|
|
134
|
+
is(node: AstNode | undefined): node is LiteralTypeNode;
|
|
135
|
+
}>;
|
|
136
|
+
export interface TypedNumberNode extends AstNode {
|
|
137
|
+
type: 'mcdoc:typed_number';
|
|
138
|
+
children: (FloatNode | LiteralNode)[];
|
|
139
|
+
}
|
|
140
|
+
export declare const TypedNumberNode: Readonly<{
|
|
141
|
+
is(node: AstNode | undefined): node is TypedNumberNode;
|
|
142
|
+
}>;
|
|
143
|
+
export interface NumericTypeNode extends TypeBaseNode<LiteralNode | FloatRangeNode | IntRangeNode> {
|
|
144
|
+
type: 'mcdoc:type/numeric_type';
|
|
145
|
+
}
|
|
146
|
+
export declare const NumericTypeNode: Readonly<{
|
|
147
|
+
is(node: AstNode | undefined): node is NumericTypeNode;
|
|
148
|
+
}>;
|
|
149
|
+
export interface FloatRangeNode extends AstNode {
|
|
150
|
+
type: 'mcdoc:float_range';
|
|
151
|
+
children: FloatNode[];
|
|
152
|
+
}
|
|
153
|
+
export declare const FloatRangeNode: Readonly<{
|
|
154
|
+
is(node: AstNode | undefined): node is FloatRangeNode;
|
|
155
|
+
}>;
|
|
156
|
+
export interface PrimitiveArrayTypeNode extends TypeBaseNode<LiteralNode | IntRangeNode | FloatRangeNode> {
|
|
157
|
+
type: 'mcdoc:type/primitive_array';
|
|
158
|
+
}
|
|
159
|
+
export declare const PrimitiveArrayTypeNode: Readonly<{
|
|
160
|
+
is(node: AstNode | undefined): node is PrimitiveArrayTypeNode;
|
|
161
|
+
}>;
|
|
162
|
+
export interface ListTypeNode extends TypeBaseNode<TypeNode | IntRangeNode> {
|
|
163
|
+
type: 'mcdoc:type/list';
|
|
164
|
+
}
|
|
165
|
+
export declare const ListTypeNode: Readonly<{
|
|
166
|
+
is(node: AstNode | undefined): node is ListTypeNode;
|
|
167
|
+
}>;
|
|
168
|
+
export interface TupleTypeNode extends TypeBaseNode<TypeNode> {
|
|
169
|
+
type: 'mcdoc:type/tuple';
|
|
170
|
+
}
|
|
171
|
+
export declare const TupleTypeNode: Readonly<{
|
|
172
|
+
is(node: AstNode | undefined): node is TupleTypeNode;
|
|
173
|
+
}>;
|
|
174
|
+
export interface EnumNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | EnumBlockNode> {
|
|
175
|
+
type: 'mcdoc:enum';
|
|
176
|
+
}
|
|
177
|
+
export declare const EnumNode: Readonly<{
|
|
178
|
+
is(node: AstNode | undefined): node is EnumNode;
|
|
179
|
+
kinds: Set<"string" | "float" | "long" | "short" | "double" | "byte" | "int">;
|
|
180
|
+
}>;
|
|
181
|
+
export declare type EnumKind = typeof EnumNode['kinds'] extends Set<infer V> ? V : never;
|
|
182
|
+
export interface DocCommentsNode extends AstNode {
|
|
183
|
+
type: 'mcdoc:doc_comments';
|
|
184
|
+
children: CommentNode[];
|
|
185
|
+
}
|
|
186
|
+
export declare const DocCommentsNode: Readonly<{
|
|
187
|
+
is(node: AstNode | undefined): node is DocCommentsNode;
|
|
188
|
+
}>;
|
|
189
|
+
export interface EnumBlockNode extends AstNode {
|
|
190
|
+
type: 'mcdoc:enum/block';
|
|
191
|
+
children: (CommentNode | EnumFieldNode | PrelimNode)[];
|
|
192
|
+
}
|
|
193
|
+
export declare const EnumBlockNode: Readonly<{
|
|
194
|
+
is(node: AstNode | undefined): node is EnumBlockNode;
|
|
195
|
+
}>;
|
|
196
|
+
export interface EnumFieldNode extends AstNode {
|
|
197
|
+
type: 'mcdoc:enum/field';
|
|
198
|
+
children: (CommentNode | PrelimNode | IdentifierNode | EnumValueNode)[];
|
|
199
|
+
}
|
|
200
|
+
export declare const EnumFieldNode: Readonly<{
|
|
201
|
+
is(node: AstNode | undefined): node is EnumFieldNode;
|
|
202
|
+
}>;
|
|
203
|
+
export declare type EnumValueNode = TypedNumberNode | StringNode;
|
|
204
|
+
export declare const EnumValueNode: Readonly<{
|
|
205
|
+
is(node: AstNode | undefined): node is EnumValueNode;
|
|
206
|
+
}>;
|
|
207
|
+
export declare type PrelimNode = AttributeNode | DocCommentsNode;
|
|
208
|
+
export declare const PrelimNode: Readonly<{
|
|
209
|
+
is(node: AstNode | undefined): node is PrelimNode;
|
|
210
|
+
}>;
|
|
211
|
+
export interface StructNode extends TypeBaseNode<DocCommentsNode | LiteralNode | IdentifierNode | TypeParamBlockNode | StructBlockNode> {
|
|
212
|
+
type: 'mcdoc:struct';
|
|
213
|
+
}
|
|
214
|
+
export declare const StructNode: Readonly<{
|
|
215
|
+
is(node: AstNode | undefined): node is StructNode;
|
|
216
|
+
}>;
|
|
217
|
+
export interface PathTypeNode extends TypeBaseNode<PathNode | TypeNode> {
|
|
218
|
+
type: 'mcdoc:type/path';
|
|
219
|
+
}
|
|
220
|
+
export interface TypeParamBlockNode extends AstNode {
|
|
221
|
+
type: 'mcdoc:type_param_block';
|
|
222
|
+
children: (CommentNode | TypeParamNode)[];
|
|
223
|
+
}
|
|
224
|
+
export declare const TypeParamBlockNode: Readonly<{
|
|
225
|
+
is(node: AstNode | undefined): node is TypeParamBlockNode;
|
|
226
|
+
}>;
|
|
227
|
+
export interface TypeParamNode extends AstNode {
|
|
228
|
+
type: 'mcdoc:type_param';
|
|
229
|
+
children: (CommentNode | IdentifierNode | LiteralNode | PathNode)[];
|
|
230
|
+
}
|
|
231
|
+
export declare const TypeParamNode: Readonly<{
|
|
232
|
+
is(node: AstNode | undefined): node is TypeParamNode;
|
|
233
|
+
}>;
|
|
234
|
+
export interface PathNode extends AstNode {
|
|
235
|
+
type: 'mcdoc:path';
|
|
236
|
+
children: (LiteralNode | IdentifierNode)[];
|
|
237
|
+
isAbsolute?: boolean;
|
|
238
|
+
}
|
|
239
|
+
export declare const PathNode: Readonly<{
|
|
240
|
+
is(node: AstNode | undefined): node is PathNode;
|
|
241
|
+
}>;
|
|
242
|
+
export interface StructBlockNode extends AstNode {
|
|
243
|
+
type: 'mcdoc:struct/block';
|
|
244
|
+
children: (CommentNode | StructFieldNode | PrelimNode)[];
|
|
245
|
+
}
|
|
246
|
+
export declare const StructBlockNode: Readonly<{
|
|
247
|
+
is(node: AstNode | undefined): node is StructBlockNode;
|
|
248
|
+
}>;
|
|
249
|
+
export declare type StructFieldNode = StructPairFieldNode | StructSpreadFieldNode;
|
|
250
|
+
export declare const StructFieldNode: Readonly<{
|
|
251
|
+
is(node: AstNode | undefined): node is StructFieldNode;
|
|
252
|
+
}>;
|
|
253
|
+
export interface StructPairFieldNode extends AstNode {
|
|
254
|
+
type: 'mcdoc:struct/field/pair';
|
|
255
|
+
children: (CommentNode | PrelimNode | StructKeyNode | TypeNode)[];
|
|
256
|
+
isOptional?: boolean;
|
|
257
|
+
}
|
|
258
|
+
export declare const StructPairFieldNode: Readonly<{
|
|
259
|
+
is(node: AstNode | undefined): node is StructPairFieldNode;
|
|
260
|
+
}>;
|
|
261
|
+
export declare type StructKeyNode = StringNode | IdentifierNode | StructMapKeyNode;
|
|
262
|
+
export declare const StructKeyNode: Readonly<{
|
|
263
|
+
is(node: AstNode | undefined): node is StructKeyNode;
|
|
264
|
+
}>;
|
|
265
|
+
export interface StructMapKeyNode extends AstNode {
|
|
266
|
+
type: 'mcdoc:struct/map_key';
|
|
267
|
+
children: (CommentNode | TypeNode)[];
|
|
268
|
+
}
|
|
269
|
+
export declare const StructMapKeyNode: Readonly<{
|
|
270
|
+
is(node: AstNode | undefined): node is StructMapKeyNode;
|
|
271
|
+
}>;
|
|
272
|
+
export interface StructSpreadFieldNode extends AstNode {
|
|
273
|
+
type: 'mcdoc:struct/field/spread';
|
|
274
|
+
children: (CommentNode | AttributeNode | TypeNode)[];
|
|
275
|
+
}
|
|
276
|
+
export declare const StructSpreadFieldNode: Readonly<{
|
|
277
|
+
is(node: AstNode | undefined): node is StructSpreadFieldNode;
|
|
278
|
+
}>;
|
|
279
|
+
export interface DispatcherTypeNode extends TypeBaseNode<ResourceLocationNode | IndexBodyNode> {
|
|
280
|
+
type: 'mcdoc:type/dispatcher';
|
|
281
|
+
}
|
|
282
|
+
export declare const DispatcherTypeNode: Readonly<{
|
|
283
|
+
is(node: AstNode | undefined): node is DispatcherTypeNode;
|
|
284
|
+
}>;
|
|
285
|
+
export interface UnionTypeNode extends TypeBaseNode<TypeNode> {
|
|
286
|
+
type: 'mcdoc:type/union';
|
|
287
|
+
}
|
|
288
|
+
export declare const UnionTypeNode: Readonly<{
|
|
289
|
+
is(node: AstNode | undefined): node is UnionTypeNode;
|
|
290
|
+
}>;
|
|
291
|
+
export interface InjectionNode extends AstNode {
|
|
292
|
+
type: 'mcdoc:injection';
|
|
293
|
+
children: (CommentNode | LiteralNode | EnumInjectionNode | StructInjectionNode)[];
|
|
294
|
+
}
|
|
295
|
+
export declare const InjectionNode: Readonly<{
|
|
296
|
+
is(node: AstNode | undefined): node is InjectionNode;
|
|
297
|
+
}>;
|
|
298
|
+
export interface EnumInjectionNode extends AstNode {
|
|
299
|
+
type: 'mcdoc:injection/enum';
|
|
300
|
+
children: (CommentNode | LiteralNode | PathNode | EnumBlockNode)[];
|
|
301
|
+
}
|
|
302
|
+
export declare const EnumInjectionNode: Readonly<{
|
|
303
|
+
is(node: AstNode | undefined): node is EnumInjectionNode;
|
|
304
|
+
}>;
|
|
305
|
+
export interface StructInjectionNode extends AstNode {
|
|
306
|
+
type: 'mcdoc:injection/struct';
|
|
307
|
+
children: (CommentNode | LiteralNode | PathNode | TypeParamBlockNode | StructBlockNode)[];
|
|
308
|
+
}
|
|
309
|
+
export declare const StructInjectionNode: Readonly<{
|
|
310
|
+
is(node: AstNode | undefined): node is StructInjectionNode;
|
|
311
|
+
}>;
|
|
312
|
+
export interface TypeAliasNode extends AstNode {
|
|
313
|
+
type: 'mcdoc:type_alias';
|
|
314
|
+
children: (CommentNode | PrelimNode | LiteralNode | IdentifierNode | TypeParamBlockNode | TypeNode)[];
|
|
315
|
+
}
|
|
316
|
+
export declare const TypeAliasNode: Readonly<{
|
|
317
|
+
is(node: AstNode | undefined): node is TypeAliasNode;
|
|
318
|
+
}>;
|
|
319
|
+
export interface UseStatementNode extends AstNode {
|
|
320
|
+
type: 'mcdoc:use_statement';
|
|
321
|
+
children: (CommentNode | LiteralNode | PathNode | IdentifierNode)[];
|
|
322
|
+
}
|
|
323
|
+
export declare const UseStatementNode: Readonly<{
|
|
324
|
+
is(node: AstNode | undefined): node is UseStatementNode;
|
|
325
|
+
}>;
|
|
326
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UseStatementNode = exports.TypeAliasNode = exports.StructInjectionNode = exports.EnumInjectionNode = exports.InjectionNode = exports.UnionTypeNode = exports.DispatcherTypeNode = exports.StructSpreadFieldNode = exports.StructMapKeyNode = exports.StructKeyNode = exports.StructPairFieldNode = exports.StructFieldNode = exports.StructBlockNode = exports.PathNode = exports.TypeParamNode = exports.TypeParamBlockNode = exports.StructNode = exports.PrelimNode = exports.EnumValueNode = exports.EnumFieldNode = exports.EnumBlockNode = exports.DocCommentsNode = exports.EnumNode = exports.TupleTypeNode = exports.ListTypeNode = exports.PrimitiveArrayTypeNode = exports.FloatRangeNode = exports.NumericTypeNode = exports.TypedNumberNode = exports.LiteralTypeNode = exports.IntRangeNode = exports.StringTypeNode = exports.BooleanTypeNode = exports.AnyTypeNode = exports.AttributeTreeNamedValuesNode = exports.AttributeTreePosValuesNode = exports.AttributeTreeNode = exports.AttributeValueNode = exports.AttributeNode = exports.TypeNode = exports.AccessorKeyNode = exports.DynamicIndexNode = exports.IdentifierNode = exports.StaticIndexNode = exports.IndexNode = exports.IndexBodyNode = exports.LiteralNode = exports.DispatchStatementNode = exports.TopLevelNode = exports.ModuleNode = void 0;
|
|
4
|
+
const core_1 = require("@spyglassmc/core");
|
|
5
|
+
exports.ModuleNode = Object.freeze({
|
|
6
|
+
is(node) {
|
|
7
|
+
return node?.type === 'mcdoc:module';
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
exports.TopLevelNode = Object.freeze({
|
|
11
|
+
is(node) {
|
|
12
|
+
return (core_1.CommentNode.is(node) ||
|
|
13
|
+
exports.DispatchStatementNode.is(node) ||
|
|
14
|
+
exports.EnumNode.is(node) ||
|
|
15
|
+
exports.InjectionNode.is(node) ||
|
|
16
|
+
exports.StructNode.is(node) ||
|
|
17
|
+
exports.TypeAliasNode.is(node) ||
|
|
18
|
+
exports.UseStatementNode.is(node));
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
exports.DispatchStatementNode = Object.freeze({
|
|
22
|
+
is(node) {
|
|
23
|
+
return node?.type === 'mcdoc:dispatch_statement';
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
exports.LiteralNode = Object.freeze({
|
|
27
|
+
is(node) {
|
|
28
|
+
return node?.type === 'mcdoc:literal';
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
exports.IndexBodyNode = Object.freeze({
|
|
32
|
+
is(node) {
|
|
33
|
+
return node?.type === 'mcdoc:index_body';
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
exports.IndexNode = Object.freeze({
|
|
37
|
+
is(node) {
|
|
38
|
+
return exports.StaticIndexNode.is(node) || exports.DynamicIndexNode.is(node);
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
exports.StaticIndexNode = Object.freeze({
|
|
42
|
+
is(node) {
|
|
43
|
+
return exports.LiteralNode.is(node) || exports.IdentifierNode.is(node) || core_1.StringNode.is(node) || core_1.ResourceLocationNode.is(node);
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
exports.IdentifierNode = Object.freeze({
|
|
47
|
+
is(node) {
|
|
48
|
+
return node?.type === 'mcdoc:identifier';
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
exports.DynamicIndexNode = Object.freeze({
|
|
52
|
+
is(node) {
|
|
53
|
+
return node?.type === 'mcdoc:dynamic_index';
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
exports.AccessorKeyNode = Object.freeze({
|
|
57
|
+
is(node) {
|
|
58
|
+
return exports.LiteralNode.is(node) || exports.IdentifierNode.is(node) || core_1.StringNode.is(node);
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
exports.TypeNode = Object.freeze({
|
|
62
|
+
is(node) {
|
|
63
|
+
return (exports.AnyTypeNode.is(node) ||
|
|
64
|
+
exports.BooleanTypeNode.is(node) ||
|
|
65
|
+
exports.StringTypeNode.is(node) ||
|
|
66
|
+
exports.LiteralTypeNode.is(node) ||
|
|
67
|
+
exports.NumericTypeNode.is(node) ||
|
|
68
|
+
exports.PrimitiveArrayTypeNode.is(node) ||
|
|
69
|
+
exports.ListTypeNode.is(node) ||
|
|
70
|
+
exports.TupleTypeNode.is(node) ||
|
|
71
|
+
exports.EnumNode.is(node) ||
|
|
72
|
+
exports.StructNode.is(node) ||
|
|
73
|
+
exports.PathNode.is(node) ||
|
|
74
|
+
exports.DispatcherTypeNode.is(node) ||
|
|
75
|
+
exports.UnionTypeNode.is(node));
|
|
76
|
+
},
|
|
77
|
+
asType(node) {
|
|
78
|
+
throw '// TODO';
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
exports.AttributeNode = Object.freeze({
|
|
82
|
+
is(node) {
|
|
83
|
+
return node?.type === 'mcdoc:attribute';
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
exports.AttributeValueNode = Object.freeze({
|
|
87
|
+
is(node) {
|
|
88
|
+
return exports.TypeNode.is(node) || exports.AttributeTreeNode.is(node);
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
exports.AttributeTreeNode = Object.freeze({
|
|
92
|
+
is(node) {
|
|
93
|
+
return node?.type === 'mcdoc:attribute/tree';
|
|
94
|
+
},
|
|
95
|
+
});
|
|
96
|
+
exports.AttributeTreePosValuesNode = Object.freeze({
|
|
97
|
+
is(node) {
|
|
98
|
+
return node?.type === 'mcdoc:attribute/tree/pos';
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
exports.AttributeTreeNamedValuesNode = Object.freeze({
|
|
102
|
+
is(node) {
|
|
103
|
+
return node?.type === 'mcdoc:attribute/tree/named';
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
exports.AnyTypeNode = Object.freeze({
|
|
107
|
+
is(node) {
|
|
108
|
+
return node?.type === 'mcdoc:type/any';
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
exports.BooleanTypeNode = Object.freeze({
|
|
112
|
+
is(node) {
|
|
113
|
+
return node?.type === 'mcdoc:type/boolean';
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
exports.StringTypeNode = Object.freeze({
|
|
117
|
+
is(node) {
|
|
118
|
+
return node?.type === 'mcdoc:type/string';
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
exports.IntRangeNode = Object.freeze({
|
|
122
|
+
is(node) {
|
|
123
|
+
return node?.type === 'mcdoc:int_range';
|
|
124
|
+
},
|
|
125
|
+
});
|
|
126
|
+
exports.LiteralTypeNode = Object.freeze({
|
|
127
|
+
is(node) {
|
|
128
|
+
return node?.type === 'mcdoc:type/literal';
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
exports.TypedNumberNode = Object.freeze({
|
|
132
|
+
is(node) {
|
|
133
|
+
return node?.type === 'mcdoc:typed_number';
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
exports.NumericTypeNode = Object.freeze({
|
|
137
|
+
is(node) {
|
|
138
|
+
return node?.type === 'mcdoc:type/numeric_type';
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
exports.FloatRangeNode = Object.freeze({
|
|
142
|
+
is(node) {
|
|
143
|
+
return node?.type === 'mcdoc:float_range';
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
exports.PrimitiveArrayTypeNode = Object.freeze({
|
|
147
|
+
is(node) {
|
|
148
|
+
return node?.type === 'mcdoc:type/primitive_array';
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
exports.ListTypeNode = Object.freeze({
|
|
152
|
+
is(node) {
|
|
153
|
+
return node?.type === 'mcdoc:type/list';
|
|
154
|
+
},
|
|
155
|
+
});
|
|
156
|
+
exports.TupleTypeNode = Object.freeze({
|
|
157
|
+
is(node) {
|
|
158
|
+
return node?.type === 'mcdoc:type/tuple';
|
|
159
|
+
},
|
|
160
|
+
});
|
|
161
|
+
exports.EnumNode = Object.freeze({
|
|
162
|
+
is(node) {
|
|
163
|
+
return node?.type === 'mcdoc:enum';
|
|
164
|
+
},
|
|
165
|
+
kinds: new Set(['byte', 'short', 'int', 'long', 'float', 'double', 'string']),
|
|
166
|
+
});
|
|
167
|
+
exports.DocCommentsNode = Object.freeze({
|
|
168
|
+
is(node) {
|
|
169
|
+
return node?.type === 'mcdoc:doc_comments';
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
exports.EnumBlockNode = Object.freeze({
|
|
173
|
+
is(node) {
|
|
174
|
+
return node?.type === 'mcdoc:enum/block';
|
|
175
|
+
},
|
|
176
|
+
});
|
|
177
|
+
exports.EnumFieldNode = Object.freeze({
|
|
178
|
+
is(node) {
|
|
179
|
+
return node?.type === 'mcdoc:enum/field';
|
|
180
|
+
},
|
|
181
|
+
});
|
|
182
|
+
exports.EnumValueNode = Object.freeze({
|
|
183
|
+
is(node) {
|
|
184
|
+
return exports.TypedNumberNode.is(node) || core_1.StringNode.is(node);
|
|
185
|
+
},
|
|
186
|
+
});
|
|
187
|
+
exports.PrelimNode = Object.freeze({
|
|
188
|
+
is(node) {
|
|
189
|
+
return exports.AttributeNode.is(node) || exports.DocCommentsNode.is(node);
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
exports.StructNode = Object.freeze({
|
|
193
|
+
is(node) {
|
|
194
|
+
return node?.type === 'mcdoc:struct';
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
exports.TypeParamBlockNode = Object.freeze({
|
|
198
|
+
is(node) {
|
|
199
|
+
return node?.type === 'mcdoc:type_param_block';
|
|
200
|
+
},
|
|
201
|
+
});
|
|
202
|
+
exports.TypeParamNode = Object.freeze({
|
|
203
|
+
is(node) {
|
|
204
|
+
return node?.type === 'mcdoc:type_param';
|
|
205
|
+
},
|
|
206
|
+
});
|
|
207
|
+
exports.PathNode = Object.freeze({
|
|
208
|
+
is(node) {
|
|
209
|
+
return node?.type === 'mcdoc:path';
|
|
210
|
+
},
|
|
211
|
+
});
|
|
212
|
+
exports.StructBlockNode = Object.freeze({
|
|
213
|
+
is(node) {
|
|
214
|
+
return node?.type === 'mcdoc:struct/block';
|
|
215
|
+
},
|
|
216
|
+
});
|
|
217
|
+
exports.StructFieldNode = Object.freeze({
|
|
218
|
+
is(node) {
|
|
219
|
+
return exports.StructPairFieldNode.is(node) || exports.StructSpreadFieldNode.is(node);
|
|
220
|
+
},
|
|
221
|
+
});
|
|
222
|
+
exports.StructPairFieldNode = Object.freeze({
|
|
223
|
+
is(node) {
|
|
224
|
+
return node?.type === 'mcdoc:struct/field/pair';
|
|
225
|
+
},
|
|
226
|
+
});
|
|
227
|
+
exports.StructKeyNode = Object.freeze({
|
|
228
|
+
is(node) {
|
|
229
|
+
return core_1.StringNode.is(node) || exports.IdentifierNode.is(node) || exports.StructMapKeyNode.is(node);
|
|
230
|
+
},
|
|
231
|
+
});
|
|
232
|
+
exports.StructMapKeyNode = Object.freeze({
|
|
233
|
+
is(node) {
|
|
234
|
+
return node?.type === 'mcdoc:struct/map_key';
|
|
235
|
+
},
|
|
236
|
+
});
|
|
237
|
+
exports.StructSpreadFieldNode = Object.freeze({
|
|
238
|
+
is(node) {
|
|
239
|
+
return node?.type === 'mcdoc:struct/field/spread';
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
exports.DispatcherTypeNode = Object.freeze({
|
|
243
|
+
is(node) {
|
|
244
|
+
return node?.type === 'mcdoc:type/dispatcher';
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
exports.UnionTypeNode = Object.freeze({
|
|
248
|
+
is(node) {
|
|
249
|
+
return node?.type === 'mcdoc:type/union';
|
|
250
|
+
},
|
|
251
|
+
});
|
|
252
|
+
exports.InjectionNode = Object.freeze({
|
|
253
|
+
is(node) {
|
|
254
|
+
return node?.type === 'mcdoc:injection';
|
|
255
|
+
},
|
|
256
|
+
});
|
|
257
|
+
exports.EnumInjectionNode = Object.freeze({
|
|
258
|
+
is(node) {
|
|
259
|
+
return node?.type === 'mcdoc:injection/enum';
|
|
260
|
+
},
|
|
261
|
+
});
|
|
262
|
+
exports.StructInjectionNode = Object.freeze({
|
|
263
|
+
is(node) {
|
|
264
|
+
return node?.type === 'mcdoc:injection/struct';
|
|
265
|
+
},
|
|
266
|
+
});
|
|
267
|
+
exports.TypeAliasNode = Object.freeze({
|
|
268
|
+
is(node) {
|
|
269
|
+
return node?.type === 'mcdoc:type_alias';
|
|
270
|
+
},
|
|
271
|
+
});
|
|
272
|
+
exports.UseStatementNode = Object.freeze({
|
|
273
|
+
is(node) {
|
|
274
|
+
return node?.type === 'mcdoc:use_statement';
|
|
275
|
+
},
|
|
276
|
+
});
|
|
277
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ColorTokenType, CommentNode, FloatNode, InfallibleParser, IntegerNode, Parser, ResourceLocationNode, ResourceLocationOptions, StringNode } from '@spyglassmc/core';
|
|
2
|
+
import { Arrayable } from '@spyglassmc/core';
|
|
3
|
+
import type { AnyTypeNode, AttributeNode, BooleanTypeNode, DispatcherTypeNode, DispatchStatementNode, DocCommentsNode, EnumNode, IdentifierNode, InjectionNode, ListTypeNode, LiteralNode, LiteralTypeNode, ModuleNode, NumericTypeNode, PathNode, PathTypeNode, PrimitiveArrayTypeNode, StringTypeNode, StructNode, TupleTypeNode, TypeAliasNode, TypedNumberNode, TypeNode, UnionTypeNode, UseStatementNode } from '../node';
|
|
4
|
+
/**
|
|
5
|
+
* @returns A comment parser that accepts normal comments (`//`) and reports an error if it's a doc comment (`///`).
|
|
6
|
+
*
|
|
7
|
+
* `Failure` when there isn't a comment.
|
|
8
|
+
*/
|
|
9
|
+
export declare const comment: Parser<CommentNode>;
|
|
10
|
+
export declare function literal(literal: Arrayable<string>, options?: {
|
|
11
|
+
allowedChars?: Set<string>;
|
|
12
|
+
specialChars?: Set<string>;
|
|
13
|
+
colorTokenType?: ColorTokenType;
|
|
14
|
+
}): InfallibleParser<LiteralNode>;
|
|
15
|
+
export declare function resLoc(options: ResourceLocationOptions): InfallibleParser<ResourceLocationNode>;
|
|
16
|
+
export declare const string: InfallibleParser<StringNode>;
|
|
17
|
+
export declare const identifier: InfallibleParser<IdentifierNode>;
|
|
18
|
+
export declare const path: InfallibleParser<PathNode>;
|
|
19
|
+
export declare const attribute: Parser<AttributeNode>;
|
|
20
|
+
export declare const dispatchStatement: Parser<DispatchStatementNode>;
|
|
21
|
+
export declare const docComment: Parser<CommentNode>;
|
|
22
|
+
export declare const docComments: InfallibleParser<DocCommentsNode>;
|
|
23
|
+
export declare const float: InfallibleParser<FloatNode>;
|
|
24
|
+
export declare const typedNumber: InfallibleParser<TypedNumberNode>;
|
|
25
|
+
export declare const enum_: Parser<EnumNode>;
|
|
26
|
+
export declare const struct: Parser<StructNode>;
|
|
27
|
+
export declare const injection: Parser<InjectionNode>;
|
|
28
|
+
export declare const typeAlias: Parser<TypeAliasNode>;
|
|
29
|
+
export declare const useStatement: Parser<UseStatementNode>;
|
|
30
|
+
export declare const module_: Parser<ModuleNode>;
|
|
31
|
+
export declare const anyType: Parser<AnyTypeNode>;
|
|
32
|
+
export declare const booleanType: Parser<BooleanTypeNode>;
|
|
33
|
+
export declare const integer: InfallibleParser<IntegerNode>;
|
|
34
|
+
export declare const stringType: Parser<StringTypeNode>;
|
|
35
|
+
export declare const literalType: Parser<LiteralTypeNode>;
|
|
36
|
+
export declare const numericType: Parser<NumericTypeNode>;
|
|
37
|
+
export declare const primitiveArrayType: Parser<PrimitiveArrayTypeNode>;
|
|
38
|
+
export declare const listType: Parser<ListTypeNode>;
|
|
39
|
+
export declare const tupleType: Parser<TupleTypeNode>;
|
|
40
|
+
export declare const dispatcherType: Parser<DispatcherTypeNode>;
|
|
41
|
+
export declare const unionType: Parser<UnionTypeNode>;
|
|
42
|
+
export declare const pathType: InfallibleParser<PathTypeNode>;
|
|
43
|
+
export declare const type: InfallibleParser<TypeNode>;
|
|
44
|
+
//# sourceMappingURL=index.d.ts.map
|