@datamoc/mw_games 0.8.2 → 0.9.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/CHANGELOG.md +78 -0
- package/README.md +11 -4
- package/dist/core/ActionJournal.d.ts +2 -0
- package/dist/core/ActionJournal.d.ts.map +1 -1
- package/dist/core/ActionJournal.js +6 -0
- package/dist/core/ActionJournal.js.map +1 -1
- package/dist/core/Multiplayer.d.ts +21 -4
- package/dist/core/Multiplayer.d.ts.map +1 -1
- package/dist/core/Multiplayer.js +31 -4
- package/dist/core/Multiplayer.js.map +1 -1
- package/dist/core/State.d.ts +38 -0
- package/dist/core/State.d.ts.map +1 -1
- package/dist/core/State.js +76 -0
- package/dist/core/State.js.map +1 -1
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/mw_games.global.js +107 -91
- package/dist/mwl/catalog.d.ts +7 -0
- package/dist/mwl/catalog.d.ts.map +1 -1
- package/dist/mwl/catalog.js +0 -0
- package/dist/mwl/catalog.js.map +1 -1
- package/dist/mwl/compiler.d.ts +10 -7
- package/dist/mwl/compiler.d.ts.map +1 -1
- package/dist/mwl/compiler.js +17 -10
- package/dist/mwl/compiler.js.map +1 -1
- package/dist/mwl/content.d.ts +1 -1
- package/dist/mwl/content.js +1 -1
- package/dist/mwl/grammar.d.ts +25 -8
- package/dist/mwl/grammar.d.ts.map +1 -1
- package/dist/mwl/grammar.js +408 -105
- package/dist/mwl/grammar.js.map +1 -1
- package/dist/mwl/hooks.d.ts +35 -2
- package/dist/mwl/hooks.d.ts.map +1 -1
- package/dist/mwl/hooks.js +8 -6
- package/dist/mwl/hooks.js.map +1 -1
- package/dist/mwl/index.d.ts +6 -6
- package/dist/mwl/index.d.ts.map +1 -1
- package/dist/mwl/index.js +3 -3
- package/dist/mwl/index.js.map +1 -1
- package/dist/mwl/persistence.d.ts +18 -1
- package/dist/mwl/persistence.d.ts.map +1 -1
- package/dist/mwl/persistence.js +59 -3
- package/dist/mwl/persistence.js.map +1 -1
- package/dist/mwl/readers.d.ts +39 -2
- package/dist/mwl/readers.d.ts.map +1 -1
- package/dist/mwl/readers.js +71 -2
- package/dist/mwl/readers.js.map +1 -1
- package/dist/mwl/report.d.ts +2 -2
- package/dist/mwl/report.js +2 -2
- package/dist/mwl/runtime.d.ts +46 -2
- package/dist/mwl/runtime.d.ts.map +1 -1
- package/dist/mwl/runtime.js +73 -9
- package/dist/mwl/runtime.js.map +1 -1
- package/dist/mwl/schema.d.ts +32 -1
- package/dist/mwl/schema.d.ts.map +1 -1
- package/dist/mwl/schema.js +58 -3
- package/dist/mwl/schema.js.map +1 -1
- package/dist/simulation/Runtime.d.ts +66 -1
- package/dist/simulation/Runtime.d.ts.map +1 -1
- package/dist/simulation/Runtime.js +131 -3
- package/dist/simulation/Runtime.js.map +1 -1
- package/dist/simulation/index.d.ts +2 -2
- package/dist/simulation/index.d.ts.map +1 -1
- package/dist/simulation/index.js +1 -1
- package/dist/simulation/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +2 -1
- package/tools/mwl.mjs +85 -4
package/dist/mwl/catalog.d.ts
CHANGED
|
@@ -10,6 +10,13 @@ export interface MwlValidationOptions {
|
|
|
10
10
|
* is what turns a typo in one of them into a compile-time diagnostic.
|
|
11
11
|
*/
|
|
12
12
|
readonly hooks?: readonly (string | MwlHookDeclaration)[];
|
|
13
|
+
/** Additional game-owned attributes whose values are domain hook references. */
|
|
14
|
+
readonly hookAttributes?: readonly string[];
|
|
15
|
+
/** Optional map dimensions used to reject authored coordinates outside the map. */
|
|
16
|
+
readonly mapBounds?: {
|
|
17
|
+
readonly width: number;
|
|
18
|
+
readonly height: number;
|
|
19
|
+
};
|
|
13
20
|
/**
|
|
14
21
|
* What `MWL_DUPLICATE_ID`'s `tag:id` key is scoped to.
|
|
15
22
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/mwl/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAe,OAAO,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAqE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxH,MAAM,WAAW,oBAAoB;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/mwl/catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,eAAe,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAe,OAAO,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAqE,KAAK,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGxH,MAAM,WAAW,oBAAoB;IACpC,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAAE,CAAC;IAC1D,gFAAgF;IAChF,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,mFAAmF;IACnF,QAAQ,CAAC,SAAS,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAEzE;;;;;;;;;OASG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CACxC;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,GAAE,oBAAyB,GAAG,aAAa,EAAE,CA2E1G;AA2FD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,OAAO,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,aAAa,EAAE,CAGnH"}
|
package/dist/mwl/catalog.js
CHANGED
|
Binary file
|
package/dist/mwl/catalog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/mwl/catalog.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,sBAAsB,EAA2B,MAAM,YAAY,CAAC;AACxH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/mwl/catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/compiler.d.ts
CHANGED
|
@@ -6,6 +6,9 @@ export interface MwlCompiledNode {
|
|
|
6
6
|
readonly children: readonly MwlCompiledNode[];
|
|
7
7
|
/** source location, kept so the runtime and tools can report where a node came from */
|
|
8
8
|
readonly location?: MwlLocation;
|
|
9
|
+
/** exact locations retained for diagnostics on text-authored attributes */
|
|
10
|
+
readonly attributeLocations?: Readonly<Record<string, MwlLocation>>;
|
|
11
|
+
readonly valueLocations?: Readonly<Record<string, MwlLocation>>;
|
|
9
12
|
/** attribute names that carried the gettext marker, when the node came from text */
|
|
10
13
|
readonly gettext?: readonly string[];
|
|
11
14
|
}
|
|
@@ -35,7 +38,7 @@ export interface MwlEmitOptions {
|
|
|
35
38
|
* ```ts
|
|
36
39
|
* import { compile } from '@datamoc/mw_games/mwl';
|
|
37
40
|
*
|
|
38
|
-
* const game = compile('
|
|
41
|
+
* const game = compile("[{ tag: 'game', schema: 0.1 }]");
|
|
39
42
|
* console.log(game.schema); // '0.1'
|
|
40
43
|
* ```
|
|
41
44
|
*/
|
|
@@ -51,7 +54,7 @@ export interface MwlSourceFile {
|
|
|
51
54
|
* ```ts
|
|
52
55
|
* import { compileSources } from '@datamoc/mw_games/mwl';
|
|
53
56
|
*
|
|
54
|
-
* const game = compileSources([{ file: 'a.mwl', source: '
|
|
57
|
+
* const game = compileSources([{ file: 'a.mwl', source: "[{ tag: 'game', schema: 0.1 }]" }]);
|
|
55
58
|
* console.log(game.roots.length); // 1
|
|
56
59
|
* ```
|
|
57
60
|
*/
|
|
@@ -65,7 +68,7 @@ export declare function compileSources(files: readonly MwlSourceFile[], options?
|
|
|
65
68
|
* ```ts
|
|
66
69
|
* import { compileNodes, parse } from '@datamoc/mw_games/mwl';
|
|
67
70
|
*
|
|
68
|
-
* const game = compileNodes(parse('
|
|
71
|
+
* const game = compileNodes(parse("[{ tag: 'game', schema: 0.1 }]"));
|
|
69
72
|
* console.log(game.schema); // '0.1'
|
|
70
73
|
* ```
|
|
71
74
|
*/
|
|
@@ -89,7 +92,7 @@ export interface MwlCatalog {
|
|
|
89
92
|
* ```ts
|
|
90
93
|
* import { compile, extractCatalog } from '@datamoc/mw_games/mwl';
|
|
91
94
|
*
|
|
92
|
-
* const game = compile('
|
|
95
|
+
* const game = compile("[{ tag: 'game', schema: 0.1 }]");
|
|
93
96
|
* console.log(extractCatalog(game, { locale: 'fr' }).locale); // 'fr'
|
|
94
97
|
* ```
|
|
95
98
|
*/
|
|
@@ -101,7 +104,7 @@ export declare function extractCatalog(game: MwlCompiledGame, options?: MwlCatal
|
|
|
101
104
|
* ```ts
|
|
102
105
|
* import { compile, emitModule } from '@datamoc/mw_games/mwl';
|
|
103
106
|
*
|
|
104
|
-
* console.log(emitModule(compile('
|
|
107
|
+
* console.log(emitModule(compile("[{ tag: 'game', schema: 0.1 }]")).startsWith('export const gameData')); // true
|
|
105
108
|
* ```
|
|
106
109
|
*/
|
|
107
110
|
export declare function emitModule(game: MwlCompiledGame, variable?: string): string;
|
|
@@ -112,7 +115,7 @@ export declare function emitModule(game: MwlCompiledGame, variable?: string): st
|
|
|
112
115
|
* ```ts
|
|
113
116
|
* import { compile, emitArtifacts } from '@datamoc/mw_games/mwl';
|
|
114
117
|
*
|
|
115
|
-
* const artifacts = emitArtifacts(compile('
|
|
118
|
+
* const artifacts = emitArtifacts(compile("[{ tag: 'game', schema: 0.1 }]"));
|
|
116
119
|
* console.log(artifacts.map((artifact) => artifact.name)); // ['game-data.ts', 'i18n.json', 'assets.json']
|
|
117
120
|
* ```
|
|
118
121
|
*/
|
|
@@ -124,7 +127,7 @@ export declare function emitArtifacts(game: MwlCompiledGame, options?: MwlEmitOp
|
|
|
124
127
|
* ```ts
|
|
125
128
|
* import { compileAndEmitSources } from '@datamoc/mw_games/mwl';
|
|
126
129
|
*
|
|
127
|
-
* const artifacts = compileAndEmitSources([{ file: 'a.mwl', source: '
|
|
130
|
+
* const artifacts = compileAndEmitSources([{ file: 'a.mwl', source: "[{ tag: 'game', schema: 0.1 }]" }]);
|
|
128
131
|
* console.log(artifacts.length); // 3
|
|
129
132
|
* ```
|
|
130
133
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/mwl/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC5G,OAAO,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/mwl/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/compiler.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { parse, preprocess } from './grammar.js';
|
|
2
|
-
import { validate } from './schema.js';
|
|
2
|
+
import { schema10, validate } from './schema.js';
|
|
3
3
|
/**
|
|
4
4
|
* Preprocesses, parses and validates MWL source into a compiled game.
|
|
5
5
|
*
|
|
@@ -7,7 +7,7 @@ import { validate } from './schema.js';
|
|
|
7
7
|
* ```ts
|
|
8
8
|
* import { compile } from '@datamoc/mw_games/mwl';
|
|
9
9
|
*
|
|
10
|
-
* const game = compile('
|
|
10
|
+
* const game = compile("[{ tag: 'game', schema: 0.1 }]");
|
|
11
11
|
* console.log(game.schema); // '0.1'
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
@@ -22,7 +22,7 @@ export function compile(source, options = {}) {
|
|
|
22
22
|
* ```ts
|
|
23
23
|
* import { compileSources } from '@datamoc/mw_games/mwl';
|
|
24
24
|
*
|
|
25
|
-
* const game = compileSources([{ file: 'a.mwl', source: '
|
|
25
|
+
* const game = compileSources([{ file: 'a.mwl', source: "[{ tag: 'game', schema: 0.1 }]" }]);
|
|
26
26
|
* console.log(game.roots.length); // 1
|
|
27
27
|
* ```
|
|
28
28
|
*/
|
|
@@ -43,12 +43,13 @@ export function compileSources(files, options = {}) {
|
|
|
43
43
|
* ```ts
|
|
44
44
|
* import { compileNodes, parse } from '@datamoc/mw_games/mwl';
|
|
45
45
|
*
|
|
46
|
-
* const game = compileNodes(parse('
|
|
46
|
+
* const game = compileNodes(parse("[{ tag: 'game', schema: 0.1 }]"));
|
|
47
47
|
* console.log(game.schema); // '0.1'
|
|
48
48
|
* ```
|
|
49
49
|
*/
|
|
50
50
|
export function compileNodes(nodes, options = {}) {
|
|
51
|
-
const
|
|
51
|
+
const declaredSchema = nodes.find((node) => node.tag === 'game')?.attributes.schema;
|
|
52
|
+
const diagnostics = validate(nodes, options.schemas ?? (declaredSchema === '1.0' ? schema10 : undefined));
|
|
52
53
|
if (diagnostics.length) {
|
|
53
54
|
const first = diagnostics[0];
|
|
54
55
|
throw new Error(`${first.location.file}:${first.location.line}:${first.location.column}: ${first.message}`);
|
|
@@ -79,7 +80,13 @@ export function compileNodes(nodes, options = {}) {
|
|
|
79
80
|
children: node.children.map(convert),
|
|
80
81
|
location: node.location,
|
|
81
82
|
};
|
|
82
|
-
|
|
83
|
+
Object.defineProperties(compiled, {
|
|
84
|
+
attributeLocations: { value: node.attributeLocations, enumerable: false },
|
|
85
|
+
valueLocations: { value: node.valueLocations, enumerable: false },
|
|
86
|
+
});
|
|
87
|
+
if (node.gettext)
|
|
88
|
+
Object.assign(compiled, { gettext: [...node.gettext] });
|
|
89
|
+
return compiled;
|
|
83
90
|
};
|
|
84
91
|
return {
|
|
85
92
|
schema: nodes.find((node) => node.tag === 'game')?.attributes.schema ?? '0.1',
|
|
@@ -140,7 +147,7 @@ function stripAssetTransform(value) {
|
|
|
140
147
|
* ```ts
|
|
141
148
|
* import { compile, extractCatalog } from '@datamoc/mw_games/mwl';
|
|
142
149
|
*
|
|
143
|
-
* const game = compile('
|
|
150
|
+
* const game = compile("[{ tag: 'game', schema: 0.1 }]");
|
|
144
151
|
* console.log(extractCatalog(game, { locale: 'fr' }).locale); // 'fr'
|
|
145
152
|
* ```
|
|
146
153
|
*/
|
|
@@ -157,7 +164,7 @@ export function extractCatalog(game, options = {}) {
|
|
|
157
164
|
* ```ts
|
|
158
165
|
* import { compile, emitModule } from '@datamoc/mw_games/mwl';
|
|
159
166
|
*
|
|
160
|
-
* console.log(emitModule(compile('
|
|
167
|
+
* console.log(emitModule(compile("[{ tag: 'game', schema: 0.1 }]")).startsWith('export const gameData')); // true
|
|
161
168
|
* ```
|
|
162
169
|
*/
|
|
163
170
|
export function emitModule(game, variable = 'gameData') {
|
|
@@ -170,7 +177,7 @@ export function emitModule(game, variable = 'gameData') {
|
|
|
170
177
|
* ```ts
|
|
171
178
|
* import { compile, emitArtifacts } from '@datamoc/mw_games/mwl';
|
|
172
179
|
*
|
|
173
|
-
* const artifacts = emitArtifacts(compile('
|
|
180
|
+
* const artifacts = emitArtifacts(compile("[{ tag: 'game', schema: 0.1 }]"));
|
|
174
181
|
* console.log(artifacts.map((artifact) => artifact.name)); // ['game-data.ts', 'i18n.json', 'assets.json']
|
|
175
182
|
* ```
|
|
176
183
|
*/
|
|
@@ -194,7 +201,7 @@ export function emitArtifacts(game, options = {}) {
|
|
|
194
201
|
* ```ts
|
|
195
202
|
* import { compileAndEmitSources } from '@datamoc/mw_games/mwl';
|
|
196
203
|
*
|
|
197
|
-
* const artifacts = compileAndEmitSources([{ file: 'a.mwl', source: '
|
|
204
|
+
* const artifacts = compileAndEmitSources([{ file: 'a.mwl', source: "[{ tag: 'game', schema: 0.1 }]" }]);
|
|
198
205
|
* console.log(artifacts.length); // 3
|
|
199
206
|
* ```
|
|
200
207
|
*/
|
package/dist/mwl/compiler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/mwl/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAA6D,MAAM,cAAc,CAAC;AAC5G,OAAO,EAAE,QAAQ,EAAqB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/mwl/compiler.ts"],"names":[],"mappings":"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"}
|
package/dist/mwl/content.d.ts
CHANGED
|
@@ -133,7 +133,7 @@ export interface MwlContentCatalog {
|
|
|
133
133
|
* ```ts
|
|
134
134
|
* import { compile, contentCatalog } from '@datamoc/mw_games/mwl';
|
|
135
135
|
*
|
|
136
|
-
* console.log(contentCatalog(compile('
|
|
136
|
+
* console.log(contentCatalog(compile("[{ tag: 'game', schema: 0.1 }]")).campaigns); // []
|
|
137
137
|
* ```
|
|
138
138
|
*/
|
|
139
139
|
export declare function contentCatalog(game: MwlCompiledGame): MwlContentCatalog;
|
package/dist/mwl/content.js
CHANGED
|
@@ -13,7 +13,7 @@ const enumValue = enumAttribute;
|
|
|
13
13
|
* ```ts
|
|
14
14
|
* import { compile, contentCatalog } from '@datamoc/mw_games/mwl';
|
|
15
15
|
*
|
|
16
|
-
* console.log(contentCatalog(compile('
|
|
16
|
+
* console.log(contentCatalog(compile("[{ tag: 'game', schema: 0.1 }]")).campaigns); // []
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
export function contentCatalog(game) {
|
package/dist/mwl/grammar.d.ts
CHANGED
|
@@ -8,8 +8,12 @@ export interface MwlNode {
|
|
|
8
8
|
readonly attributes: Readonly<Record<string, string>>;
|
|
9
9
|
readonly children: readonly MwlNode[];
|
|
10
10
|
readonly location: MwlLocation;
|
|
11
|
+
/** Exact source location of each authored attribute key, when parsed from text. */
|
|
12
|
+
readonly attributeLocations?: Readonly<Record<string, MwlLocation>>;
|
|
13
|
+
/** Exact source location where each authored attribute value starts, when parsed from text. */
|
|
14
|
+
readonly valueLocations?: Readonly<Record<string, MwlLocation>>;
|
|
11
15
|
/**
|
|
12
|
-
* Names of the attributes that carried the gettext marker `_
|
|
16
|
+
* Names of the attributes that carried the gettext marker `_("...")`.
|
|
13
17
|
* Present (possibly empty) on nodes parsed from text, so the compiler can
|
|
14
18
|
* extract exactly the author-marked display strings; absent on nodes built
|
|
15
19
|
* programmatically by a converter.
|
|
@@ -30,7 +34,7 @@ export interface MwlDiagnostic {
|
|
|
30
34
|
* import { parse, MwlSyntaxError } from '@datamoc/mw_games/mwl';
|
|
31
35
|
*
|
|
32
36
|
* try {
|
|
33
|
-
* parse('[game', 'broken.mwl');
|
|
37
|
+
* parse('[{ tag: "game" }]', 'broken.mwl');
|
|
34
38
|
* } catch (error) {
|
|
35
39
|
* if (error instanceof MwlSyntaxError) console.log(error.diagnostic.code);
|
|
36
40
|
* }
|
|
@@ -44,38 +48,51 @@ export interface MwlPreprocessOptions {
|
|
|
44
48
|
readonly file?: string;
|
|
45
49
|
readonly defines?: readonly string[];
|
|
46
50
|
readonly includes?: Readonly<Record<string, string>>;
|
|
51
|
+
/** Unknown macro invocations fail by default; `ignore` preserves legacy passthrough. */
|
|
52
|
+
readonly macroPolicy?: 'error' | 'ignore';
|
|
47
53
|
}
|
|
48
54
|
/**
|
|
49
|
-
* Expands MWL macros, `#ifdef` blocks and `#include`s into flat source text
|
|
55
|
+
* Expands MWL macros, `#ifdef` blocks and `#include`s into flat source text,
|
|
56
|
+
* then rewrites the `_("...")` gettext marker into a form the JSON5 parser
|
|
57
|
+
* accepts. The marker keeps working because this pass already runs before
|
|
58
|
+
* structural parsing, the same reason macros survive a change of grammar.
|
|
50
59
|
*
|
|
51
60
|
* @example
|
|
52
61
|
* ```ts
|
|
53
62
|
* import { preprocess } from '@datamoc/mw_games/mwl';
|
|
54
63
|
*
|
|
55
|
-
* console.log(preprocess('
|
|
64
|
+
* console.log(preprocess("[{ tag: 'game', schema: 0.1 }]"));
|
|
56
65
|
* ```
|
|
57
66
|
*/
|
|
58
67
|
export declare function preprocess(source: string, options?: MwlPreprocessOptions): string;
|
|
68
|
+
/**
|
|
69
|
+
* Parses MWL source (a top-level array of `{ tag, ...attrs, children }` objects, or the
|
|
70
|
+
* equivalent named-node sugar such as `{ unit_type: { id: 'hero' } }`)
|
|
71
|
+
* into nodes. Numbers and booleans become their string form on the node, so the
|
|
72
|
+
* schema, compiler, and runtime see exactly the strings they always have; the
|
|
73
|
+
* JSON5 literal only decides what an author types and what a JSON5-aware tool
|
|
74
|
+
* can check before validation runs.
|
|
75
|
+
*/
|
|
59
76
|
export declare function parse(source: string, file?: string): MwlNode[];
|
|
60
77
|
/**
|
|
61
|
-
* Unquotes one raw attribute value and strips the `_
|
|
78
|
+
* Unquotes one raw attribute value and strips the `_("...")` gettext marker.
|
|
62
79
|
*
|
|
63
80
|
* @example
|
|
64
81
|
* ```ts
|
|
65
82
|
* import { parseValue } from '@datamoc/mw_games/mwl';
|
|
66
83
|
*
|
|
67
|
-
* console.log(parseValue('_
|
|
84
|
+
* console.log(parseValue('_("Hold the line")', { file: 'a.mwl', line: 1, column: 1 })); // 'Hold the line'
|
|
68
85
|
* ```
|
|
69
86
|
*/
|
|
70
87
|
export declare function parseValue(raw: string, location: MwlLocation, lineText?: string): string;
|
|
71
88
|
/**
|
|
72
|
-
* True when a raw attribute value carries the gettext marker `_
|
|
89
|
+
* True when a raw attribute value carries the gettext marker `_("...")`.
|
|
73
90
|
*
|
|
74
91
|
* @example
|
|
75
92
|
* ```ts
|
|
76
93
|
* import { isGettext } from '@datamoc/mw_games/mwl';
|
|
77
94
|
*
|
|
78
|
-
* console.log(isGettext('_
|
|
95
|
+
* console.log(isGettext('_("Hello")')); // true
|
|
79
96
|
* console.log(isGettext('Hello')); // false
|
|
80
97
|
* ```
|
|
81
98
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../src/mwl/grammar.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../src/mwl/grammar.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,WAAW;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IACpE,+FAA+F;IAC/F,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAChE;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;;;;GAaG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACxC,QAAQ,CAAC,UAAU,EAAE,aAAa,CAAC;IAEnC,YAAY,UAAU,EAAE,aAAa,EAMpC;CACD;AAED,MAAM,WAAW,oBAAoB;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,wFAAwF;IACxF,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC1C;AAUD;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,CA0ErF;AAqHD;;;;;;;GAOG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,SAAU,GAAG,OAAO,EAAE,CA2B/D;AA4PD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,SAAM,GAAG,MAAM,CAgBrF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE9C"}
|