@kernlang/core 3.1.5 → 3.1.6
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/LICENSE +17 -0
- package/README.md +5 -2
- package/dist/codegen/data-layer.d.ts +12 -0
- package/dist/codegen/data-layer.js +292 -0
- package/dist/codegen/data-layer.js.map +1 -0
- package/dist/codegen/events.d.ts +9 -0
- package/dist/codegen/events.js +158 -0
- package/dist/codegen/events.js.map +1 -0
- package/dist/codegen/functions.d.ts +8 -0
- package/dist/codegen/functions.js +147 -0
- package/dist/codegen/functions.js.map +1 -0
- package/dist/codegen/ground-layer.d.ts +22 -0
- package/dist/codegen/ground-layer.js +317 -0
- package/dist/codegen/ground-layer.js.map +1 -0
- package/dist/codegen/machines.d.ts +9 -0
- package/dist/codegen/machines.js +127 -0
- package/dist/codegen/machines.js.map +1 -0
- package/dist/codegen/modules.d.ts +10 -0
- package/dist/codegen/modules.js +40 -0
- package/dist/codegen/modules.js.map +1 -0
- package/dist/codegen/semantic-types.d.ts +14 -0
- package/dist/codegen/semantic-types.js +31 -0
- package/dist/codegen/semantic-types.js.map +1 -0
- package/dist/codegen/test-gen.d.ts +7 -0
- package/dist/codegen/test-gen.js +56 -0
- package/dist/codegen/test-gen.js.map +1 -0
- package/dist/codegen/type-system.d.ts +11 -0
- package/dist/codegen/type-system.js +162 -0
- package/dist/codegen/type-system.js.map +1 -0
- package/dist/codegen-core.d.ts +26 -33
- package/dist/codegen-core.js +58 -1367
- package/dist/codegen-core.js.map +1 -1
- package/dist/config.d.ts +20 -1
- package/dist/config.js +23 -3
- package/dist/config.js.map +1 -1
- package/dist/coverage-gap.js +6 -2
- package/dist/coverage-gap.js.map +1 -1
- package/dist/decompiler.d.ts +9 -0
- package/dist/decompiler.js +17 -2
- package/dist/decompiler.js.map +1 -1
- package/dist/errors.d.ts +5 -0
- package/dist/errors.js +10 -0
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +11 -4
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/node-props.d.ts +253 -0
- package/dist/node-props.js +35 -0
- package/dist/node-props.js.map +1 -0
- package/dist/parser-core.d.ts +5 -0
- package/dist/parser-core.js +363 -0
- package/dist/parser-core.js.map +1 -0
- package/dist/parser-diagnostics.d.ts +14 -0
- package/dist/parser-diagnostics.js +31 -0
- package/dist/parser-diagnostics.js.map +1 -0
- package/dist/parser-keywords.d.ts +5 -0
- package/dist/parser-keywords.js +135 -0
- package/dist/parser-keywords.js.map +1 -0
- package/dist/parser-style.d.ts +3 -0
- package/dist/parser-style.js +73 -0
- package/dist/parser-style.js.map +1 -0
- package/dist/parser-token-stream.d.ts +27 -0
- package/dist/parser-token-stream.js +69 -0
- package/dist/parser-token-stream.js.map +1 -0
- package/dist/parser-tokenizer.d.ts +11 -0
- package/dist/parser-tokenizer.js +188 -0
- package/dist/parser-tokenizer.js.map +1 -0
- package/dist/parser.d.ts +59 -12
- package/dist/parser.js +51 -862
- package/dist/parser.js.map +1 -1
- package/dist/schema.d.ts +7 -2
- package/dist/schema.js +7 -2
- package/dist/schema.js.map +1 -1
- package/dist/source-map.d.ts +27 -0
- package/dist/source-map.js +82 -0
- package/dist/source-map.js.map +1 -0
- package/dist/spec.d.ts +1 -1
- package/dist/spec.js +2 -0
- package/dist/spec.js.map +1 -1
- package/dist/styles-tailwind.d.ts +10 -0
- package/dist/styles-tailwind.js +10 -0
- package/dist/styles-tailwind.js.map +1 -1
- package/dist/template-engine.d.ts +10 -5
- package/dist/template-engine.js +10 -5
- package/dist/template-engine.js.map +1 -1
- package/dist/types.d.ts +8 -3
- package/dist/utils.d.ts +20 -0
- package/dist/utils.js +20 -0
- package/dist/utils.js.map +1 -1
- package/dist/walk.d.ts +40 -0
- package/dist/walk.js +107 -0
- package/dist/walk.js.map +1 -0
- package/package.json +2 -2
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/walk.d.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree walker for IRNode — ESLint-style type-keyed visitors with flow control.
|
|
3
|
+
*/
|
|
4
|
+
import type { IRNode } from './types.js';
|
|
5
|
+
export interface WalkContext {
|
|
6
|
+
/** Skip visiting children of the current node */
|
|
7
|
+
skip(): void;
|
|
8
|
+
/** Stop the entire traversal */
|
|
9
|
+
stop(): void;
|
|
10
|
+
/** The parent node, if any */
|
|
11
|
+
parent: IRNode | undefined;
|
|
12
|
+
/** Depth from root (0 = root) */
|
|
13
|
+
depth: number;
|
|
14
|
+
}
|
|
15
|
+
/** Visitor callback function */
|
|
16
|
+
export type VisitorFn = (node: IRNode, ctx: WalkContext) => void;
|
|
17
|
+
/** A visitor can be a function (enter only) or { enter?, leave? } */
|
|
18
|
+
export type Visitor = VisitorFn | {
|
|
19
|
+
enter?: VisitorFn;
|
|
20
|
+
leave?: VisitorFn;
|
|
21
|
+
};
|
|
22
|
+
/** Visitor map keyed by node type, plus optional '*' wildcard */
|
|
23
|
+
export type VisitorMap = Record<string, Visitor>;
|
|
24
|
+
/**
|
|
25
|
+
* Walk an IR tree depth-first, calling visitors for matching node types.
|
|
26
|
+
* Supports type-keyed visitors and a '*' wildcard.
|
|
27
|
+
*/
|
|
28
|
+
export declare function walkIR(root: IRNode, visitors: VisitorMap): void;
|
|
29
|
+
/**
|
|
30
|
+
* Find the deepest IR node whose source location contains the given position.
|
|
31
|
+
*
|
|
32
|
+
* Essential for LSP hover, completion, and go-to-definition.
|
|
33
|
+
* Requires nodes to have `loc` with `endLine`/`endCol` for accurate results.
|
|
34
|
+
*
|
|
35
|
+
* @param root - The root IR node to search
|
|
36
|
+
* @param line - 1-based line number
|
|
37
|
+
* @param col - 1-based column number
|
|
38
|
+
* @returns The deepest matching node, or `undefined` if no node spans the position
|
|
39
|
+
*/
|
|
40
|
+
export declare function getNodeAtPosition(root: IRNode, line: number, col: number): IRNode | undefined;
|
package/dist/walk.js
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tree walker for IRNode — ESLint-style type-keyed visitors with flow control.
|
|
3
|
+
*/
|
|
4
|
+
// ── Helpers ──────────────────────────────────────────────────────────────
|
|
5
|
+
function getEnter(v) {
|
|
6
|
+
if (!v)
|
|
7
|
+
return undefined;
|
|
8
|
+
return typeof v === 'function' ? v : v.enter;
|
|
9
|
+
}
|
|
10
|
+
function getLeave(v) {
|
|
11
|
+
if (!v)
|
|
12
|
+
return undefined;
|
|
13
|
+
return typeof v === 'function' ? undefined : v.leave;
|
|
14
|
+
}
|
|
15
|
+
// ── Walk ─────────────────────────────────────────────────────────────────
|
|
16
|
+
/**
|
|
17
|
+
* Walk an IR tree depth-first, calling visitors for matching node types.
|
|
18
|
+
* Supports type-keyed visitors and a '*' wildcard.
|
|
19
|
+
*/
|
|
20
|
+
export function walkIR(root, visitors) {
|
|
21
|
+
let stopped = false;
|
|
22
|
+
function visit(node, parent, depth) {
|
|
23
|
+
if (stopped)
|
|
24
|
+
return;
|
|
25
|
+
let skipped = false;
|
|
26
|
+
const ctx = {
|
|
27
|
+
skip() { skipped = true; },
|
|
28
|
+
stop() { stopped = true; },
|
|
29
|
+
parent,
|
|
30
|
+
depth,
|
|
31
|
+
};
|
|
32
|
+
// ── Enter: type-specific first, then wildcard ──
|
|
33
|
+
const typeVisitor = visitors[node.type];
|
|
34
|
+
const wildcard = visitors['*'];
|
|
35
|
+
const typeEnter = getEnter(typeVisitor);
|
|
36
|
+
if (typeEnter) {
|
|
37
|
+
typeEnter(node, ctx);
|
|
38
|
+
if (stopped)
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
const wildcardEnter = getEnter(wildcard);
|
|
42
|
+
if (wildcardEnter) {
|
|
43
|
+
wildcardEnter(node, ctx);
|
|
44
|
+
if (stopped)
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
// ── Recurse into children (unless skipped) ──
|
|
48
|
+
if (!skipped && node.children) {
|
|
49
|
+
for (const child of node.children) {
|
|
50
|
+
visit(child, node, depth + 1);
|
|
51
|
+
if (stopped)
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// ── Leave: type-specific first, then wildcard ──
|
|
56
|
+
const typeLeave = getLeave(typeVisitor);
|
|
57
|
+
if (typeLeave) {
|
|
58
|
+
typeLeave(node, ctx);
|
|
59
|
+
if (stopped)
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
const wildcardLeave = getLeave(wildcard);
|
|
63
|
+
if (wildcardLeave) {
|
|
64
|
+
wildcardLeave(node, ctx);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
visit(root, undefined, 0);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Find the deepest IR node whose source location contains the given position.
|
|
71
|
+
*
|
|
72
|
+
* Essential for LSP hover, completion, and go-to-definition.
|
|
73
|
+
* Requires nodes to have `loc` with `endLine`/`endCol` for accurate results.
|
|
74
|
+
*
|
|
75
|
+
* @param root - The root IR node to search
|
|
76
|
+
* @param line - 1-based line number
|
|
77
|
+
* @param col - 1-based column number
|
|
78
|
+
* @returns The deepest matching node, or `undefined` if no node spans the position
|
|
79
|
+
*/
|
|
80
|
+
export function getNodeAtPosition(root, line, col) {
|
|
81
|
+
let best;
|
|
82
|
+
walkIR(root, {
|
|
83
|
+
'*': (node, ctx) => {
|
|
84
|
+
const loc = node.loc;
|
|
85
|
+
if (!loc)
|
|
86
|
+
return;
|
|
87
|
+
const startLine = loc.line;
|
|
88
|
+
const startCol = loc.col;
|
|
89
|
+
const endLine = loc.endLine ?? startLine;
|
|
90
|
+
const endCol = loc.endCol ?? startCol;
|
|
91
|
+
// Check if position falls within this node's span
|
|
92
|
+
const afterStart = line > startLine || (line === startLine && col >= startCol);
|
|
93
|
+
const beforeEnd = line < endLine || (line === endLine && col <= endCol);
|
|
94
|
+
if (afterStart && beforeEnd) {
|
|
95
|
+
// Deeper nodes overwrite shallower — walkIR visits pre-order,
|
|
96
|
+
// so children that match will be assigned after their parent
|
|
97
|
+
best = node;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
// Position is outside this node — skip all children
|
|
101
|
+
ctx.skip();
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
});
|
|
105
|
+
return best;
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=walk.js.map
|
package/dist/walk.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"walk.js","sourceRoot":"","sources":["../src/walk.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernlang/core",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.6",
|
|
4
4
|
"description": "Kern core — parser, types, spec, config, style engines, codegen",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -52,6 +52,6 @@
|
|
|
52
52
|
"dependencies": {},
|
|
53
53
|
"scripts": {
|
|
54
54
|
"build": "tsc -b",
|
|
55
|
-
"test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --
|
|
55
|
+
"test": "node --experimental-vm-modules ../../node_modules/jest/bin/jest.js --config jest.config.js"
|
|
56
56
|
}
|
|
57
57
|
}
|