@kawaijs/parser 0.1.10 → 0.1.12

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 CHANGED
@@ -19,7 +19,9 @@ const script = `
19
19
  character yumia "Yumia"
20
20
 
21
21
  label start:
22
- scene bg classroom
22
+ scene bg classroom with fade
23
+ vfx sakura
24
+ show yumia happy at center with bounce
23
25
  yumia "Hello world!"
24
26
  `;
25
27
 
@@ -29,6 +31,7 @@ console.log(storyPackage);
29
31
 
30
32
  ## Features
31
33
  - **Indentation Lexer**: Clean Python/Ren'Py-style whitespace and block tracking.
34
+ - **Directives**: `scene`/`show`/`hide` transitions (`fade`, `dissolve`, `wipeleft`, `wiperight`), `define`, `input`, `window`, `vfx`, `camera`, `pause`, `cg`, audio, `menu`, `if`/`call`/`jump`.
32
35
  - **Rich Diagnostics**: Formatted code frames with line numbers, caret underlines, and hint suggestions.
33
36
  - **AST to IR Compiler**: Compiles high-level script into an execution instruction stream with label resolution.
34
37
 
@@ -6,8 +6,11 @@ export declare class Compiler {
6
6
  private readonly program;
7
7
  private readonly options;
8
8
  private anonymousLabelCounter;
9
+ private defines;
9
10
  constructor(program: ProgramNode, options?: CompilerOptions);
10
11
  compile(): StoryPackage;
12
+ /** Resolve `define` aliases. Returns `fallback` (or `primary`) when unset. */
13
+ private resolveAlias;
11
14
  private compileBlock;
12
15
  private validateLabelReferences;
13
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,WAAW,EAEX,YAAY,EACb,MAAM,cAAc,CAAC;AAGtB,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,qBAAqB,CAAK;gBAEtB,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,eAA0C;IAK9E,OAAO,IAAI,YAAY;IAyC9B,OAAO,CAAC,YAAY;IA4NpB,OAAO,CAAC,uBAAuB;CAkChC"}
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAIV,WAAW,EAEX,YAAY,EACb,MAAM,cAAc,CAAC;AAItB,MAAM,WAAW,eAAe;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,OAAO,CAA8B;gBAEjC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,eAA0C;IAK9E,OAAO,IAAI,YAAY;IAqD9B,8EAA8E;IAC9E,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,YAAY;IAkXpB,OAAO,CAAC,uBAAuB;CA4BhC"}
package/dist/compiler.js CHANGED
@@ -1,8 +1,10 @@
1
1
  import { KawaError } from './diagnostic.js';
2
+ import { closestMatch } from './suggest.js';
2
3
  export class Compiler {
3
4
  program;
4
5
  options;
5
6
  anonymousLabelCounter = 0;
7
+ defines = {};
6
8
  constructor(program, options = { validateLabels: true }) {
7
9
  this.program = program;
8
10
  this.options = options;
@@ -10,7 +12,8 @@ export class Compiler {
10
12
  compile() {
11
13
  const characters = {};
12
14
  const labels = {};
13
- // 1. First pass: Collect character declarations and label bodies
15
+ this.defines = {};
16
+ // 1. First pass: Collect character / define declarations and label bodies
14
17
  for (const stmt of this.program.statements) {
15
18
  if (stmt.type === 'CharacterDecl') {
16
19
  characters[stmt.id] = {
@@ -19,6 +22,17 @@ export class Compiler {
19
22
  color: stmt.color
20
23
  };
21
24
  }
25
+ else if (stmt.type === 'DefineDecl') {
26
+ if (this.defines[stmt.name]) {
27
+ throw new KawaError({
28
+ code: 'E0205',
29
+ message: `Duplicate define '${stmt.name}'`,
30
+ severity: 'error',
31
+ loc: stmt.loc
32
+ });
33
+ }
34
+ this.defines[stmt.name] = stmt.value;
35
+ }
22
36
  else if (stmt.type === 'LabelDecl') {
23
37
  if (labels[stmt.name]) {
24
38
  throw new KawaError({
@@ -42,10 +56,22 @@ export class Compiler {
42
56
  startLabel: labels['start'] ? 'start' : Object.keys(labels)[0]
43
57
  },
44
58
  characters,
59
+ defines: { ...this.defines },
45
60
  labels
46
61
  };
47
62
  }
48
- compileBlock(currentLabel, statements, labels) {
63
+ /** Resolve `define` aliases. Returns `fallback` (or `primary`) when unset. */
64
+ resolveAlias(primary, fallback) {
65
+ if (this.defines[primary])
66
+ return this.defines[primary];
67
+ if (fallback !== undefined) {
68
+ if (this.defines[fallback])
69
+ return this.defines[fallback];
70
+ return fallback;
71
+ }
72
+ return primary;
73
+ }
74
+ compileBlock(currentLabel, statements, labels, continuationLabel) {
49
75
  const instructions = [];
50
76
  for (let i = 0; i < statements.length; i++) {
51
77
  const stmt = statements[i];
@@ -53,7 +79,7 @@ export class Compiler {
53
79
  case 'SceneStmt':
54
80
  instructions.push({
55
81
  type: 'scene',
56
- background: stmt.background,
82
+ background: this.resolveAlias(stmt.background),
57
83
  transition: stmt.transition,
58
84
  loc: stmt.loc
59
85
  });
@@ -65,6 +91,8 @@ export class Compiler {
65
91
  expression: stmt.expression,
66
92
  position: stmt.position,
67
93
  transition: stmt.transition,
94
+ layer: stmt.layer,
95
+ z: stmt.z,
68
96
  loc: stmt.loc
69
97
  });
70
98
  break;
@@ -90,15 +118,22 @@ export class Compiler {
90
118
  this.anonymousLabelCounter += 1;
91
119
  const mergeLabel = `__menu_merge_${currentLabel}_${this.anonymousLabelCounter}`;
92
120
  const choiceOptions = [];
121
+ if (stmt.choices.length === 0) {
122
+ throw new KawaError({
123
+ code: 'E0204',
124
+ message: `Menu in '${currentLabel}' has no choices.`,
125
+ severity: 'error',
126
+ loc: stmt.loc,
127
+ hint: 'Add at least one choice option under the menu block.'
128
+ });
129
+ }
93
130
  for (const choice of stmt.choices) {
94
131
  this.anonymousLabelCounter += 1;
95
132
  const syntheticLabel = `__choice_${currentLabel}_${this.anonymousLabelCounter}`;
96
- const choiceInstructions = this.compileBlock(syntheticLabel, choice.body, labels);
97
- if (hasRemaining || choice.body.length === 0) {
98
- const lastInst = choiceInstructions[choiceInstructions.length - 1];
99
- if (!lastInst || (lastInst.type !== 'jump' && lastInst.type !== 'return')) {
100
- choiceInstructions.push({ type: 'jump', targetLabel: mergeLabel });
101
- }
133
+ const choiceInstructions = this.compileBlock(syntheticLabel, choice.body, labels, mergeLabel);
134
+ const lastInst = choiceInstructions[choiceInstructions.length - 1];
135
+ if (!lastInst || (lastInst.type !== 'jump' && lastInst.type !== 'return')) {
136
+ choiceInstructions.push({ type: 'jump', targetLabel: mergeLabel });
102
137
  }
103
138
  labels[syntheticLabel] = choiceInstructions;
104
139
  choiceOptions.push({
@@ -111,13 +146,17 @@ export class Compiler {
111
146
  type: 'choice',
112
147
  prompt: stmt.prompt,
113
148
  choices: choiceOptions,
149
+ fallbackLabel: mergeLabel,
114
150
  loc: stmt.loc
115
151
  });
116
152
  if (hasRemaining) {
117
- labels[mergeLabel] = this.compileBlock(mergeLabel, remainingStatements, labels);
153
+ labels[mergeLabel] = this.compileBlock(mergeLabel, remainingStatements, labels, continuationLabel);
154
+ }
155
+ else if (continuationLabel) {
156
+ labels[mergeLabel] = [{ type: 'jump', targetLabel: continuationLabel }];
118
157
  }
119
158
  else {
120
- labels[mergeLabel] = [];
159
+ labels[mergeLabel] = [{ type: 'return' }];
121
160
  }
122
161
  return instructions;
123
162
  }
@@ -128,6 +167,13 @@ export class Compiler {
128
167
  loc: stmt.loc
129
168
  });
130
169
  break;
170
+ case 'CallStmt':
171
+ instructions.push({
172
+ type: 'call',
173
+ targetLabel: stmt.targetLabel,
174
+ loc: stmt.loc
175
+ });
176
+ break;
131
177
  case 'ReturnStmt':
132
178
  instructions.push({
133
179
  type: 'return',
@@ -140,6 +186,7 @@ export class Compiler {
140
186
  variable: stmt.variable,
141
187
  operator: stmt.operator,
142
188
  value: stmt.value,
189
+ isVariable: stmt.isVariable,
143
190
  loc: stmt.loc
144
191
  });
145
192
  break;
@@ -151,12 +198,10 @@ export class Compiler {
151
198
  // Compile Then Branch
152
199
  this.anonymousLabelCounter += 1;
153
200
  const thenLabel = `__if_then_${currentLabel}_${this.anonymousLabelCounter}`;
154
- const thenInstructions = this.compileBlock(thenLabel, stmt.thenBranch, labels);
155
- if (hasRemaining || stmt.thenBranch.length === 0) {
156
- const lastInst = thenInstructions[thenInstructions.length - 1];
157
- if (!lastInst || (lastInst.type !== 'jump' && lastInst.type !== 'return')) {
158
- thenInstructions.push({ type: 'jump', targetLabel: mergeLabel });
159
- }
201
+ const thenInstructions = this.compileBlock(thenLabel, stmt.thenBranch, labels, mergeLabel);
202
+ const lastThen = thenInstructions[thenInstructions.length - 1];
203
+ if (!lastThen || (lastThen.type !== 'jump' && lastThen.type !== 'return')) {
204
+ thenInstructions.push({ type: 'jump', targetLabel: mergeLabel });
160
205
  }
161
206
  labels[thenLabel] = thenInstructions;
162
207
  // Compile Else & Elif Branches
@@ -164,12 +209,10 @@ export class Compiler {
164
209
  if (stmt.elseBranch) {
165
210
  this.anonymousLabelCounter += 1;
166
211
  const elseLabel = `__if_else_${currentLabel}_${this.anonymousLabelCounter}`;
167
- const elseInstructions = this.compileBlock(elseLabel, stmt.elseBranch.body, labels);
168
- if (hasRemaining || stmt.elseBranch.body.length === 0) {
169
- const lastInst = elseInstructions[elseInstructions.length - 1];
170
- if (!lastInst || (lastInst.type !== 'jump' && lastInst.type !== 'return')) {
171
- elseInstructions.push({ type: 'jump', targetLabel: mergeLabel });
172
- }
212
+ const elseInstructions = this.compileBlock(elseLabel, stmt.elseBranch.body, labels, mergeLabel);
213
+ const lastElse = elseInstructions[elseInstructions.length - 1];
214
+ if (!lastElse || (lastElse.type !== 'jump' && lastElse.type !== 'return')) {
215
+ elseInstructions.push({ type: 'jump', targetLabel: mergeLabel });
173
216
  }
174
217
  labels[elseLabel] = elseInstructions;
175
218
  currentBranchTarget = elseLabel;
@@ -180,12 +223,10 @@ export class Compiler {
180
223
  this.anonymousLabelCounter += 1;
181
224
  const elifThenLabel = `__elif_then_${currentLabel}_${this.anonymousLabelCounter}`;
182
225
  const elifTestLabel = `__elif_test_${currentLabel}_${this.anonymousLabelCounter}`;
183
- const elifThenInst = this.compileBlock(elifThenLabel, elif.body, labels);
184
- if (hasRemaining || elif.body.length === 0) {
185
- const lastInst = elifThenInst[elifThenInst.length - 1];
186
- if (!lastInst || (lastInst.type !== 'jump' && lastInst.type !== 'return')) {
187
- elifThenInst.push({ type: 'jump', targetLabel: mergeLabel });
188
- }
226
+ const elifThenInst = this.compileBlock(elifThenLabel, elif.body, labels, mergeLabel);
227
+ const lastElif = elifThenInst[elifThenInst.length - 1];
228
+ if (!lastElif || (lastElif.type !== 'jump' && lastElif.type !== 'return')) {
229
+ elifThenInst.push({ type: 'jump', targetLabel: mergeLabel });
189
230
  }
190
231
  labels[elifThenLabel] = elifThenInst;
191
232
  labels[elifTestLabel] = [
@@ -207,10 +248,13 @@ export class Compiler {
207
248
  loc: stmt.loc
208
249
  });
209
250
  if (hasRemaining) {
210
- labels[mergeLabel] = this.compileBlock(mergeLabel, remainingStatements, labels);
251
+ labels[mergeLabel] = this.compileBlock(mergeLabel, remainingStatements, labels, continuationLabel);
252
+ }
253
+ else if (continuationLabel) {
254
+ labels[mergeLabel] = [{ type: 'jump', targetLabel: continuationLabel }];
211
255
  }
212
256
  else {
213
- labels[mergeLabel] = [];
257
+ labels[mergeLabel] = [{ type: 'return' }];
214
258
  }
215
259
  return instructions;
216
260
  }
@@ -218,7 +262,7 @@ export class Compiler {
218
262
  instructions.push({
219
263
  type: 'play_audio',
220
264
  channel: stmt.channel,
221
- track: stmt.track,
265
+ track: this.resolveAlias(`${stmt.channel} ${stmt.track}`, stmt.track),
222
266
  fade: stmt.fade,
223
267
  loop: stmt.loop,
224
268
  loc: stmt.loc
@@ -232,6 +276,125 @@ export class Compiler {
232
276
  loc: stmt.loc
233
277
  });
234
278
  break;
279
+ case 'VfxStmt':
280
+ instructions.push({
281
+ type: 'vfx',
282
+ effect: stmt.effect,
283
+ intensity: stmt.intensity,
284
+ color: stmt.color,
285
+ loc: stmt.loc
286
+ });
287
+ break;
288
+ case 'CameraStmt':
289
+ instructions.push({
290
+ type: 'camera',
291
+ action: stmt.action,
292
+ duration: stmt.duration,
293
+ loc: stmt.loc
294
+ });
295
+ break;
296
+ case 'PauseStmt':
297
+ instructions.push({
298
+ type: 'pause',
299
+ duration: stmt.duration,
300
+ loc: stmt.loc
301
+ });
302
+ break;
303
+ case 'CgStmt':
304
+ instructions.push({
305
+ type: 'cg',
306
+ image: this.resolveAlias(stmt.image),
307
+ unlockId: stmt.unlockId,
308
+ loc: stmt.loc
309
+ });
310
+ break;
311
+ case 'InputStmt':
312
+ instructions.push({
313
+ type: 'input',
314
+ variable: stmt.variable,
315
+ prompt: stmt.prompt,
316
+ loc: stmt.loc
317
+ });
318
+ break;
319
+ case 'WindowStmt':
320
+ instructions.push({
321
+ type: 'window',
322
+ action: stmt.action,
323
+ loc: stmt.loc
324
+ });
325
+ break;
326
+ case 'ThemeStmt':
327
+ instructions.push({
328
+ type: 'theme',
329
+ name: stmt.name,
330
+ loc: stmt.loc
331
+ });
332
+ break;
333
+ case 'StyleStmt':
334
+ instructions.push({
335
+ type: 'style',
336
+ target: stmt.target,
337
+ name: stmt.name,
338
+ loc: stmt.loc
339
+ });
340
+ break;
341
+ case 'HotspotStmt': {
342
+ // Writer-friendly percent (0–100) or fraction (0–1) → normalize to 0–1
343
+ const norm = (n) => {
344
+ if (!Number.isFinite(n))
345
+ return 0;
346
+ const v = n > 1 ? n / 100 : n;
347
+ return Math.min(1, Math.max(0, v));
348
+ };
349
+ instructions.push({
350
+ type: 'hotspot',
351
+ id: stmt.id,
352
+ x: norm(stmt.x),
353
+ y: norm(stmt.y),
354
+ w: Math.max(0.01, norm(stmt.w)),
355
+ h: Math.max(0.01, norm(stmt.h)),
356
+ targetLabel: stmt.targetLabel,
357
+ loc: stmt.loc
358
+ });
359
+ break;
360
+ }
361
+ case 'LayerStmt':
362
+ instructions.push({
363
+ type: 'layer',
364
+ name: stmt.name,
365
+ loc: stmt.loc
366
+ });
367
+ break;
368
+ case 'AnimateStmt':
369
+ instructions.push({
370
+ type: 'animate',
371
+ character: stmt.character,
372
+ animation: stmt.animation,
373
+ durationMs: stmt.durationMs,
374
+ loc: stmt.loc
375
+ });
376
+ break;
377
+ case 'UnlockStmt':
378
+ instructions.push({
379
+ type: 'unlock',
380
+ id: stmt.id,
381
+ title: stmt.title,
382
+ description: stmt.description,
383
+ loc: stmt.loc
384
+ });
385
+ break;
386
+ case 'LangStmt':
387
+ instructions.push({
388
+ type: 'lang',
389
+ code: stmt.code,
390
+ loc: stmt.loc
391
+ });
392
+ break;
393
+ case 'CharacterDecl':
394
+ case 'DefineDecl':
395
+ case 'LabelDecl':
396
+ // Declarations belong at top level; ignore if nested.
397
+ break;
235
398
  }
236
399
  }
237
400
  return instructions;
@@ -241,23 +404,16 @@ export class Compiler {
241
404
  const userLabels = Array.from(knownLabels).filter(l => !l.startsWith('__'));
242
405
  for (const [labelName, instructions] of Object.entries(labels)) {
243
406
  for (const inst of instructions) {
244
- if (inst.type === 'jump' && !knownLabels.has(inst.targetLabel)) {
245
- let closestLabel;
246
- let minDistance = Infinity;
247
- for (const uLabel of userLabels) {
248
- const dist = levenshteinDistance(inst.targetLabel, uLabel);
249
- if (dist < minDistance && dist <= 3) {
250
- minDistance = dist;
251
- closestLabel = uLabel;
252
- }
253
- }
254
- let hint = `Available labels: ${userLabels.join(', ')}`;
407
+ if ((inst.type === 'jump' || inst.type === 'call' || inst.type === 'hotspot') &&
408
+ !knownLabels.has(inst.targetLabel)) {
409
+ const closestLabel = closestMatch(inst.targetLabel, userLabels, 3);
410
+ let hint = `Available labels: ${userLabels.join(', ') || '(none)'}`;
255
411
  if (closestLabel) {
256
412
  hint = `Did you mean '${closestLabel}'?\n Available labels: ${userLabels.join(', ')}`;
257
413
  }
258
414
  throw new KawaError({
259
415
  code: 'E0202',
260
- message: `Unknown label '${inst.targetLabel}' referenced in '${labelName.startsWith('__') ? 'block' : labelName}'`,
416
+ message: `Unknown label '${inst.targetLabel}' referenced by ${inst.type} in '${labelName.startsWith('__') ? 'block' : labelName}'`,
261
417
  severity: 'error',
262
418
  loc: inst.loc,
263
419
  hint
@@ -267,24 +423,4 @@ export class Compiler {
267
423
  }
268
424
  }
269
425
  }
270
- function levenshteinDistance(a, b) {
271
- const m = a.length;
272
- const n = b.length;
273
- const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
274
- for (let i = 0; i <= m; i++)
275
- dp[i][0] = i;
276
- for (let j = 0; j <= n; j++)
277
- dp[0][j] = j;
278
- for (let i = 1; i <= m; i++) {
279
- for (let j = 1; j <= n; j++) {
280
- if (a[i - 1] === b[j - 1]) {
281
- dp[i][j] = dp[i - 1][j - 1];
282
- }
283
- else {
284
- dp[i][j] = 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
285
- }
286
- }
287
- }
288
- return dp[m][n];
289
- }
290
426
  //# sourceMappingURL=compiler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../src/compiler.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,8 @@ export * from './diagnostic.js';
6
6
  export * from './lexer.js';
7
7
  export * from './parser.js';
8
8
  export * from './compiler.js';
9
+ export * from './validator.js';
10
+ export * from './suggest.js';
9
11
  /**
10
12
  * Convenience helper to compile a raw Kawa Script string directly into a StoryPackage IR.
11
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,SAAgB,EACpB,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe,GACvC,YAAY,CAOd"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EAAY,KAAK,eAAe,EAAE,MAAM,eAAe,CAAC;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,SAAgB,EACpB,OAAO,CAAC,EAAE,YAAY,GAAG,eAAe,GACvC,YAAY,CAOd"}
package/dist/index.js CHANGED
@@ -6,6 +6,8 @@ export * from './diagnostic.js';
6
6
  export * from './lexer.js';
7
7
  export * from './parser.js';
8
8
  export * from './compiler.js';
9
+ export * from './validator.js';
10
+ export * from './suggest.js';
9
11
  /**
10
12
  * Convenience helper to compile a raw Kawa Script string directly into a StoryPackage IR.
11
13
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAE9B;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,IAAI,GAAG,aAAa,EACpB,OAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAqB,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAE/D,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAE7B;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAc,EACd,IAAI,GAAG,aAAa,EACpB,OAAwC;IAExC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;IAChC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGlD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,MAAM,EAAE,MAAM,EAAE,IAAI,SAAgB,EAAE,OAAO,GAAE,YAAiB;IAMrE,QAAQ,IAAI,KAAK,EAAE;IAYnB,SAAS,IAAI,KAAK;IA4NzB,OAAO,CAAC,iBAAiB;IA2DzB,OAAO,CAAC,UAAU;IAoDlB,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAGtD,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,KAAK;IAChB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,sBAAsB,CAAS;gBAE3B,MAAM,EAAE,MAAM,EAAE,IAAI,SAAgB,EAAE,OAAO,GAAE,YAAiB;IAMrE,QAAQ,IAAI,KAAK,EAAE;IAYnB,SAAS,IAAI,KAAK;IA4OzB,OAAO,CAAC,iBAAiB;IA2DzB,OAAO,CAAC,UAAU;IA4ElB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,kBAAkB;CAG3B"}