@kernlang/core 3.3.9 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/capability-matrix.d.ts +15 -0
- package/dist/capability-matrix.js +245 -0
- package/dist/capability-matrix.js.map +1 -0
- package/dist/codegen/body-ts.d.ts +68 -0
- package/dist/codegen/body-ts.js +214 -0
- package/dist/codegen/body-ts.js.map +1 -0
- package/dist/codegen/data-layer.d.ts +1 -1
- package/dist/codegen/data-layer.js +59 -23
- package/dist/codegen/data-layer.js.map +1 -1
- package/dist/codegen/events.js +1 -1
- package/dist/codegen/events.js.map +1 -1
- package/dist/codegen/functions.js +48 -7
- package/dist/codegen/functions.js.map +1 -1
- package/dist/codegen/ground-layer.js +10 -6
- package/dist/codegen/ground-layer.js.map +1 -1
- package/dist/codegen/helpers.d.ts +3 -1
- package/dist/codegen/helpers.js +5 -1
- package/dist/codegen/helpers.js.map +1 -1
- package/dist/codegen/kern-stdlib.d.ts +63 -0
- package/dist/codegen/kern-stdlib.js +160 -0
- package/dist/codegen/kern-stdlib.js.map +1 -0
- package/dist/codegen/machines.js +4 -3
- package/dist/codegen/machines.js.map +1 -1
- package/dist/codegen/modules.d.ts +1 -0
- package/dist/codegen/modules.js +52 -1
- package/dist/codegen/modules.js.map +1 -1
- package/dist/codegen/screens.js +31 -9
- package/dist/codegen/screens.js.map +1 -1
- package/dist/codegen/stdlib-preamble.d.ts +58 -0
- package/dist/codegen/stdlib-preamble.js +271 -0
- package/dist/codegen/stdlib-preamble.js.map +1 -0
- package/dist/codegen/type-system.d.ts +113 -1
- package/dist/codegen/type-system.js +404 -31
- package/dist/codegen/type-system.js.map +1 -1
- package/dist/codegen-core.d.ts +2 -2
- package/dist/codegen-core.js +65 -10
- package/dist/codegen-core.js.map +1 -1
- package/dist/codegen-expression.d.ts +11 -0
- package/dist/codegen-expression.js +199 -0
- package/dist/codegen-expression.js.map +1 -0
- package/dist/concepts.d.ts +3 -3
- package/dist/config.d.ts +16 -0
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/decompiler.js +575 -4
- package/dist/decompiler.js.map +1 -1
- package/dist/importer.d.ts +1 -0
- package/dist/importer.js +574 -34
- package/dist/importer.js.map +1 -1
- package/dist/index.d.ts +16 -3
- package/dist/index.js +19 -3
- package/dist/index.js.map +1 -1
- package/dist/node-props.d.ts +181 -1
- package/dist/node-props.js.map +1 -1
- package/dist/parser-core.d.ts +7 -1
- package/dist/parser-core.js +33 -7
- package/dist/parser-core.js.map +1 -1
- package/dist/parser-diagnostics.js +8 -0
- package/dist/parser-diagnostics.js.map +1 -1
- package/dist/parser-expression.d.ts +22 -0
- package/dist/parser-expression.js +774 -0
- package/dist/parser-expression.js.map +1 -0
- package/dist/parser-keywords.js +16 -0
- package/dist/parser-keywords.js.map +1 -1
- package/dist/parser-tokenizer.d.ts +5 -3
- package/dist/parser-tokenizer.js +97 -16
- package/dist/parser-tokenizer.js.map +1 -1
- package/dist/parser-validate-effects.d.ts +21 -0
- package/dist/parser-validate-effects.js +188 -0
- package/dist/parser-validate-effects.js.map +1 -0
- package/dist/parser-validate-expressions.d.ts +6 -0
- package/dist/parser-validate-expressions.js +41 -0
- package/dist/parser-validate-expressions.js.map +1 -0
- package/dist/parser-validate-propagation.d.ts +105 -0
- package/dist/parser-validate-propagation.js +684 -0
- package/dist/parser-validate-propagation.js.map +1 -0
- package/dist/parser-validate-union-kind.d.ts +24 -0
- package/dist/parser-validate-union-kind.js +97 -0
- package/dist/parser-validate-union-kind.js.map +1 -0
- package/dist/parser.d.ts +10 -3
- package/dist/parser.js +11 -5
- package/dist/parser.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +562 -30
- package/dist/schema.js.map +1 -1
- package/dist/semantic-validator.js +24 -13
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +5 -2
- package/dist/spec.js +36 -2
- package/dist/spec.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.js +7 -1
- package/dist/types.js.map +1 -1
- package/dist/value-ir.d.ts +96 -0
- package/dist/value-ir.js +25 -0
- package/dist/value-ir.js.map +1 -0
- package/package.json +1 -1
package/dist/node-props.d.ts
CHANGED
|
@@ -21,25 +21,89 @@ export interface DocProps extends BaseProps {
|
|
|
21
21
|
export interface TypeProps extends BaseProps {
|
|
22
22
|
values?: string;
|
|
23
23
|
alias?: string;
|
|
24
|
+
generics?: string;
|
|
24
25
|
}
|
|
25
26
|
export interface InterfaceProps extends BaseProps {
|
|
26
27
|
extends?: string;
|
|
28
|
+
generics?: string;
|
|
27
29
|
}
|
|
28
30
|
export interface UnionProps extends BaseProps {
|
|
29
31
|
discriminant?: string;
|
|
32
|
+
/** Slice 4 — `result` | `option` | undefined (default: regular discriminated union). */
|
|
33
|
+
kind?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface EnumProps extends BaseProps {
|
|
36
|
+
values?: string;
|
|
37
|
+
const?: string | boolean;
|
|
38
|
+
}
|
|
39
|
+
export interface MemberProps extends BaseProps {
|
|
40
|
+
value?: string | ExprObject;
|
|
41
|
+
}
|
|
42
|
+
export interface UseProps extends BaseProps {
|
|
43
|
+
path?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface FromProps extends BaseProps {
|
|
46
|
+
as?: string;
|
|
47
|
+
}
|
|
48
|
+
export interface LetProps extends BaseProps {
|
|
49
|
+
value?: string | ExprObject;
|
|
50
|
+
expr?: string | ExprObject;
|
|
51
|
+
type?: string;
|
|
52
|
+
}
|
|
53
|
+
export interface IndexerProps extends BaseProps {
|
|
54
|
+
keyName?: string;
|
|
55
|
+
keyType?: string;
|
|
56
|
+
type?: string;
|
|
57
|
+
readonly?: string | boolean;
|
|
58
|
+
}
|
|
59
|
+
export interface OverloadProps extends BaseProps {
|
|
60
|
+
params?: string;
|
|
61
|
+
returns?: string;
|
|
62
|
+
generics?: string;
|
|
30
63
|
}
|
|
31
64
|
export interface ServiceProps extends BaseProps {
|
|
32
65
|
implements?: string;
|
|
66
|
+
generics?: string;
|
|
33
67
|
}
|
|
34
68
|
export interface ClassProps extends BaseProps {
|
|
35
69
|
extends?: string;
|
|
36
70
|
implements?: string;
|
|
37
71
|
abstract?: string | boolean;
|
|
72
|
+
generics?: string;
|
|
38
73
|
}
|
|
39
74
|
export interface ConstProps extends BaseProps {
|
|
40
75
|
type?: string;
|
|
41
76
|
value?: string | ExprObject;
|
|
42
77
|
}
|
|
78
|
+
export interface DestructureProps extends BaseProps {
|
|
79
|
+
kind?: 'const' | 'let';
|
|
80
|
+
source?: string | ExprObject;
|
|
81
|
+
type?: string;
|
|
82
|
+
expr?: string | ExprObject;
|
|
83
|
+
}
|
|
84
|
+
export interface BindingProps extends BaseProps {
|
|
85
|
+
key?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface DestructureElementProps extends BaseProps {
|
|
88
|
+
index?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface MapLitProps extends BaseProps {
|
|
91
|
+
type?: string;
|
|
92
|
+
kind?: 'const' | 'let';
|
|
93
|
+
expr?: string | ExprObject;
|
|
94
|
+
}
|
|
95
|
+
export interface MapEntryProps extends BaseProps {
|
|
96
|
+
key?: string | ExprObject;
|
|
97
|
+
value?: string | ExprObject;
|
|
98
|
+
}
|
|
99
|
+
export interface SetLitProps extends BaseProps {
|
|
100
|
+
type?: string;
|
|
101
|
+
kind?: 'const' | 'let';
|
|
102
|
+
expr?: string | ExprObject;
|
|
103
|
+
}
|
|
104
|
+
export interface SetItemProps extends BaseProps {
|
|
105
|
+
value?: string | ExprObject;
|
|
106
|
+
}
|
|
43
107
|
export interface FnProps extends BaseProps {
|
|
44
108
|
params?: string;
|
|
45
109
|
returns?: string;
|
|
@@ -47,6 +111,23 @@ export interface FnProps extends BaseProps {
|
|
|
47
111
|
stream?: string | boolean;
|
|
48
112
|
generator?: string | boolean;
|
|
49
113
|
expr?: string | ExprObject;
|
|
114
|
+
generics?: string;
|
|
115
|
+
/** Slice 6 — declares no observable side effects. Only `pure` accepted in v1. */
|
|
116
|
+
effects?: string;
|
|
117
|
+
}
|
|
118
|
+
export interface MethodProps extends BaseProps {
|
|
119
|
+
params?: string;
|
|
120
|
+
returns?: string;
|
|
121
|
+
async?: string | boolean;
|
|
122
|
+
stream?: string | boolean;
|
|
123
|
+
generator?: string | boolean;
|
|
124
|
+
static?: string | boolean;
|
|
125
|
+
private?: string | boolean;
|
|
126
|
+
generics?: string;
|
|
127
|
+
}
|
|
128
|
+
export interface ConstructorProps extends BaseProps {
|
|
129
|
+
params?: string;
|
|
130
|
+
generics?: string;
|
|
50
131
|
}
|
|
51
132
|
export interface ErrorProps extends BaseProps {
|
|
52
133
|
extends?: string;
|
|
@@ -91,6 +172,13 @@ export interface WebSocketProps extends BaseProps {
|
|
|
91
172
|
export interface DeriveProps extends BaseProps {
|
|
92
173
|
expr?: string;
|
|
93
174
|
type?: string;
|
|
175
|
+
/** Slice 6 — see FnProps. */
|
|
176
|
+
effects?: string;
|
|
177
|
+
}
|
|
178
|
+
export interface MemoProps extends BaseProps {
|
|
179
|
+
deps?: string;
|
|
180
|
+
/** Slice 6 — see FnProps. */
|
|
181
|
+
effects?: string;
|
|
94
182
|
}
|
|
95
183
|
export interface FmtProps extends BaseProps {
|
|
96
184
|
template?: string;
|
|
@@ -310,6 +398,9 @@ export interface ActionRegistryProps extends BaseProps {
|
|
|
310
398
|
export interface GuardProps extends BaseProps {
|
|
311
399
|
when?: string;
|
|
312
400
|
message?: string;
|
|
401
|
+
covers?: string;
|
|
402
|
+
over?: string;
|
|
403
|
+
union?: string;
|
|
313
404
|
}
|
|
314
405
|
export interface AssumeProps extends BaseProps {
|
|
315
406
|
expr?: string;
|
|
@@ -336,9 +427,44 @@ export interface ResolveProps extends BaseProps {
|
|
|
336
427
|
}
|
|
337
428
|
export interface ExpectProps extends BaseProps {
|
|
338
429
|
expr?: string;
|
|
430
|
+
fn?: string;
|
|
431
|
+
derive?: string;
|
|
432
|
+
import?: string;
|
|
433
|
+
source?: string;
|
|
434
|
+
unmapped?: string;
|
|
435
|
+
allowWarnings?: string | boolean;
|
|
436
|
+
args?: string | ExprObject;
|
|
437
|
+
with?: string | ExprObject;
|
|
339
438
|
within?: string;
|
|
340
439
|
max?: string;
|
|
341
440
|
min?: string;
|
|
441
|
+
message?: string;
|
|
442
|
+
preset?: string;
|
|
443
|
+
severity?: string;
|
|
444
|
+
node?: string;
|
|
445
|
+
name?: string;
|
|
446
|
+
machine?: string;
|
|
447
|
+
transition?: string;
|
|
448
|
+
from?: string;
|
|
449
|
+
to?: string;
|
|
450
|
+
guarded?: string | boolean;
|
|
451
|
+
reaches?: string;
|
|
452
|
+
through?: string;
|
|
453
|
+
avoid?: string;
|
|
454
|
+
avoids?: string;
|
|
455
|
+
maxSteps?: string;
|
|
456
|
+
via?: string;
|
|
457
|
+
no?: string;
|
|
458
|
+
guard?: string;
|
|
459
|
+
exhaustive?: string | boolean;
|
|
460
|
+
over?: string;
|
|
461
|
+
union?: string;
|
|
462
|
+
covers?: string;
|
|
463
|
+
child?: string;
|
|
464
|
+
childName?: string;
|
|
465
|
+
prop?: string;
|
|
466
|
+
is?: string;
|
|
467
|
+
count?: string;
|
|
342
468
|
}
|
|
343
469
|
export interface RecoverProps extends BaseProps {
|
|
344
470
|
}
|
|
@@ -369,7 +495,8 @@ export interface ImportProps extends BaseProps {
|
|
|
369
495
|
export interface FieldProps extends BaseProps {
|
|
370
496
|
type?: string;
|
|
371
497
|
optional?: string | boolean;
|
|
372
|
-
|
|
498
|
+
value?: string | ExprObject;
|
|
499
|
+
default?: string | ExprObject;
|
|
373
500
|
private?: string | boolean;
|
|
374
501
|
readonly?: string | boolean;
|
|
375
502
|
static?: string | boolean;
|
|
@@ -387,9 +514,39 @@ export interface SetterProps extends BaseProps {
|
|
|
387
514
|
export interface VariantProps extends BaseProps {
|
|
388
515
|
type?: string;
|
|
389
516
|
}
|
|
517
|
+
/**
|
|
518
|
+
* Slice 3c — `param` child node for fn/method/constructor/etc. parameter
|
|
519
|
+
* defaults via ValueIR. Same shape doubles as MCP tool/resource/prompt param
|
|
520
|
+
* (type widened from identifier → typeAnnotation in slice 3c).
|
|
521
|
+
*
|
|
522
|
+
* `value` is the ValueIR-canonicalised native form (mirrors slice 3b
|
|
523
|
+
* field.value); `default` is the rawExpr passthrough kept for back-compat
|
|
524
|
+
* and existing MCP usage. `value` wins when both present.
|
|
525
|
+
*/
|
|
526
|
+
export interface ParamProps extends BaseProps {
|
|
527
|
+
type?: string;
|
|
528
|
+
value?: string | ExprObject;
|
|
529
|
+
default?: string | ExprObject;
|
|
530
|
+
required?: string | boolean;
|
|
531
|
+
optional?: string | boolean;
|
|
532
|
+
variadic?: string | boolean;
|
|
533
|
+
description?: string;
|
|
534
|
+
min?: string | number;
|
|
535
|
+
max?: string | number;
|
|
536
|
+
}
|
|
390
537
|
export interface MethodProps extends BaseProps {
|
|
391
538
|
params?: string;
|
|
392
539
|
returns?: string;
|
|
540
|
+
async?: string | boolean;
|
|
541
|
+
stream?: string | boolean;
|
|
542
|
+
generator?: string | boolean;
|
|
543
|
+
static?: string | boolean;
|
|
544
|
+
private?: string | boolean;
|
|
545
|
+
generics?: string;
|
|
546
|
+
}
|
|
547
|
+
export interface ConstructorProps extends BaseProps {
|
|
548
|
+
params?: string;
|
|
549
|
+
generics?: string;
|
|
393
550
|
}
|
|
394
551
|
export interface TransitionProps extends BaseProps {
|
|
395
552
|
from?: string;
|
|
@@ -422,6 +579,11 @@ export interface OptionProps extends BaseProps {
|
|
|
422
579
|
}
|
|
423
580
|
export interface TestProps extends BaseProps {
|
|
424
581
|
suite?: string;
|
|
582
|
+
target?: string;
|
|
583
|
+
}
|
|
584
|
+
export interface FixtureProps extends BaseProps {
|
|
585
|
+
value?: string | ExprObject;
|
|
586
|
+
expr?: string | ExprObject;
|
|
425
587
|
}
|
|
426
588
|
/** Maps known node types to their typed prop interface. */
|
|
427
589
|
export interface NodePropsMap {
|
|
@@ -429,9 +591,23 @@ export interface NodePropsMap {
|
|
|
429
591
|
type: TypeProps;
|
|
430
592
|
interface: InterfaceProps;
|
|
431
593
|
union: UnionProps;
|
|
594
|
+
enum: EnumProps;
|
|
595
|
+
member: MemberProps;
|
|
596
|
+
use: UseProps;
|
|
597
|
+
from: FromProps;
|
|
598
|
+
let: LetProps;
|
|
599
|
+
indexer: IndexerProps;
|
|
600
|
+
overload: OverloadProps;
|
|
432
601
|
service: ServiceProps;
|
|
433
602
|
class: ClassProps;
|
|
434
603
|
const: ConstProps;
|
|
604
|
+
destructure: DestructureProps;
|
|
605
|
+
binding: BindingProps;
|
|
606
|
+
element: DestructureElementProps;
|
|
607
|
+
mapLit: MapLitProps;
|
|
608
|
+
mapEntry: MapEntryProps;
|
|
609
|
+
setLit: SetLitProps;
|
|
610
|
+
setItem: SetItemProps;
|
|
435
611
|
fn: FnProps;
|
|
436
612
|
error: ErrorProps;
|
|
437
613
|
machine: MachineProps;
|
|
@@ -445,6 +621,7 @@ export interface NodePropsMap {
|
|
|
445
621
|
on: OnProps;
|
|
446
622
|
websocket: WebSocketProps;
|
|
447
623
|
derive: DeriveProps;
|
|
624
|
+
memo: MemoProps;
|
|
448
625
|
fmt: FmtProps;
|
|
449
626
|
set: SetProps;
|
|
450
627
|
async: AsyncProps;
|
|
@@ -514,16 +691,19 @@ export interface NodePropsMap {
|
|
|
514
691
|
module: ModuleProps;
|
|
515
692
|
import: ImportProps;
|
|
516
693
|
field: FieldProps;
|
|
694
|
+
param: ParamProps;
|
|
517
695
|
getter: GetterProps;
|
|
518
696
|
setter: SetterProps;
|
|
519
697
|
variant: VariantProps;
|
|
520
698
|
method: MethodProps;
|
|
699
|
+
constructor: ConstructorProps;
|
|
521
700
|
transition: TransitionProps;
|
|
522
701
|
state: StateProps;
|
|
523
702
|
column: ColumnProps;
|
|
524
703
|
relation: RelationProps;
|
|
525
704
|
option: OptionProps;
|
|
526
705
|
test: TestProps;
|
|
706
|
+
fixture: FixtureProps;
|
|
527
707
|
}
|
|
528
708
|
/**
|
|
529
709
|
* Get typed props for a known node type. Falls back to `Record<string, unknown>`
|
package/dist/node-props.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-props.js","sourceRoot":"","sources":["../src/node-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"node-props.js","sourceRoot":"","sources":["../src/node-props.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAq0BH,2EAA2E;AAE3E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,OAAO,CAA+B,IAAY;IAChE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAoB,CAAC;AAC/C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAA4B,CAAC;AACvD,CAAC"}
|
package/dist/parser-core.d.ts
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
/** @internal Core parser pipeline — line parsing, tree building, and orchestration. */
|
|
2
2
|
import { type KernRuntime } from './runtime.js';
|
|
3
3
|
import type { ParseResult } from './types.js';
|
|
4
|
+
/** Slice 7 v2 — pure-data callers (browser playground, tests) can omit the
|
|
5
|
+
* `resolveImport` callback. CLI supplies it to enable cross-module
|
|
6
|
+
* recognition for `?`/`!` propagation against fns imported via `use`. */
|
|
7
|
+
export interface ParseOptions {
|
|
8
|
+
resolveImport?: import('./parser-validate-propagation.js').ImportResolver;
|
|
9
|
+
}
|
|
4
10
|
/** @internal Single internal entry that wires parseLines → buildTree → computeEndSpans. */
|
|
5
|
-
export declare function parseInternal(source: string, asDocument: boolean, runtime?: KernRuntime): ParseResult;
|
|
11
|
+
export declare function parseInternal(source: string, asDocument: boolean, runtime?: KernRuntime, options?: ParseOptions): ParseResult;
|
package/dist/parser-core.js
CHANGED
|
@@ -4,10 +4,15 @@ import { KEYWORD_HANDLERS } from './parser-keywords.js';
|
|
|
4
4
|
import { parseStyleBlock } from './parser-style.js';
|
|
5
5
|
import { TokenStream } from './parser-token-stream.js';
|
|
6
6
|
import { tokenizeLineInternal } from './parser-tokenizer.js';
|
|
7
|
+
import { validateEffects } from './parser-validate-effects.js';
|
|
8
|
+
import { validateExpressions } from './parser-validate-expressions.js';
|
|
9
|
+
import { validateAndRewritePropagation } from './parser-validate-propagation.js';
|
|
10
|
+
import { validateUnionKind } from './parser-validate-union-kind.js';
|
|
7
11
|
import { defaultRuntime } from './runtime.js';
|
|
8
12
|
import { isKnownNodeType } from './spec.js';
|
|
9
13
|
function stripInlineComment(content) {
|
|
10
14
|
let inQuote = false;
|
|
15
|
+
let quoteChar = null;
|
|
11
16
|
let styleDepth = 0;
|
|
12
17
|
let exprDepth = 0;
|
|
13
18
|
for (let i = 0; i < content.length; i++) {
|
|
@@ -18,8 +23,15 @@ function stripInlineComment(content) {
|
|
|
18
23
|
i++;
|
|
19
24
|
continue;
|
|
20
25
|
}
|
|
21
|
-
if (ch === '"') {
|
|
22
|
-
inQuote
|
|
26
|
+
if ((ch === '"' || ch === "'") && (!inQuote || ch === quoteChar)) {
|
|
27
|
+
if (inQuote) {
|
|
28
|
+
inQuote = false;
|
|
29
|
+
quoteChar = null;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
inQuote = true;
|
|
33
|
+
quoteChar = ch;
|
|
34
|
+
}
|
|
23
35
|
continue;
|
|
24
36
|
}
|
|
25
37
|
if (inQuote)
|
|
@@ -66,7 +78,7 @@ function tokenValue(tok) {
|
|
|
66
78
|
return tok.value;
|
|
67
79
|
}
|
|
68
80
|
/** Try to parse a key=value prop from the stream. Returns true if consumed. */
|
|
69
|
-
function parseProp(state, s, props, lineNum, col) {
|
|
81
|
+
function parseProp(state, s, props, quotedProps, lineNum, col) {
|
|
70
82
|
if (!s.isKeyValue())
|
|
71
83
|
return false;
|
|
72
84
|
s.skipWS();
|
|
@@ -81,11 +93,17 @@ function parseProp(state, s, props, lineNum, col) {
|
|
|
81
93
|
const valTok = s.peek();
|
|
82
94
|
if (!valTok || valTok.kind === 'whitespace') {
|
|
83
95
|
props[key] = '';
|
|
96
|
+
quotedProps.delete(key); // last write wins on props; metadata must follow
|
|
84
97
|
return true;
|
|
85
98
|
}
|
|
86
99
|
// key={{expr}} or key="quoted"
|
|
87
100
|
if (valTok.kind === 'expr' || valTok.kind === 'quoted') {
|
|
88
|
-
|
|
101
|
+
const consumed = s.next();
|
|
102
|
+
props[key] = tokenValue(consumed);
|
|
103
|
+
if (consumed.kind === 'quoted')
|
|
104
|
+
quotedProps.add(key);
|
|
105
|
+
else
|
|
106
|
+
quotedProps.delete(key);
|
|
89
107
|
return true;
|
|
90
108
|
}
|
|
91
109
|
// key=bareValue — collect tokens up to next WS/style/themeRef
|
|
@@ -98,6 +116,7 @@ function parseProp(state, s, props, lineNum, col) {
|
|
|
98
116
|
s.next();
|
|
99
117
|
}
|
|
100
118
|
props[key] = value;
|
|
119
|
+
quotedProps.delete(key); // last write wins on props; metadata must follow
|
|
101
120
|
return true;
|
|
102
121
|
}
|
|
103
122
|
// ── parseLine ────────────────────────────────────────────────────────────
|
|
@@ -156,6 +175,7 @@ function parseLine(state, raw, lineNum, runtime = defaultRuntime) {
|
|
|
156
175
|
});
|
|
157
176
|
}
|
|
158
177
|
const props = {};
|
|
178
|
+
const quotedProps = new Set();
|
|
159
179
|
const styles = {};
|
|
160
180
|
const pseudoStyles = {};
|
|
161
181
|
const themeRefs = [];
|
|
@@ -201,7 +221,7 @@ function parseLine(state, raw, lineNum, runtime = defaultRuntime) {
|
|
|
201
221
|
continue;
|
|
202
222
|
}
|
|
203
223
|
// Key=value prop (extracted helper from Codex)
|
|
204
|
-
if (parseProp(state, s, props, lineNum, col))
|
|
224
|
+
if (parseProp(state, s, props, quotedProps, lineNum, col))
|
|
205
225
|
continue;
|
|
206
226
|
// Unknown token — skip with warning
|
|
207
227
|
const skipped = s.next();
|
|
@@ -215,6 +235,7 @@ function parseLine(state, raw, lineNum, runtime = defaultRuntime) {
|
|
|
215
235
|
rawLength: content.length,
|
|
216
236
|
type,
|
|
217
237
|
props,
|
|
238
|
+
...(quotedProps.size > 0 ? { quotedProps: [...quotedProps] } : {}),
|
|
218
239
|
styles,
|
|
219
240
|
pseudoStyles,
|
|
220
241
|
themeRefs,
|
|
@@ -451,6 +472,8 @@ function toNode(p) {
|
|
|
451
472
|
node.props.pseudoStyles = p.pseudoStyles;
|
|
452
473
|
if (p.themeRefs.length > 0)
|
|
453
474
|
node.props.themeRefs = p.themeRefs;
|
|
475
|
+
if (p.quotedProps && p.quotedProps.length > 0)
|
|
476
|
+
node.__quotedProps = p.quotedProps;
|
|
454
477
|
return node;
|
|
455
478
|
}
|
|
456
479
|
/** Build a tree from parsed lines using indent-based stack. */
|
|
@@ -492,9 +515,8 @@ function computeEndSpans(node) {
|
|
|
492
515
|
node.loc.endCol = node.loc.endCol ?? node.loc.col;
|
|
493
516
|
}
|
|
494
517
|
}
|
|
495
|
-
// ── Core parse driver ────────────────────────────────────────────────────
|
|
496
518
|
/** @internal Single internal entry that wires parseLines → buildTree → computeEndSpans. */
|
|
497
|
-
export function parseInternal(source, asDocument, runtime) {
|
|
519
|
+
export function parseInternal(source, asDocument, runtime, options) {
|
|
498
520
|
const rt = runtime ?? defaultRuntime;
|
|
499
521
|
const state = createParseState();
|
|
500
522
|
const parsed = parseLines(state, source, rt);
|
|
@@ -516,6 +538,10 @@ export function parseInternal(source, asDocument, runtime) {
|
|
|
516
538
|
buildTree(state, parsed.slice(1), root, parsed[0].indent);
|
|
517
539
|
}
|
|
518
540
|
computeEndSpans(root);
|
|
541
|
+
validateExpressions(state, root);
|
|
542
|
+
validateEffects(state, root);
|
|
543
|
+
validateUnionKind(state, root);
|
|
544
|
+
validateAndRewritePropagation(state, root, options?.resolveImport);
|
|
519
545
|
commitParseState(state, rt);
|
|
520
546
|
// Count __error nodes for partial compilation support
|
|
521
547
|
const errorCount = countErrorNodes(root);
|
package/dist/parser-core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-core.js","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAGvF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAgB5C,SAAS,kBAAkB,CAAC,OAAe;IACzC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEzC,IAAI,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,OAAO;YAAE,SAAS;QAEtB,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,SAAS,EAAE,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAChD,SAAS,EAAE,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,SAAS,GAAG,CAAC;YAAE,SAAS;QAE5B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACjC,UAAU,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,IAAI,UAAU,GAAG,CAAC;YAAE,SAAS;QAE7B,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC;QAC9D,IAAI,EAAE,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/C,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,4EAA4E;AAE5E,kDAAkD;AAClD,SAAS,UAAU,CAAC,GAAU;IAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC;IAClE,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAC,KAAK,CAAC;IAC5C,OAAO,GAAG,CAAC,KAAK,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,SAAS,SAAS,CAChB,KAAiB,EACjB,CAAc,EACd,KAA8B,EAC9B,OAAgB,EAChB,GAAY;IAEZ,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE;QAAE,OAAO,KAAK,CAAC;IAClC,CAAC,CAAC,MAAM,EAAE,CAAC;IACX,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAG,CAAC;IACzB,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa;IACvC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI;IACd,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACjB,cAAc,CACZ,KAAK,EACL,gBAAgB,EAChB,SAAS,EACT,uBAAuB,GAAG,aAAa,OAAO,IAAI,CAAC,EAAE,EACrD,OAAO,IAAI,CAAC,EACZ,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,EACvB;YACE,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM;SAC7C,CACF,CAAC;IACJ,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACxB,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QAC5C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,EAAG,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8DAA8D;IAC9D,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAG,CAAC;QACrB,IAAI,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,UAAU;YAAE,MAAM;QACrF,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC;QAClB,CAAC,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAE5E,SAAS,SAAS,CAChB,KAAiB,EACjB,GAAW,EACX,OAAe,EACf,UAAuB,cAAc;IAErC,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAEnC,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,CAAC;IAEvB,IAAI,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,2BAA2B,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE;YACnG,MAAM,EAAE,MAAM,GAAG,CAAC;SACnB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC;IAC5C,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3D,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC;YAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,OAAO,CAAC;QACzE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,MAAM,CAAC;QACnC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC;IACxC,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAElC,oDAAoD;IACpD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC;QACnE,IAAI,UAAU,EAAE,CAAC;YACf,cAAc,CACZ,KAAK,EACL,cAAc,EACd,OAAO,EACP,gBAAgB,OAAO,iDAAiD,EACxE,OAAO,EACP,GAAG,GAAG,UAAU,CAAC,GAAG,EACpB;gBACE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM;aAC7B,CACF,CAAC;QACJ,CAAC;QACD,4FAA4F;QAC5F,OAAO;YACL,MAAM;YACN,SAAS,EAAE,OAAO,CAAC,MAAM;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE;gBACL,OAAO,EAAE,gBAAgB,OAAO,wBAAwB;gBACxD,GAAG,EAAE,OAAO;gBACZ,IAAI,EAAE,cAAc;aACrB;YACD,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,SAAS,EAAE,EAAE;YACb,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE;SAC5E,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,SAAS,CAAC;IACvB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/G,cAAc,CACZ,KAAK,EACL,mBAAmB,EACnB,SAAS,EACT,sBAAsB,IAAI,aAAa,OAAO,EAAE,EAChD,OAAO,EACP,GAAG,EACH;YACE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM;SAC1B,CACF,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,MAAM,YAAY,GAA2C,EAAE,CAAC;IAChE,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,uEAAuE;IACvE,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QACjB,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;YAChC,KAAK,MAAM,OAAO,IAAI,YAAY,CAAC,cAAc,EAAE,CAAC;gBAClD,MAAM,GAAG,GAAG,CAAC,CAAC,eAAe,EAAE,CAAC;gBAChC,IAAI,GAAG;oBAAE,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;YACtC,CAAC;QACH,CAAC;QACD,IAAI,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC1B,CAAC,CAAC,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC;gBACpB,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACxB,IAAI,EAAE;oBAAE,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC5C,CAAC;QACH,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,OAAO,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,OAAO;QAAE,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAExC,sEAAsE;IACtE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACjB,CAAC,CAAC,MAAM,EAAE,CAAC;QACX,IAAI,CAAC,CAAC,IAAI,EAAE;YAAE,MAAM;QAEpB,MAAM,GAAG,GAAG,CAAC,CAAC,IAAI,EAAG,CAAC;QAEtB,cAAc;QACd,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YACzB,eAAe,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;YACjD,CAAC,CAAC,IAAI,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,YAAY;QACZ,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC5B,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC,CAAC,IAAI,EAAE,CAAC;YACT,SAAS;QACX,CAAC;QAED,+CAA+C;QAC/C,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC;YAAE,SAAS;QAEvD,oCAAoC;QACpC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAG,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACjC,cAAc,CACZ,KAAK,EACL,kBAAkB,EAClB,SAAS,EACT,qBAAqB,OAAO,CAAC,KAAK,aAAa,OAAO,IAAI,MAAM,EAAE,EAClE,OAAO,EACP,MAAM,EACN;YACE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM;SACtC,CACF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,MAAM;QACN,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,IAAI;QACJ,KAAK;QACL,MAAM;QACN,YAAY;QACZ,SAAS;QACT,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE;KAC5E,CAAC;AACJ,CAAC;AAED,4EAA4E;AAE5E,SAAS,cAAc,CAAC,MAAc;IACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAE1E,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,QAAQ,GAAG,CAAC,CAAC;IAEjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,OAAO,GAAG,CAAC,OAAO,CAAC;YACnB,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,QAAQ,EAAE,CAAC;YACX,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,IAAI,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,EAAE,CAAC;QACV,CAAC;aAAM,IAAI,EAAE,KAAK,GAAG,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,IAAI,EAAE;gBAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrE,OAAO,GAAG,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,EAAE;QAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAErE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,4EAA4E;AAE5E,SAAS,aAAa,CAAC,CAAS,EAAE,IAA2B;IAC3D,IAAI,OAAO,GAAG,IAAI,EAAE,OAAO,IAAI,KAAK,CAAC;IACrC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtB,MAAM,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAErC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;gBAChB,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG;gBAAE,OAAO,GAAG,KAAK,CAAC;YAChC,SAAS;QACX,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,SAAS,EAAE,CAAC;gBACZ,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;gBAC/B,SAAS,EAAE,CAAC;gBACZ,CAAC,EAAE,CAAC;YACN,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YACnB,IAAI,EAAE,KAAK,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,CAAC,EAAE,CAAC;gBACJ,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,YAAY,GAAG,CAAC,YAAY,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,IAAI,YAAY;gBAAE,SAAS;YAC3B,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;gBACf,UAAU,EAAE,CAAC;YACf,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,IAAI,CAAC;QAClE,IAAI,EAAE,KAAK,GAAG,IAAI,YAAY;YAAE,MAAM;QACtC,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,YAAY;YAAE,MAAM;QAEtD,IAAI,EAAE,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YAC/B,SAAS,EAAE,CAAC;YACZ,CAAC,EAAE,CAAC;YACJ,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;YACb,YAAY,GAAG,KAAK,CAAC;YACrB,SAAS;QACX,CAAC;QACD,IAAI,EAAE,KAAK,GAAG;YAAE,OAAO,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC;AACrB,CAAC;AAED,uFAAuF;AACvF,SAAS,UAAU,CAAC,KAAiB,EAAE,MAAc,EAAE,UAAuB,cAAc;IAC1F,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QAErC,+BAA+B;QAC/B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QAElE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC;QACzG,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,MAAM,SAAS,GAAa,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,GAAG,aAAa,MAAM,CAAC;YACzC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,MAAM,GAAG,KAAK,CAAC;YACnB,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,GAAG,IAAI,CAAC;gBACd,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,CAAC,EAAE,CAAC;gBACJ,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzB,CAAC,EAAE,CAAC;gBACN,CAAC;gBACD,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACrB,MAAM,GAAG,IAAI,CAAC;oBACd,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBAC3B,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC1C,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;wBACjB,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;wBACnD,IAAI,MAAM;4BAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,cAAc,CACZ,KAAK,EACL,kBAAkB,EAClB,OAAO,EACP,6BAA6B,aAAa,iBAAiB,SAAS,EAAE,EACtE,SAAS,EACT,MAAM,GAAG,CAAC,EACV;oBACE,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM;oBACrC,UAAU,EAAE,cAAc,aAAa,gEAAgE;iBACxG,CACF,CAAC;YACJ,CAAC;YACD,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM;gBACN,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM;gBACpD,IAAI,EAAE,aAAa;gBACnB,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,EAAE;gBAC/D,MAAM,EAAE,EAAE;gBACV,YAAY,EAAE,EAAE;gBAChB,SAAS,EAAE,EAAE;gBACb,GAAG,EAAE;oBACH,IAAI,EAAE,SAAS;oBACf,GAAG,EAAE,MAAM,GAAG,CAAC;oBACf,OAAO,EAAE,SAAS;oBAClB,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM;iBAC/D;aACF,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;QACxB,MAAM,WAAW,GAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,2EAA2E;QAC3E,kEAAkE;QAClE,yEAAyE;QACzE,0EAA0E;QAC1E,sEAAsE;QACtE,OAAO,SAAS,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7C,IAAI,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM;YACvE,IAAI,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAAE,MAAM;YAC5F,CAAC,EAAE,CAAC;YACJ,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3B,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElF,MAAM,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,qEAAqE;IAC9F,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,4EAA4E;AAE5E,2DAA2D;AAC3D,SAAS,MAAM,CAAC,CAAa;IAC3B,MAAM,IAAI,GAAW;QACnB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,GAAG,EAAE,CAAC,CAAC,GAAG;QACV,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE;QACrB,QAAQ,EAAE,EAAE;KACb,CAAC;IACF,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,KAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACpE,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,KAAM,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY,CAAC;IACtF,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,IAAI,CAAC,KAAM,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,+DAA+D;AAC/D,SAAS,SAAS,CAAC,KAAiB,EAAE,MAAoB,EAAE,IAAY,EAAE,UAAkB;IAC1F,MAAM,KAAK,GAAuC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IAElD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACpF,cAAc,CACZ,KAAK,EACL,aAAa,EACb,SAAS,EACT,iCAAiC,CAAC,CAAC,MAAM,YAAY,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,EACjE,CAAC,CAAC,GAAG,CAAC,IAAI,EACV,CAAC,CAAC,GAAG,CAAC,GAAG,EACT;gBACE,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM;aAClC,CACF,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;YACtE,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,CAAC;QAED,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAG,EAAE,CAAC;QAC3C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC1D,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;YAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;QAC9D,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;IACpD,CAAC;AACH,CAAC;AAED,4EAA4E;AAE5E,2FAA2F;AAC3F,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,UAAmB,EAAE,OAAqB;IACtF,MAAM,EAAE,GAAG,OAAO,IAAI,cAAc,CAAC;IACrC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;IACjC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAE7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YACzB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,0BAA0B,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACnG,CAAC;QACD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjG,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,IAAY,CAAC;IACjB,IAAI,UAAU,EAAE,CAAC;QACf,IAAI,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACpE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe,CAAC,IAAI,CAAC,CAAC;IACtB,gBAAgB,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAE5B,sDAAsD;IACtD,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,WAAW,EAAE,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;QACnC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,SAAS,eAAe,CAAC,IAAY;IACnC,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"parser-core.js","sourceRoot":"","sources":["../src/parser-core.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,14 @@ const DIAGNOSTIC_SUGGESTIONS = {
|
|
|
11
11
|
INDENT_JUMP: 'Align this line with an existing indentation level so the parent-child structure is unambiguous.',
|
|
12
12
|
DUPLICATE_PROP: 'Remove the duplicate property or merge the values into a single prop assignment.',
|
|
13
13
|
DROPPED_LINE: 'Rewrite this line so it starts with a valid KERN node type and move stray symbols into props.',
|
|
14
|
+
INVALID_BIGINT: 'Remove the `n` suffix or drop the fractional part — BigInt literals must be whole integers.',
|
|
15
|
+
INVALID_EXPRESSION: 'The value could not be parsed as a KERN expression. Wrap it in `{{ ... }}` if it uses syntax not yet natively supported.',
|
|
16
|
+
INVALID_EFFECTS: 'See docs/language/effects-pure-spec.md for the full forbidden list and incompatible-prop rules.',
|
|
17
|
+
INVALID_UNION_KIND: 'Use `kind=result`, `kind=option`, or omit `kind` for a regular discriminated union.',
|
|
18
|
+
KIND_SHAPE_VIOLATION: 'A `kind=result` union must declare exactly two variants named `ok` and `err`; `kind=option` must declare exactly two variants named `some` and `none`.',
|
|
19
|
+
INVALID_PROPAGATION: 'Postfix `?` requires a call to a Result/Option-returning function and a containing fn whose return type is Result<T, E> or Option<T>. Use explicit `match` or a helper to bridge mixed types.',
|
|
20
|
+
NESTED_PROPAGATION: 'Chained `??` is not supported — bind the intermediate value to a `let`/`const` and propagate each step explicitly.',
|
|
21
|
+
UNSAFE_UNWRAP_IN_RESULT_FN: 'A function returning Result/Option is using `!` (panic) instead of `?` (propagate). Switch to `?` to keep the rich error shape.',
|
|
14
22
|
};
|
|
15
23
|
export function createParseState() {
|
|
16
24
|
return { diagnostics: [] };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser-diagnostics.js","sourceRoot":"","sources":["../src/parser-diagnostics.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAYhE,MAAM,sBAAsB,GAAmC;IAC7D,aAAa,EAAE,oFAAoF;IACnG,cAAc,EAAE,gFAAgF;IAChG,eAAe,EAAE,gFAAgF;IACjG,gBAAgB,EAAE,2EAA2E;IAC7F,cAAc,EAAE,sEAAsE;IACtF,cAAc,EAAE,6EAA6E;IAC7F,iBAAiB,EAAE,sFAAsF;IACzG,WAAW,EAAE,kGAAkG;IAC/G,cAAc,EAAE,kFAAkF;IAClG,YAAY,EAAE,+FAA+F;
|
|
1
|
+
{"version":3,"file":"parser-diagnostics.js","sourceRoot":"","sources":["../src/parser-diagnostics.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAEhF,OAAO,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AAYhE,MAAM,sBAAsB,GAAmC;IAC7D,aAAa,EAAE,oFAAoF;IACnG,cAAc,EAAE,gFAAgF;IAChG,eAAe,EAAE,gFAAgF;IACjG,gBAAgB,EAAE,2EAA2E;IAC7F,cAAc,EAAE,sEAAsE;IACtF,cAAc,EAAE,6EAA6E;IAC7F,iBAAiB,EAAE,sFAAsF;IACzG,WAAW,EAAE,kGAAkG;IAC/G,cAAc,EAAE,kFAAkF;IAClG,YAAY,EAAE,+FAA+F;IAC7G,cAAc,EAAE,6FAA6F;IAC7G,kBAAkB,EAChB,0HAA0H;IAC5H,eAAe,EAAE,iGAAiG;IAClH,kBAAkB,EAAE,qFAAqF;IACzG,oBAAoB,EAClB,wJAAwJ;IAC1J,mBAAmB,EACjB,+LAA+L;IACjM,kBAAkB,EAChB,oHAAoH;IACtH,0BAA0B,EACxB,iIAAiI;CACpI,CAAC;AAEF,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAiB,EAAE,UAAuB,cAAc;IACvF,OAAO,CAAC,oBAAoB,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,KAAiB,EACjB,IAAoB,EACpB,QAAqC,EACrC,OAAe,EACf,IAAY,EACZ,GAAW,EACX,UAAiC,EAAE;IAEnC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;QACrB,IAAI;QACJ,QAAQ;QACR,OAAO;QACP,IAAI;QACJ,GAAG;QACH,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,CAAC;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,sBAAsB,CAAC,IAAI,CAAC;KAC/D,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Expression-mode tokenizer + recursive-descent parser producing ValueIR.
|
|
2
|
+
* Supports: identifiers, literals (number/string/true/false/null/undefined/none),
|
|
3
|
+
* member access (. and ?.), call (() and ?.()), spread (...), logical ?? || &&,
|
|
4
|
+
* parenthesized grouping, template literals with ${...} interpolation,
|
|
5
|
+
* `await` prefix, propagation `?` postfix on call/await-call.
|
|
6
|
+
*
|
|
7
|
+
* `none` is a KERN-side alias for `null` — both produce nullLit. Per native-handler
|
|
8
|
+
* spec, `none` is the canonical empty-value form in `lang=kern` bodies; `null` is
|
|
9
|
+
* retained for legacy/round-trip compatibility.
|
|
10
|
+
*
|
|
11
|
+
* Intentionally NOT yet supported: arithmetic, comparisons, ternary, indexing,
|
|
12
|
+
* bitwise, assignment. Those land in a later slice. */
|
|
13
|
+
import type { ValueIR } from './value-ir.js';
|
|
14
|
+
export type ExprTokenKind = 'ident' | 'num' | 'str' | 'tmplStart' | 'dot' | 'optDot' | 'nullish' | 'or' | 'and' | 'lparen' | 'rparen' | 'lbrace' | 'rbrace' | 'lbracket' | 'rbracket' | 'colon' | 'comma' | 'spread' | 'qmark' | 'eq' | 'neq' | 'strictEq' | 'strictNeq' | 'bang' | 'lt' | 'lte' | 'gt' | 'gte' | 'plus' | 'minus' | 'star' | 'slash' | 'percent' | 'kwNull' | 'kwUndef' | 'kwTrue' | 'kwFalse' | 'kwAwait' | 'kwNew' | 'eof';
|
|
15
|
+
export interface ExprToken {
|
|
16
|
+
kind: ExprTokenKind;
|
|
17
|
+
value: string;
|
|
18
|
+
pos: number;
|
|
19
|
+
}
|
|
20
|
+
/** Tokenize an expression source. Stops at end of input. */
|
|
21
|
+
export declare function tokenizeExpression(input: string): ExprToken[];
|
|
22
|
+
export declare function parseExpression(input: string): ValueIR;
|