@rpgm-tools/neo-angband-content 0.11.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.
Files changed (113) hide show
  1. package/LICENSE.md +43 -0
  2. package/README.md +65 -0
  3. package/dist/compile.d.ts +10 -0
  4. package/dist/compile.d.ts.map +1 -0
  5. package/dist/compile.js +42 -0
  6. package/dist/compile.js.map +1 -0
  7. package/dist/data-exactness.reader.d.ts +105 -0
  8. package/dist/data-exactness.reader.d.ts.map +1 -0
  9. package/dist/data-exactness.reader.js +547 -0
  10. package/dist/data-exactness.reader.js.map +1 -0
  11. package/dist/index.d.ts +17 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.js +15 -0
  14. package/dist/index.js.map +1 -0
  15. package/dist/parser.d.ts +70 -0
  16. package/dist/parser.d.ts.map +1 -0
  17. package/dist/parser.js +365 -0
  18. package/dist/parser.js.map +1 -0
  19. package/dist/records.d.ts +101 -0
  20. package/dist/records.d.ts.map +1 -0
  21. package/dist/records.js +244 -0
  22. package/dist/records.js.map +1 -0
  23. package/dist/specs/generate.d.ts +12 -0
  24. package/dist/specs/generate.d.ts.map +1 -0
  25. package/dist/specs/generate.js +57 -0
  26. package/dist/specs/generate.js.map +1 -0
  27. package/dist/specs/index.d.ts +9 -0
  28. package/dist/specs/index.d.ts.map +1 -0
  29. package/dist/specs/index.js +60 -0
  30. package/dist/specs/index.js.map +1 -0
  31. package/dist/specs/init.d.ts +23 -0
  32. package/dist/specs/init.d.ts.map +1 -0
  33. package/dist/specs/init.js +305 -0
  34. package/dist/specs/init.js.map +1 -0
  35. package/dist/specs/misc.d.ts +33 -0
  36. package/dist/specs/misc.d.ts.map +1 -0
  37. package/dist/specs/misc.js +146 -0
  38. package/dist/specs/misc.js.map +1 -0
  39. package/dist/specs/mon-init.d.ts +22 -0
  40. package/dist/specs/mon-init.d.ts.map +1 -0
  41. package/dist/specs/mon-init.js +157 -0
  42. package/dist/specs/mon-init.js.map +1 -0
  43. package/dist/specs/obj-init.d.ts +19 -0
  44. package/dist/specs/obj-init.d.ts.map +1 -0
  45. package/dist/specs/obj-init.js +219 -0
  46. package/dist/specs/obj-init.js.map +1 -0
  47. package/dist/specs/ui-entry.d.ts +22 -0
  48. package/dist/specs/ui-entry.d.ts.map +1 -0
  49. package/dist/specs/ui-entry.js +69 -0
  50. package/dist/specs/ui-entry.js.map +1 -0
  51. package/dist/specs/visuals.d.ts +26 -0
  52. package/dist/specs/visuals.d.ts.map +1 -0
  53. package/dist/specs/visuals.js +35 -0
  54. package/dist/specs/visuals.js.map +1 -0
  55. package/pack/activation.json +3340 -0
  56. package/pack/artifact.json +5146 -0
  57. package/pack/blow_effects.json +370 -0
  58. package/pack/blow_methods.json +286 -0
  59. package/pack/body.json +59 -0
  60. package/pack/brand.json +100 -0
  61. package/pack/chest_trap.json +117 -0
  62. package/pack/class.json +5501 -0
  63. package/pack/constants.json +470 -0
  64. package/pack/curse.json +580 -0
  65. package/pack/dungeon_profile.json +836 -0
  66. package/pack/ego_item.json +2900 -0
  67. package/pack/flavor.json +1541 -0
  68. package/pack/hints.json +303 -0
  69. package/pack/history.json +1656 -0
  70. package/pack/manifest.json +52 -0
  71. package/pack/monster.json +29392 -0
  72. package/pack/monster_base.json +688 -0
  73. package/pack/monster_spell.json +2735 -0
  74. package/pack/names.json +1204 -0
  75. package/pack/object.json +11877 -0
  76. package/pack/object_base.json +364 -0
  77. package/pack/object_property.json +2034 -0
  78. package/pack/p_race.json +447 -0
  79. package/pack/pain.json +150 -0
  80. package/pack/pit.json +617 -0
  81. package/pack/player_property.json +519 -0
  82. package/pack/player_timed.json +1321 -0
  83. package/pack/projection.json +664 -0
  84. package/pack/quest.json +18 -0
  85. package/pack/realm.json +34 -0
  86. package/pack/room_template.json +9571 -0
  87. package/pack/shape.json +263 -0
  88. package/pack/slay.json +116 -0
  89. package/pack/store.json +675 -0
  90. package/pack/summon.json +143 -0
  91. package/pack/terrain.json +511 -0
  92. package/pack/trap.json +1483 -0
  93. package/pack/ui_entry.json +382 -0
  94. package/pack/ui_entry_base.json +60 -0
  95. package/pack/ui_entry_renderer.json +43 -0
  96. package/pack/ui_knowledge.json +302 -0
  97. package/pack/vault.json +4355 -0
  98. package/pack/visuals.json +680 -0
  99. package/pack/world.json +1030 -0
  100. package/package.json +67 -0
  101. package/src/compile.ts +55 -0
  102. package/src/data-exactness.reader.ts +559 -0
  103. package/src/index.ts +31 -0
  104. package/src/parser.ts +406 -0
  105. package/src/records.ts +341 -0
  106. package/src/specs/generate.ts +61 -0
  107. package/src/specs/index.ts +103 -0
  108. package/src/specs/init.ts +322 -0
  109. package/src/specs/misc.ts +153 -0
  110. package/src/specs/mon-init.ts +165 -0
  111. package/src/specs/obj-init.ts +230 -0
  112. package/src/specs/ui-entry.ts +74 -0
  113. package/src/specs/visuals.ts +37 -0
@@ -0,0 +1,547 @@
1
+ /**
2
+ * Independent gamedata re-parser for W5 data-exactness.
3
+ *
4
+ * Deliberately does NOT import packages/content's parseLine / compileGamedata.
5
+ * Line-level semantics follow reference/src/parser.c (Angband 4.2.6);
6
+ * record assembly follows the C init parsers' attach/repeat idioms as
7
+ * documented in reference/src/{parser,parse,init,mon-init,obj-init}.c.
8
+ *
9
+ * Format registration data (parser_reg format strings + which directives
10
+ * repeat / nest) is supplied by the caller so this module stays free of
11
+ * packages/content's parser implementation. Because that metadata is itself
12
+ * port-supplied, extractParserRegFormats() below lets the caller check the
13
+ * format strings back against reference/src/*.c rather than trusting them.
14
+ */
15
+ const FIELD_TYPES = new Set([
16
+ "int",
17
+ "uint",
18
+ "sym",
19
+ "str",
20
+ "char",
21
+ "rand",
22
+ ]);
23
+ /** C isspace() (default "C" locale). */
24
+ function isSpace(code) {
25
+ return code === 0x20 || code === 0x09 || code === 0x0a || code === 0x0b || code === 0x0c || code === 0x0d;
26
+ }
27
+ function digitOf(ch, base) {
28
+ const c = ch.charCodeAt(0);
29
+ let v;
30
+ if (c >= 0x30 && c <= 0x39)
31
+ v = c - 0x30;
32
+ else if (c >= 0x41 && c <= 0x5a)
33
+ v = c - 0x41 + 10;
34
+ else if (c >= 0x61 && c <= 0x7a)
35
+ v = c - 0x61 + 10;
36
+ else
37
+ return null;
38
+ return v < base ? v : null;
39
+ }
40
+ /**
41
+ * strtol(_, _, 0)-style scan: optional sign, 0x/0 base inference, trailing
42
+ * garbage ignored (endptr not required to hit EOS).
43
+ */
44
+ function scanInt(s, allowNegative) {
45
+ let i = 0;
46
+ while (i < s.length && isSpace(s.charCodeAt(i)))
47
+ i++;
48
+ let neg = false;
49
+ if (s[i] === "+" || s[i] === "-") {
50
+ if (s[i] === "-") {
51
+ if (!allowNegative)
52
+ return null;
53
+ neg = true;
54
+ }
55
+ i++;
56
+ }
57
+ let base = 10;
58
+ if (s[i] === "0") {
59
+ const n = s[i + 1];
60
+ if ((n === "x" || n === "X") && s[i + 2] !== undefined && digitOf(s[i + 2], 16) !== null) {
61
+ base = 16;
62
+ i += 2;
63
+ }
64
+ else {
65
+ base = 8;
66
+ }
67
+ }
68
+ const start = i;
69
+ let value = 0;
70
+ while (i < s.length) {
71
+ const d = digitOf(s[i], base);
72
+ if (d === null)
73
+ break;
74
+ value = value * base + d;
75
+ i++;
76
+ }
77
+ if (i === start)
78
+ return null;
79
+ return neg ? -value : value;
80
+ }
81
+ /**
82
+ * Faithful reimplementation of parse_random() from reference/src/parser.c.
83
+ * Validity only; the raw dice string is what gets stored.
84
+ */
85
+ export function independentIsValidRandom(s) {
86
+ let pos = 0;
87
+ let i = 0;
88
+ let minI = 1;
89
+ if (s[0] === "-")
90
+ pos++;
91
+ for (;;) {
92
+ const c = s[pos];
93
+ if (c === "d") {
94
+ if (i > 2)
95
+ return false;
96
+ if (i < 2)
97
+ i = 2;
98
+ minI = 3;
99
+ pos++;
100
+ }
101
+ else if (c === "M") {
102
+ if (i === 2)
103
+ return false;
104
+ i = 3;
105
+ minI = 4;
106
+ pos++;
107
+ }
108
+ else {
109
+ // scan base-10 number without base0 (upstream parse_random uses base 10)
110
+ let p = pos;
111
+ while (p < s.length && isSpace(s.charCodeAt(p)))
112
+ p++;
113
+ let negative = false;
114
+ if (s[p] === "+" || s[p] === "-") {
115
+ negative = s[p] === "-";
116
+ p++;
117
+ }
118
+ const digStart = p;
119
+ let value = 0;
120
+ while (p < s.length) {
121
+ const d = digitOf(s[p], 10);
122
+ if (d === null)
123
+ break;
124
+ value = value * 10 + d;
125
+ p++;
126
+ }
127
+ if (p === digStart) {
128
+ let t = pos;
129
+ while (t < s.length && isSpace(s.charCodeAt(t)))
130
+ t++;
131
+ return t >= s.length && i >= minI;
132
+ }
133
+ if (value > 2147483647 || (negative && value !== 0) || s[pos] === "+") {
134
+ return false;
135
+ }
136
+ pos = p;
137
+ if (i === 0) {
138
+ if (s[pos] === "d")
139
+ i = 1;
140
+ else if (s[pos] === "+") {
141
+ pos++;
142
+ minI = 3;
143
+ }
144
+ else {
145
+ let t = pos;
146
+ while (t < s.length && isSpace(s.charCodeAt(t)))
147
+ t++;
148
+ if (t < s.length)
149
+ return false;
150
+ break;
151
+ }
152
+ }
153
+ else if (i === 4) {
154
+ return false;
155
+ }
156
+ i++;
157
+ }
158
+ }
159
+ return true;
160
+ }
161
+ export function independentParseSignature(fmt) {
162
+ const tokens = fmt.split(/\s+/).filter((t) => t.length > 0);
163
+ const directive = tokens.shift();
164
+ if (directive === undefined)
165
+ throw new Error(`empty format string`);
166
+ const fields = [];
167
+ while (tokens.length > 0) {
168
+ const rawType = tokens.shift();
169
+ const name = tokens.shift();
170
+ if (name === undefined)
171
+ throw new Error(`type without name in "${fmt}"`);
172
+ const optional = rawType.startsWith("?");
173
+ const typeName = optional ? rawType.slice(1) : rawType;
174
+ if (!FIELD_TYPES.has(typeName))
175
+ throw new Error(`unknown type "${rawType}" in "${fmt}"`);
176
+ const prev = fields[fields.length - 1];
177
+ if (prev !== undefined) {
178
+ if (!optional && prev.optional)
179
+ throw new Error(`mandatory after optional in "${fmt}"`);
180
+ if (prev.type === "str")
181
+ throw new Error(`field after str in "${fmt}"`);
182
+ }
183
+ fields.push({ type: typeName, name, optional });
184
+ }
185
+ return { directive, fields };
186
+ }
187
+ /**
188
+ * Parse one physical line. Returns null for blanks/comments.
189
+ * Tokenizer mirrors strtok(":") for non-str/char and rest-of-line for str.
190
+ */
191
+ export function independentParseLine(line, lookup) {
192
+ let start = 0;
193
+ while (start < line.length && isSpace(line.charCodeAt(start)))
194
+ start++;
195
+ if (start >= line.length || line[start] === "#")
196
+ return null;
197
+ // Cursor over the trimmed line body.
198
+ let pos = start;
199
+ const nextToken = () => {
200
+ while (pos < line.length && line[pos] === ":")
201
+ pos++;
202
+ if (pos >= line.length)
203
+ return null;
204
+ const a = pos;
205
+ while (pos < line.length && line[pos] !== ":")
206
+ pos++;
207
+ const tok = line.slice(a, pos);
208
+ if (pos < line.length)
209
+ pos++; // consume ':'
210
+ return tok;
211
+ };
212
+ const rest = () => {
213
+ if (pos >= line.length)
214
+ return null;
215
+ const tok = line.slice(pos);
216
+ pos = line.length;
217
+ return tok;
218
+ };
219
+ const takeChar = () => {
220
+ if (pos >= line.length)
221
+ return null;
222
+ const cp = line.codePointAt(pos);
223
+ const ch = String.fromCodePoint(cp);
224
+ pos += ch.length;
225
+ if (pos < line.length) {
226
+ if (line[pos] === ":")
227
+ pos++;
228
+ else
229
+ throw new Error(`FIELD_TOO_LONG`);
230
+ }
231
+ return ch;
232
+ };
233
+ const directiveTok = nextToken();
234
+ if (directiveTok === null)
235
+ throw new Error("MISSING_FIELD: directive");
236
+ const sig = lookup(directiveTok);
237
+ if (sig === undefined)
238
+ throw new Error(`UNDEFINED_DIRECTIVE: ${directiveTok}`);
239
+ const values = {};
240
+ for (const field of sig.fields) {
241
+ let tok;
242
+ if (field.type === "char")
243
+ tok = takeChar();
244
+ else if (field.type === "str")
245
+ tok = rest();
246
+ else
247
+ tok = nextToken();
248
+ if (tok === null) {
249
+ if (!field.optional)
250
+ throw new Error(`MISSING_FIELD: ${field.name}`);
251
+ break;
252
+ }
253
+ if (field.type === "int") {
254
+ const n = scanInt(tok, true);
255
+ if (n === null)
256
+ throw new Error(`NOT_NUMBER: ${field.name}`);
257
+ values[field.name] = n;
258
+ }
259
+ else if (field.type === "uint") {
260
+ if (tok[0] === "-")
261
+ throw new Error(`NOT_NUMBER: ${field.name}`);
262
+ const n = scanInt(tok, false);
263
+ if (n === null)
264
+ throw new Error(`NOT_NUMBER: ${field.name}`);
265
+ values[field.name] = n;
266
+ }
267
+ else if (field.type === "rand") {
268
+ if (!independentIsValidRandom(tok))
269
+ throw new Error(`NOT_RANDOM: ${field.name}`);
270
+ values[field.name] = tok;
271
+ }
272
+ else {
273
+ values[field.name] = tok;
274
+ }
275
+ }
276
+ return { directive: sig.directive, values };
277
+ }
278
+ /** Split a flags: payload the way C does: strtok(flags, " |"). */
279
+ export function splitFlagList(raw) {
280
+ const out = [];
281
+ let i = 0;
282
+ while (i < raw.length) {
283
+ while (i < raw.length && (raw[i] === " " || raw[i] === "|"))
284
+ i++;
285
+ if (i >= raw.length)
286
+ break;
287
+ const a = i;
288
+ while (i < raw.length && raw[i] !== " " && raw[i] !== "|")
289
+ i++;
290
+ out.push(raw.slice(a, i));
291
+ }
292
+ return out;
293
+ }
294
+ class Container {
295
+ fields = [];
296
+ children = new Map();
297
+ orderGroups = new Map();
298
+ }
299
+ function buildTable(spec) {
300
+ const parents = new Set();
301
+ for (const def of spec.directives) {
302
+ for (const p of def.childOf ?? [])
303
+ parents.add(p);
304
+ }
305
+ const table = new Map();
306
+ for (const def of spec.directives) {
307
+ const sig = independentParseSignature(def.fmt);
308
+ if (table.has(sig.directive)) {
309
+ throw new Error(`${spec.name}: duplicate directive "${sig.directive}"`);
310
+ }
311
+ table.set(sig.directive, { def, sig, isContainer: parents.has(sig.directive) });
312
+ }
313
+ return table;
314
+ }
315
+ function makeValue(cd, values) {
316
+ const entries = [];
317
+ for (const field of cd.sig.fields) {
318
+ const v = values[field.name];
319
+ if (v !== undefined)
320
+ entries.push([field.name, v]);
321
+ }
322
+ if (cd.isContainer) {
323
+ const node = new Container();
324
+ node.fields.push(...entries);
325
+ return node;
326
+ }
327
+ if (cd.sig.fields.length === 1) {
328
+ const only = entries[0];
329
+ return only === undefined ? true : only[1];
330
+ }
331
+ const obj = {};
332
+ for (const [k, v] of entries)
333
+ obj[k] = v;
334
+ return obj;
335
+ }
336
+ function finalize(slot, spec) {
337
+ if (!(slot instanceof Container))
338
+ return slot;
339
+ const out = {};
340
+ for (const [k, v] of slot.fields)
341
+ out[k] = v;
342
+ // Emit children in registration order (upstream registration order).
343
+ for (const def of spec.directives) {
344
+ const directive = def.fmt.split(/\s+/, 1)[0];
345
+ const child = slot.children.get(directive);
346
+ if (child === undefined)
347
+ continue;
348
+ out[directive] = Array.isArray(child)
349
+ ? child.map((c) => finalize(c, spec))
350
+ : finalize(child, spec);
351
+ }
352
+ for (const [key, order] of slot.orderGroups)
353
+ out[key] = [...order];
354
+ return out;
355
+ }
356
+ /**
357
+ * Compile one gamedata file text into the same JSON shape as pack/*.json.
358
+ * Engine is independent of packages/content/src/{parser,records}.ts.
359
+ */
360
+ export function independentCompile(text, spec) {
361
+ const table = buildTable(spec);
362
+ const lookup = (d) => table.get(d)?.sig;
363
+ const records = [];
364
+ const headerNode = spec.header !== undefined ? new Container() : null;
365
+ let current = null;
366
+ if (spec.recordStart === null) {
367
+ current = new Container();
368
+ records.push(current);
369
+ }
370
+ // Most-recent container instances for childOf resolution.
371
+ const lastOf = new Map();
372
+ let seq = 0;
373
+ const lines = text.split("\n");
374
+ for (let i = 0; i < lines.length; i++) {
375
+ let raw = lines[i] ?? "";
376
+ if (raw.endsWith("\r"))
377
+ raw = raw.slice(0, -1);
378
+ if (i === 0 && raw.charCodeAt(0) === 0xfeff)
379
+ raw = raw.slice(1);
380
+ const where = `${spec.name}.txt:${i + 1}`;
381
+ let parsed;
382
+ try {
383
+ parsed = independentParseLine(raw, lookup);
384
+ }
385
+ catch (err) {
386
+ throw new Error(`${where}: ${err instanceof Error ? err.message : String(err)}`);
387
+ }
388
+ if (parsed === null)
389
+ continue;
390
+ const cd = table.get(parsed.directive);
391
+ if (cd === undefined)
392
+ throw new Error(`${where}: unregistered "${parsed.directive}"`);
393
+ if (spec.recordStart !== null && parsed.directive === spec.recordStart) {
394
+ current = new Container();
395
+ records.push(current);
396
+ lastOf.clear();
397
+ seq = 0;
398
+ }
399
+ let root;
400
+ if (current !== null)
401
+ root = current;
402
+ else if (headerNode !== null && (spec.header ?? []).includes(parsed.directive))
403
+ root = headerNode;
404
+ else
405
+ throw new Error(`${where}: directive "${parsed.directive}" before first record`);
406
+ const value = makeValue(cd, parsed.values);
407
+ let target = root;
408
+ if (cd.def.childOf !== undefined) {
409
+ let best = null;
410
+ for (const parent of cd.def.childOf) {
411
+ const inst = lastOf.get(parent);
412
+ if (inst !== undefined && (best === null || inst.seq > best.seq))
413
+ best = inst;
414
+ }
415
+ if (best !== null)
416
+ target = best.node;
417
+ }
418
+ if (cd.def.repeat === true) {
419
+ const existing = target.children.get(parsed.directive);
420
+ const occurrence = Array.isArray(existing) ? existing.length : 0;
421
+ if (existing === undefined)
422
+ target.children.set(parsed.directive, [value]);
423
+ else if (Array.isArray(existing))
424
+ existing.push(value);
425
+ else
426
+ throw new Error(`${where}: repeat collision on "${parsed.directive}"`);
427
+ if (cd.def.orderKey !== undefined) {
428
+ const order = target.orderGroups.get(cd.def.orderKey) ?? [];
429
+ order.push(`${parsed.directive}:${occurrence}`);
430
+ target.orderGroups.set(cd.def.orderKey, order);
431
+ }
432
+ }
433
+ else {
434
+ if (target.children.has(parsed.directive)) {
435
+ throw new Error(`${where}: duplicate "${parsed.directive}" (not marked repeat)`);
436
+ }
437
+ target.children.set(parsed.directive, value);
438
+ }
439
+ if (value instanceof Container) {
440
+ lastOf.set(parsed.directive, { node: value, seq: ++seq });
441
+ }
442
+ }
443
+ const finalized = records.map((r) => finalize(r, spec));
444
+ const source = `lib/gamedata/${spec.name}.txt`;
445
+ if (headerNode !== null && headerNode.children.size > 0) {
446
+ return {
447
+ file: spec.name,
448
+ source,
449
+ header: finalize(headerNode, spec),
450
+ records: finalized,
451
+ };
452
+ }
453
+ return { file: spec.name, source, records: finalized };
454
+ }
455
+ /**
456
+ * The directive of every data line in a gamedata file, in file order.
457
+ *
458
+ * Mirrors the front of parser_parse(): skip leading isspace, drop blank and '#'
459
+ * lines, then take the first strtok(line, ":") token (strtok skips a run of
460
+ * leading delimiters). Deliberately does no field parsing, so it is an
461
+ * independent check on the record splitter and the directive table.
462
+ */
463
+ export function extractDirectiveSequence(text) {
464
+ const out = [];
465
+ const lines = text.split("\n");
466
+ for (let i = 0; i < lines.length; i++) {
467
+ let raw = lines[i] ?? "";
468
+ if (raw.endsWith("\r"))
469
+ raw = raw.slice(0, -1);
470
+ if (i === 0 && raw.charCodeAt(0) === 0xfeff)
471
+ raw = raw.slice(1);
472
+ let pos = 0;
473
+ while (pos < raw.length && isSpace(raw.charCodeAt(pos)))
474
+ pos++;
475
+ if (pos >= raw.length || raw[pos] === "#")
476
+ continue;
477
+ while (pos < raw.length && raw[pos] === ":")
478
+ pos++;
479
+ if (pos >= raw.length)
480
+ continue;
481
+ const start = pos;
482
+ while (pos < raw.length && raw[pos] !== ":")
483
+ pos++;
484
+ out.push(raw.slice(start, pos));
485
+ }
486
+ return out;
487
+ }
488
+ /** Every directive key that occurs in a gamedata file, with its line count. */
489
+ export function extractDirectiveKeys(text) {
490
+ const counts = new Map();
491
+ for (const key of extractDirectiveSequence(text)) {
492
+ counts.set(key, (counts.get(key) ?? 0) + 1);
493
+ }
494
+ return counts;
495
+ }
496
+ /**
497
+ * parse_specs() tokenizes the format string with strtok(fmt, " "), so runs of
498
+ * whitespace collapse and leading/trailing whitespace is insignificant.
499
+ */
500
+ export function normalizeFormat(fmt) {
501
+ return fmt.split(/\s+/).filter((t) => t.length > 0).join(" ");
502
+ }
503
+ /**
504
+ * Every format string handed to parser_reg() in a C source file, normalized.
505
+ *
506
+ * Adjacent string literals are concatenated the way the C compiler does, so
507
+ * registrations wrapped across source lines (e.g. init.c's melee-critical-level)
508
+ * come back as the single format string parse_specs() actually sees.
509
+ */
510
+ export function extractParserRegFormats(source) {
511
+ const out = [];
512
+ const needle = "parser_reg(";
513
+ let at = 0;
514
+ for (;;) {
515
+ const call = source.indexOf(needle, at);
516
+ if (call < 0)
517
+ break;
518
+ at = call + needle.length;
519
+ /* The format is the first string literal argument of the call. */
520
+ let pos = at;
521
+ while (pos < source.length && source[pos] !== '"' && source[pos] !== ";")
522
+ pos++;
523
+ if (source[pos] !== '"')
524
+ continue;
525
+ let fmt = "";
526
+ for (;;) {
527
+ pos++; /* past the opening quote */
528
+ while (pos < source.length && source[pos] !== '"') {
529
+ if (source[pos] === "\\")
530
+ pos++;
531
+ fmt += source[pos] ?? "";
532
+ pos++;
533
+ }
534
+ pos++; /* past the closing quote */
535
+ let peek = pos;
536
+ while (peek < source.length && isSpace(source.charCodeAt(peek)))
537
+ peek++;
538
+ if (source[peek] !== '"')
539
+ break;
540
+ pos = peek;
541
+ }
542
+ out.push(normalizeFormat(fmt));
543
+ at = pos;
544
+ }
545
+ return out;
546
+ }
547
+ //# sourceMappingURL=data-exactness.reader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-exactness.reader.js","sourceRoot":"","sources":["../src/data-exactness.reader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @rpgm-tools/neo-angband-content - the core content pack.
3
+ *
4
+ * Phase 1 builds a compiler that translates reference/lib/gamedata/*.txt
5
+ * (Angband 4.2.6) into the schema-validated pack format defined by
6
+ * @rpgm-tools/neo-angband-mod-sdk. The base game is itself "pack zero": it loads
7
+ * through the same pipeline as any mod, which is what makes total
8
+ * conversions possible by construction.
9
+ */
10
+ /** Namespace prefix reserved for the base game's content. */
11
+ export declare const CORE_NAMESPACE = "core";
12
+ export { ParseError, isValidRandom, parseLine, parseSignature } from "./parser.js";
13
+ export type { DirectiveSignature, FieldSpec, FieldType, ParseErrorCode, ParsedLine, } from "./parser.js";
14
+ export { compileGamedata } from "./records.js";
15
+ export type { CompiledFile, DirectiveDef, FileSpec, JsonObject, JsonPrimitive, JsonValue, } from "./records.js";
16
+ export { gamedataSpecs } from "./specs/index.js";
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,cAAc,SAAS,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnF,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,aAAa,EACb,SAAS,GACV,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @rpgm-tools/neo-angband-content - the core content pack.
3
+ *
4
+ * Phase 1 builds a compiler that translates reference/lib/gamedata/*.txt
5
+ * (Angband 4.2.6) into the schema-validated pack format defined by
6
+ * @rpgm-tools/neo-angband-mod-sdk. The base game is itself "pack zero": it loads
7
+ * through the same pipeline as any mod, which is what makes total
8
+ * conversions possible by construction.
9
+ */
10
+ /** Namespace prefix reserved for the base game's content. */
11
+ export const CORE_NAMESPACE = "core";
12
+ export { ParseError, isValidRandom, parseLine, parseSignature } from "./parser.js";
13
+ export { compileGamedata } from "./records.js";
14
+ export { gamedataSpecs } from "./specs/index.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AAErC,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAQnF,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAS/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}