@cosense-toolbox/parser 0.1.0-beta.0 → 0.1.0-beta.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/README.md +61 -751
- package/dist/compile.cjs +4 -3
- package/dist/compile.cjs.map +1 -1
- package/dist/compile.d.cts +24 -5
- package/dist/compile.d.cts.map +1 -1
- package/dist/compile.d.mts +24 -5
- package/dist/compile.d.mts.map +1 -1
- package/dist/compile.mjs +4 -3
- package/dist/compile.mjs.map +1 -1
- package/dist/decoration-DODaJKeA.cjs +103 -0
- package/dist/decoration-DODaJKeA.cjs.map +1 -0
- package/dist/decoration-Dq_5e20j.mjs +68 -0
- package/dist/decoration-Dq_5e20j.mjs.map +1 -0
- package/dist/extensions.cjs +14 -0
- package/dist/extensions.cjs.map +1 -0
- package/dist/extensions.d.cts +13 -0
- package/dist/extensions.d.cts.map +1 -0
- package/dist/extensions.d.mts +13 -0
- package/dist/extensions.d.mts.map +1 -0
- package/dist/extensions.mjs +13 -0
- package/dist/extensions.mjs.map +1 -0
- package/dist/index.cjs +16 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +8 -60
- package/dist/index.mjs.map +1 -1
- package/dist/schema.cjs +1 -0
- package/dist/schema.cjs.map +1 -1
- package/dist/schema.d.cts +1 -1
- package/dist/schema.d.cts.map +1 -1
- package/dist/schema.d.mts +1 -1
- package/dist/schema.d.mts.map +1 -1
- package/dist/schema.mjs +1 -0
- package/dist/schema.mjs.map +1 -1
- package/dist/{types-BXlnUFr0.d.mts → types-9vAAFHka.d.mts} +2 -2
- package/dist/{types-BXlnUFr0.d.mts.map → types-9vAAFHka.d.mts.map} +1 -1
- package/dist/{types-DVwlUtla.d.cts → types-CiwPj2R8.d.cts} +2 -2
- package/dist/{types-DVwlUtla.d.cts.map → types-CiwPj2R8.d.cts.map} +1 -1
- package/dist/{types-Bo_BrmvK.d.cts → types-DmfFumcw.d.cts} +4 -2
- package/dist/types-DmfFumcw.d.cts.map +1 -0
- package/dist/{types-Bo_BrmvK.d.mts → types-DmfFumcw.d.mts} +4 -2
- package/dist/types-DmfFumcw.d.mts.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.d.cts +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils.mjs +1 -1
- package/dist/utils.mjs.map +1 -1
- package/package.json +8 -8
- package/dist/create-compiler-CvlndKOA.d.cts +0 -23
- package/dist/create-compiler-CvlndKOA.d.cts.map +0 -1
- package/dist/create-compiler-jdA408ny.d.mts +0 -23
- package/dist/create-compiler-jdA408ny.d.mts.map +0 -1
- package/dist/plugin.cjs +0 -0
- package/dist/plugin.d.cts +0 -4
- package/dist/plugin.d.mts +0 -4
- package/dist/plugin.mjs +0 -1
- package/dist/types-Bo_BrmvK.d.cts.map +0 -1
- package/dist/types-Bo_BrmvK.d.mts.map +0 -1
package/dist/utils.cjs
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
const require_ast = require("./ast-uYWtkHwT.cjs");
|
|
3
3
|
//#region src/utils/visit.ts
|
|
4
4
|
/**
|
|
5
|
-
* visit.ts —
|
|
5
|
+
* visit.ts — AST を深さ優先で走査する。外部依存を増やさないための自前実装。
|
|
6
6
|
*/
|
|
7
7
|
function visit(tree, typesOrVisitor, maybeVisitor) {
|
|
8
8
|
const visitor = maybeVisitor ?? typesOrVisitor;
|
package/dist/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.cjs","names":["childrenOf"],"sources":["../src/utils/visit.ts","../src/utils/links.ts"],"sourcesContent":["/**\n * visit.ts —
|
|
1
|
+
{"version":3,"file":"utils.cjs","names":["childrenOf"],"sources":["../src/utils/visit.ts","../src/utils/links.ts"],"sourcesContent":["/**\n * visit.ts — AST を深さ優先で走査する。外部依存を増やさないための自前実装。\n */\nimport { childrenOf } from '../ast'\nimport type { AnyNode, AnyNodeType, NodeOfType } from '../types'\n\n/**\n * visitor の戻り値。\n * - 何も返さない — そのまま子へ進む\n * - `'skip'` — このノードの子を辿らない\n * - `'exit'` — 走査全体を打ち切る\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: undefined だと値を返さない visitor を渡せない\nexport type VisitResult = void | 'skip' | 'exit'\n\nexport type Visitor<T extends AnyNode> = (node: T, ancestors: readonly AnyNode[]) => VisitResult\n\n/** 木を深さ優先で辿る。`types` を渡すとその型のノードだけが visitor に届く。 */\nexport function visit(tree: AnyNode, visitor: Visitor<AnyNode>): void\nexport function visit<K extends AnyNodeType>(\n tree: AnyNode,\n types: K | readonly K[],\n visitor: Visitor<NodeOfType<K>>,\n): void\nexport function visit(\n tree: AnyNode,\n typesOrVisitor: AnyNodeType | readonly AnyNodeType[] | Visitor<AnyNode>,\n maybeVisitor?: Visitor<AnyNode>,\n): void {\n const visitor = maybeVisitor ?? (typesOrVisitor as Visitor<AnyNode>)\n const types =\n maybeVisitor === undefined\n ? undefined\n : new Set(\n typeof typesOrVisitor === 'string'\n ? [typesOrVisitor]\n : (typesOrVisitor as readonly AnyNodeType[]),\n )\n\n const walk = (node: AnyNode, ancestors: readonly AnyNode[]): VisitResult => {\n if (types === undefined || types.has(node.type)) {\n const result = visitor(node, ancestors)\n if (result === 'exit') return 'exit'\n if (result === 'skip') return undefined\n }\n const nextAncestors = [...ancestors, node]\n for (const child of childrenOf(node)) {\n if (walk(child, nextAncestors) === 'exit') return 'exit'\n }\n return undefined\n }\n\n walk(tree, [])\n}\n\n/** その型の最初のノードを返す。無ければ null。 */\nexport function find<K extends AnyNodeType>(tree: AnyNode, type: K): NodeOfType<K> | null {\n let found: NodeOfType<K> | null = null\n visit(tree, type, (node) => {\n found = node\n return 'exit'\n })\n return found\n}\n\n/** その型のノードを出現順にすべて集める。 */\nexport function collect<K extends AnyNodeType>(tree: AnyNode, type: K): NodeOfType<K>[] {\n const out: NodeOfType<K>[] = []\n visit(tree, type, (node) => {\n out.push(node)\n })\n return out\n}\n","/**\n * links.ts — AST からリンクと画像を抜き出す。\n */\nimport type { AnyNode, ImageNode, ProjectLink } from '../types'\nimport { collect, visit } from './visit'\n\nexport interface CollectLinksOptions {\n /** `[/project/title]` も含めるか (既定: false)。同一プロジェクト内の被リンクだけが要るなら false */\n readonly includeProjectLinks?: boolean\n}\n\n/**\n * 同じプロジェクト内のページを指すリンクを、出現順・重複なしで集める。\n * `[title]` と `#tag` は同じページを指すので同じ 1 件として扱う。\n */\nexport const collectLinks = (tree: AnyNode, options?: CollectLinksOptions): string[] => {\n const out: string[] = []\n const seen = new Set<string>()\n const add = (value: string) => {\n if (value === '' || seen.has(value)) return\n seen.add(value)\n out.push(value)\n }\n\n visit(tree, (node) => {\n if (node.type === 'internalLink') add(node.target)\n else if (node.type === 'hashtag') add(node.value)\n else if (node.type === 'projectLink' && options?.includeProjectLinks) add(node.target)\n })\n\n return out\n}\n\n/** ページが参照している外部プロジェクトのリンクを、出現順に集める。 */\nexport const collectProjectLinks = (tree: AnyNode): ProjectLink[] => collect(tree, 'projectLink')\n\n/** 最初に現れる画像ノード。無ければ null。 */\nexport const firstImage = (tree: AnyNode): ImageNode | null => {\n let found: ImageNode | null = null\n visit(tree, 'image', (node) => {\n found = node\n return 'exit'\n })\n return found\n}\n"],"mappings":";;;;;;AAwBA,SAAgB,MACd,MACA,gBACA,cACM;CACN,MAAM,UAAU,gBAAiB;CACjC,MAAM,QACJ,iBAAiB,KAAA,IACb,KAAA,IACA,IAAI,IACF,OAAO,mBAAmB,WACtB,CAAC,cAAc,IACd,cACP;CAEN,MAAM,QAAQ,MAAe,cAA+C;EAC1E,IAAI,UAAU,KAAA,KAAa,MAAM,IAAI,KAAK,IAAI,GAAG;GAC/C,MAAM,SAAS,QAAQ,MAAM,SAAS;GACtC,IAAI,WAAW,QAAQ,OAAO;GAC9B,IAAI,WAAW,QAAQ,OAAO,KAAA;EAChC;EACA,MAAM,gBAAgB,CAAC,GAAG,WAAW,IAAI;EACzC,KAAK,MAAM,SAASA,YAAAA,WAAW,IAAI,GACjC,IAAI,KAAK,OAAO,aAAa,MAAM,QAAQ,OAAO;CAGtD;CAEA,KAAK,MAAM,CAAC,CAAC;AACf;;AAGA,SAAgB,KAA4B,MAAe,MAA+B;CACxF,IAAI,QAA8B;CAClC,MAAM,MAAM,OAAO,SAAS;EAC1B,QAAQ;EACR,OAAO;CACT,CAAC;CACD,OAAO;AACT;;AAGA,SAAgB,QAA+B,MAAe,MAA0B;CACtF,MAAM,MAAuB,CAAC;CAC9B,MAAM,MAAM,OAAO,SAAS;EAC1B,IAAI,KAAK,IAAI;CACf,CAAC;CACD,OAAO;AACT;;;;;;;ACzDA,MAAa,gBAAgB,MAAe,YAA4C;CACtF,MAAM,MAAgB,CAAC;CACvB,MAAM,uBAAO,IAAI,IAAY;CAC7B,MAAM,OAAO,UAAkB;EAC7B,IAAI,UAAU,MAAM,KAAK,IAAI,KAAK,GAAG;EACrC,KAAK,IAAI,KAAK;EACd,IAAI,KAAK,KAAK;CAChB;CAEA,MAAM,OAAO,SAAS;EACpB,IAAI,KAAK,SAAS,gBAAgB,IAAI,KAAK,MAAM;OAC5C,IAAI,KAAK,SAAS,WAAW,IAAI,KAAK,KAAK;OAC3C,IAAI,KAAK,SAAS,iBAAiB,SAAS,qBAAqB,IAAI,KAAK,MAAM;CACvF,CAAC;CAED,OAAO;AACT;;AAGA,MAAa,uBAAuB,SAAiC,QAAQ,MAAM,aAAa;;AAGhG,MAAa,cAAc,SAAoC;CAC7D,IAAI,QAA0B;CAC9B,MAAM,MAAM,UAAU,SAAS;EAC7B,QAAQ;EACR,OAAO;CACT,CAAC;CACD,OAAO;AACT"}
|
package/dist/utils.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as NodeOfType, D as ProjectLink, m as ImageNode, r as AnyNodeType, t as AnyNode } from "./types-
|
|
1
|
+
import { C as NodeOfType, D as ProjectLink, m as ImageNode, r as AnyNodeType, t as AnyNode } from "./types-DmfFumcw.cjs";
|
|
2
2
|
//#region src/ast.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* ノードの子を返す。子を持たないノードでは空配列。
|
package/dist/utils.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { C as NodeOfType, D as ProjectLink, m as ImageNode, r as AnyNodeType, t as AnyNode } from "./types-
|
|
1
|
+
import { C as NodeOfType, D as ProjectLink, m as ImageNode, r as AnyNodeType, t as AnyNode } from "./types-DmfFumcw.mjs";
|
|
2
2
|
//#region src/ast.d.ts
|
|
3
3
|
/**
|
|
4
4
|
* ノードの子を返す。子を持たないノードでは空配列。
|
package/dist/utils.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as rawTextOf, t as childrenOf } from "./ast-CIKXwSl5.mjs";
|
|
2
2
|
//#region src/utils/visit.ts
|
|
3
3
|
/**
|
|
4
|
-
* visit.ts —
|
|
4
|
+
* visit.ts — AST を深さ優先で走査する。外部依存を増やさないための自前実装。
|
|
5
5
|
*/
|
|
6
6
|
function visit(tree, typesOrVisitor, maybeVisitor) {
|
|
7
7
|
const visitor = maybeVisitor ?? typesOrVisitor;
|
package/dist/utils.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils/visit.ts","../src/utils/links.ts"],"sourcesContent":["/**\n * visit.ts —
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":[],"sources":["../src/utils/visit.ts","../src/utils/links.ts"],"sourcesContent":["/**\n * visit.ts — AST を深さ優先で走査する。外部依存を増やさないための自前実装。\n */\nimport { childrenOf } from '../ast'\nimport type { AnyNode, AnyNodeType, NodeOfType } from '../types'\n\n/**\n * visitor の戻り値。\n * - 何も返さない — そのまま子へ進む\n * - `'skip'` — このノードの子を辿らない\n * - `'exit'` — 走査全体を打ち切る\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: undefined だと値を返さない visitor を渡せない\nexport type VisitResult = void | 'skip' | 'exit'\n\nexport type Visitor<T extends AnyNode> = (node: T, ancestors: readonly AnyNode[]) => VisitResult\n\n/** 木を深さ優先で辿る。`types` を渡すとその型のノードだけが visitor に届く。 */\nexport function visit(tree: AnyNode, visitor: Visitor<AnyNode>): void\nexport function visit<K extends AnyNodeType>(\n tree: AnyNode,\n types: K | readonly K[],\n visitor: Visitor<NodeOfType<K>>,\n): void\nexport function visit(\n tree: AnyNode,\n typesOrVisitor: AnyNodeType | readonly AnyNodeType[] | Visitor<AnyNode>,\n maybeVisitor?: Visitor<AnyNode>,\n): void {\n const visitor = maybeVisitor ?? (typesOrVisitor as Visitor<AnyNode>)\n const types =\n maybeVisitor === undefined\n ? undefined\n : new Set(\n typeof typesOrVisitor === 'string'\n ? [typesOrVisitor]\n : (typesOrVisitor as readonly AnyNodeType[]),\n )\n\n const walk = (node: AnyNode, ancestors: readonly AnyNode[]): VisitResult => {\n if (types === undefined || types.has(node.type)) {\n const result = visitor(node, ancestors)\n if (result === 'exit') return 'exit'\n if (result === 'skip') return undefined\n }\n const nextAncestors = [...ancestors, node]\n for (const child of childrenOf(node)) {\n if (walk(child, nextAncestors) === 'exit') return 'exit'\n }\n return undefined\n }\n\n walk(tree, [])\n}\n\n/** その型の最初のノードを返す。無ければ null。 */\nexport function find<K extends AnyNodeType>(tree: AnyNode, type: K): NodeOfType<K> | null {\n let found: NodeOfType<K> | null = null\n visit(tree, type, (node) => {\n found = node\n return 'exit'\n })\n return found\n}\n\n/** その型のノードを出現順にすべて集める。 */\nexport function collect<K extends AnyNodeType>(tree: AnyNode, type: K): NodeOfType<K>[] {\n const out: NodeOfType<K>[] = []\n visit(tree, type, (node) => {\n out.push(node)\n })\n return out\n}\n","/**\n * links.ts — AST からリンクと画像を抜き出す。\n */\nimport type { AnyNode, ImageNode, ProjectLink } from '../types'\nimport { collect, visit } from './visit'\n\nexport interface CollectLinksOptions {\n /** `[/project/title]` も含めるか (既定: false)。同一プロジェクト内の被リンクだけが要るなら false */\n readonly includeProjectLinks?: boolean\n}\n\n/**\n * 同じプロジェクト内のページを指すリンクを、出現順・重複なしで集める。\n * `[title]` と `#tag` は同じページを指すので同じ 1 件として扱う。\n */\nexport const collectLinks = (tree: AnyNode, options?: CollectLinksOptions): string[] => {\n const out: string[] = []\n const seen = new Set<string>()\n const add = (value: string) => {\n if (value === '' || seen.has(value)) return\n seen.add(value)\n out.push(value)\n }\n\n visit(tree, (node) => {\n if (node.type === 'internalLink') add(node.target)\n else if (node.type === 'hashtag') add(node.value)\n else if (node.type === 'projectLink' && options?.includeProjectLinks) add(node.target)\n })\n\n return out\n}\n\n/** ページが参照している外部プロジェクトのリンクを、出現順に集める。 */\nexport const collectProjectLinks = (tree: AnyNode): ProjectLink[] => collect(tree, 'projectLink')\n\n/** 最初に現れる画像ノード。無ければ null。 */\nexport const firstImage = (tree: AnyNode): ImageNode | null => {\n let found: ImageNode | null = null\n visit(tree, 'image', (node) => {\n found = node\n return 'exit'\n })\n return found\n}\n"],"mappings":";;;;;AAwBA,SAAgB,MACd,MACA,gBACA,cACM;CACN,MAAM,UAAU,gBAAiB;CACjC,MAAM,QACJ,iBAAiB,KAAA,IACb,KAAA,IACA,IAAI,IACF,OAAO,mBAAmB,WACtB,CAAC,cAAc,IACd,cACP;CAEN,MAAM,QAAQ,MAAe,cAA+C;EAC1E,IAAI,UAAU,KAAA,KAAa,MAAM,IAAI,KAAK,IAAI,GAAG;GAC/C,MAAM,SAAS,QAAQ,MAAM,SAAS;GACtC,IAAI,WAAW,QAAQ,OAAO;GAC9B,IAAI,WAAW,QAAQ,OAAO,KAAA;EAChC;EACA,MAAM,gBAAgB,CAAC,GAAG,WAAW,IAAI;EACzC,KAAK,MAAM,SAAS,WAAW,IAAI,GACjC,IAAI,KAAK,OAAO,aAAa,MAAM,QAAQ,OAAO;CAGtD;CAEA,KAAK,MAAM,CAAC,CAAC;AACf;;AAGA,SAAgB,KAA4B,MAAe,MAA+B;CACxF,IAAI,QAA8B;CAClC,MAAM,MAAM,OAAO,SAAS;EAC1B,QAAQ;EACR,OAAO;CACT,CAAC;CACD,OAAO;AACT;;AAGA,SAAgB,QAA+B,MAAe,MAA0B;CACtF,MAAM,MAAuB,CAAC;CAC9B,MAAM,MAAM,OAAO,SAAS;EAC1B,IAAI,KAAK,IAAI;CACf,CAAC;CACD,OAAO;AACT;;;;;;;ACzDA,MAAa,gBAAgB,MAAe,YAA4C;CACtF,MAAM,MAAgB,CAAC;CACvB,MAAM,uBAAO,IAAI,IAAY;CAC7B,MAAM,OAAO,UAAkB;EAC7B,IAAI,UAAU,MAAM,KAAK,IAAI,KAAK,GAAG;EACrC,KAAK,IAAI,KAAK;EACd,IAAI,KAAK,KAAK;CAChB;CAEA,MAAM,OAAO,SAAS;EACpB,IAAI,KAAK,SAAS,gBAAgB,IAAI,KAAK,MAAM;OAC5C,IAAI,KAAK,SAAS,WAAW,IAAI,KAAK,KAAK;OAC3C,IAAI,KAAK,SAAS,iBAAiB,SAAS,qBAAqB,IAAI,KAAK,MAAM;CACvF,CAAC;CAED,OAAO;AACT;;AAGA,MAAa,uBAAuB,SAAiC,QAAQ,MAAM,aAAa;;AAGhG,MAAa,cAAc,SAAoC;CAC7D,IAAI,QAA0B;CAC9B,MAAM,MAAM,UAAU,SAAS;EAC7B,QAAQ;EACR,OAAO;CACT,CAAC;CACD,OAAO;AACT"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cosense-toolbox/parser",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
4
|
-
"description": "Cosense (Scrapbox) notation parser —
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
|
+
"description": "Cosense (Scrapbox) notation parser — every node carries its source position. Zero runtime deps except effect.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
@@ -42,14 +42,14 @@
|
|
|
42
42
|
"default": "./dist/utils.cjs"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
"./
|
|
45
|
+
"./extensions": {
|
|
46
46
|
"import": {
|
|
47
|
-
"types": "./dist/
|
|
48
|
-
"default": "./dist/
|
|
47
|
+
"types": "./dist/extensions.d.mts",
|
|
48
|
+
"default": "./dist/extensions.mjs"
|
|
49
49
|
},
|
|
50
50
|
"require": {
|
|
51
|
-
"types": "./dist/
|
|
52
|
-
"default": "./dist/
|
|
51
|
+
"types": "./dist/extensions.d.cts",
|
|
52
|
+
"default": "./dist/extensions.cjs"
|
|
53
53
|
}
|
|
54
54
|
},
|
|
55
55
|
"./compile": {
|
|
@@ -87,7 +87,7 @@
|
|
|
87
87
|
"tag": "beta",
|
|
88
88
|
"registry": "https://registry.npmjs.org/"
|
|
89
89
|
},
|
|
90
|
-
"keywords": ["cosense", "scrapbox", "parser", "ast", "
|
|
90
|
+
"keywords": ["cosense", "scrapbox", "parser", "ast", "syntax", "effect"],
|
|
91
91
|
"repository": {
|
|
92
92
|
"type": "git",
|
|
93
93
|
"url": "git+https://github.com/qaynam/cosense-toolbox.git",
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { C as NodeOfType, r as AnyNodeType, t as AnyNode } from "./types-Bo_BrmvK.cjs";
|
|
2
|
-
//#region src/compile/create-compiler.d.ts
|
|
3
|
-
/** ハンドラの中から再帰的に変換するための入口。 */
|
|
4
|
-
interface CompileContext<Out> {
|
|
5
|
-
readonly node: (node: AnyNode) => Out;
|
|
6
|
-
readonly children: (node: AnyNode) => Out[];
|
|
7
|
-
}
|
|
8
|
-
type NodeHandler<Out, K extends AnyNodeType> = (node: NodeOfType<K>, ctx: CompileContext<Out>) => Out;
|
|
9
|
-
/**
|
|
10
|
-
* ノード型 → ハンドラの対応。`AnyNodeMap` から型を導出しているので、
|
|
11
|
-
* ノード型が増えたらここも自動で新しいキーを受け入れる。
|
|
12
|
-
*/
|
|
13
|
-
type NodeHandlers<Out> = { readonly [K in AnyNodeType]?: NodeHandler<Out, K>; };
|
|
14
|
-
interface CompilerOptions<Out> {
|
|
15
|
-
readonly handlers: NodeHandlers<Out>;
|
|
16
|
-
/** ハンドラが無いノード型に使う既定の変換 */
|
|
17
|
-
readonly fallback: NodeHandler<Out, AnyNodeType>;
|
|
18
|
-
}
|
|
19
|
-
/** AST をひとつの値に変換する関数を作る。 */
|
|
20
|
-
declare const createCompiler: <Out>(options: CompilerOptions<Out>) => (node: AnyNode) => Out;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { createCompiler as a, NodeHandlers as i, CompilerOptions as n, NodeHandler as r, CompileContext as t };
|
|
23
|
-
//# sourceMappingURL=create-compiler-CvlndKOA.d.cts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-compiler-CvlndKOA.d.cts","names":[],"sources":["../src/compile/create-compiler.ts"],"mappings":";;;UAQiB,eAAe;WACrB,OAAO,MAAM,YAAY;WACzB,WAAW,MAAM,YAAY;;KAG5B,YAAY,KAAK,UAAU,gBACrC,MAAM,WAAW,IACjB,KAAK,eAAe,SACjB;;;;;KAMO,aAAa,mBACb,KAAK,eAAe,YAAY,KAAK;UAGhC,gBAAgB;WACtB,UAAU,aAAa;;WAEvB,UAAU,YAAY,KAAK;;;cAIzB,iBAAkB,KAAK,SAAS,gBAAgB,UAAI,MACxC,YAAU"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { C as NodeOfType, r as AnyNodeType, t as AnyNode } from "./types-Bo_BrmvK.mjs";
|
|
2
|
-
//#region src/compile/create-compiler.d.ts
|
|
3
|
-
/** ハンドラの中から再帰的に変換するための入口。 */
|
|
4
|
-
interface CompileContext<Out> {
|
|
5
|
-
readonly node: (node: AnyNode) => Out;
|
|
6
|
-
readonly children: (node: AnyNode) => Out[];
|
|
7
|
-
}
|
|
8
|
-
type NodeHandler<Out, K extends AnyNodeType> = (node: NodeOfType<K>, ctx: CompileContext<Out>) => Out;
|
|
9
|
-
/**
|
|
10
|
-
* ノード型 → ハンドラの対応。`AnyNodeMap` から型を導出しているので、
|
|
11
|
-
* ノード型が増えたらここも自動で新しいキーを受け入れる。
|
|
12
|
-
*/
|
|
13
|
-
type NodeHandlers<Out> = { readonly [K in AnyNodeType]?: NodeHandler<Out, K>; };
|
|
14
|
-
interface CompilerOptions<Out> {
|
|
15
|
-
readonly handlers: NodeHandlers<Out>;
|
|
16
|
-
/** ハンドラが無いノード型に使う既定の変換 */
|
|
17
|
-
readonly fallback: NodeHandler<Out, AnyNodeType>;
|
|
18
|
-
}
|
|
19
|
-
/** AST をひとつの値に変換する関数を作る。 */
|
|
20
|
-
declare const createCompiler: <Out>(options: CompilerOptions<Out>) => (node: AnyNode) => Out;
|
|
21
|
-
//#endregion
|
|
22
|
-
export { createCompiler as a, NodeHandlers as i, CompilerOptions as n, NodeHandler as r, CompileContext as t };
|
|
23
|
-
//# sourceMappingURL=create-compiler-jdA408ny.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"create-compiler-jdA408ny.d.mts","names":[],"sources":["../src/compile/create-compiler.ts"],"mappings":";;;UAQiB,eAAe;WACrB,OAAO,MAAM,YAAY;WACzB,WAAW,MAAM,YAAY;;KAG5B,YAAY,KAAK,UAAU,gBACrC,MAAM,WAAW,IACjB,KAAK,eAAe,SACjB;;;;;KAMO,aAAa,mBACb,KAAK,eAAe,YAAY,KAAK;UAGhC,gBAAgB;WACtB,UAAU,aAAa;;WAEvB,UAAU,YAAY,KAAK;;;cAIzB,iBAAkB,KAAK,SAAS,gBAAgB,UAAI,MACxC,YAAU"}
|
package/dist/plugin.cjs
DELETED
|
File without changes
|
package/dist/plugin.d.cts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { F as WithoutPosition, _ as InlineNodeInit } from "./types-Bo_BrmvK.cjs";
|
|
2
|
-
import { i as NodeHandlers, n as CompilerOptions, r as NodeHandler, t as CompileContext } from "./create-compiler-CvlndKOA.cjs";
|
|
3
|
-
import { a as InlineConstruct, i as Extension, n as BracketRuleContext, o as InlineContext, r as ConstructMatch, s as Origin, t as BracketRule } from "./types-DVwlUtla.cjs";
|
|
4
|
-
export type { BracketRule, BracketRuleContext, CompileContext, CompilerOptions, ConstructMatch, Extension, InlineConstruct, InlineContext, InlineNodeInit, NodeHandler, NodeHandlers, Origin, WithoutPosition };
|
package/dist/plugin.d.mts
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { F as WithoutPosition, _ as InlineNodeInit } from "./types-Bo_BrmvK.mjs";
|
|
2
|
-
import { i as NodeHandlers, n as CompilerOptions, r as NodeHandler, t as CompileContext } from "./create-compiler-jdA408ny.mjs";
|
|
3
|
-
import { a as InlineConstruct, i as Extension, n as BracketRuleContext, o as InlineContext, r as ConstructMatch, s as Origin, t as BracketRule } from "./types-BXlnUFr0.mjs";
|
|
4
|
-
export type { BracketRule, BracketRuleContext, CompileContext, CompilerOptions, ConstructMatch, Extension, InlineConstruct, InlineContext, InlineNodeInit, NodeHandler, NodeHandlers, Origin, WithoutPosition };
|
package/dist/plugin.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-Bo_BrmvK.d.cts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;UAkBiB;;WAEN;;WAEA;;WAEA;;;;;;;UAQM;WACN,OAAO;WACP,KAAK;;;UAIC;WACN;WACA,UAAU;;;UAQJ,iBAAiB;WACvB;WACA;;;UAIM,qBAAqB;WAC3B;;WAEA;;WAEA;;;UAIM,qBAAqB;WAC3B;WACA;WACA;;;UAIM,oBAAoB;WAC1B;WACA;;WAEA;WACA;;WAEA;;;UAIM,gBAAgB;WACtB;WACA;;;UAIM,mBAAmB;WACzB;WACA;;;UAIM,kBAAkB;WACxB;WACA;;WAEA;;WAEA;;;UAIM,iBAAiB;WACvB;WACA;;WAEA;;;UAIM,oBAAoB;WAC1B;WACA;;;;;;;;UASM,mBAAmB;WACzB;;WAEA;WACA;WACA;WACA;WACA;;WAEA;;WAEA,mBAAmB;;;;;;UAOb;EACf,MAAM;EACN,cAAc;EACd,cAAc;EACd,aAAa;EACb,SAAS;EACT,YAAY;EACZ,OAAO;EACP,MAAM;EACN,SAAS;EACT,YAAY;;KAGF,uBAAuB;KACvB,aAAa,cAAc;;UAOtB,mBAAmB;WACzB;;WAEA;WACA,mBAAmB;;;UAIb,iBAAiB;WACvB;;;;;WAKA;;;UAIM,kBAAkB;WACxB;WACA;;WAEA;;WAEA,gBAAgB;;;UAIV,kBAAkB;WACxB;WACA;;;UAIM,iBAAiB;WACvB;WACA,gBAAgB;;;UAIV,mBAAmB;WACzB;WACA;WACA;WACA,eAAe;;;UAIT,kBAAkB;WACxB;;WAEA;;WAEA;;WAEA;;WAEA,mBAAmB;;;;;;UAOb;EACf,OAAO;EACP,WAAW;EACX,UAAU;EACV,OAAO;EACP,UAAU;EACV,WAAW;EACX,MAAM;;KAGI,sBAAsB;KACtB,YAAY,aAAa;;KAGzB,gBAAgB,aAAa,YAAY,aAAa;;UAOjD,aAAa;WACnB;WACA,mBAAmB;;UAOb;EACf,MAAM;;;KAII,aAAa,cAAc,eAAe;KAE1C,oBAAoB;KACpB,UAAU,WAAW;;KAGrB,WAAW,UAAU,eAAe,WAAW;;;;;;;KAQ/C,gBAAgB,KAAK,oBAAoB,KAAK;;KAG9C,iBAAiB,gBAAgB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-Bo_BrmvK.d.mts","names":[],"sources":["../src/types.ts"],"mappings":";;;;;;;;;;;;;;UAkBiB;;WAEN;;WAEA;;WAEA;;;;;;;UAQM;WACN,OAAO;WACP,KAAK;;;UAIC;WACN;WACA,UAAU;;;UAQJ,iBAAiB;WACvB;WACA;;;UAIM,qBAAqB;WAC3B;;WAEA;;WAEA;;;UAIM,qBAAqB;WAC3B;WACA;WACA;;;UAIM,oBAAoB;WAC1B;WACA;;WAEA;WACA;;WAEA;;;UAIM,gBAAgB;WACtB;WACA;;;UAIM,mBAAmB;WACzB;WACA;;;UAIM,kBAAkB;WACxB;WACA;;WAEA;;WAEA;;;UAIM,iBAAiB;WACvB;WACA;;WAEA;;;UAIM,oBAAoB;WAC1B;WACA;;;;;;;;UASM,mBAAmB;WACzB;;WAEA;WACA;WACA;WACA;WACA;;WAEA;;WAEA,mBAAmB;;;;;;UAOb;EACf,MAAM;EACN,cAAc;EACd,cAAc;EACd,aAAa;EACb,SAAS;EACT,YAAY;EACZ,OAAO;EACP,MAAM;EACN,SAAS;EACT,YAAY;;KAGF,uBAAuB;KACvB,aAAa,cAAc;;UAOtB,mBAAmB;WACzB;;WAEA;WACA,mBAAmB;;;UAIb,iBAAiB;WACvB;;;;;WAKA;;;UAIM,kBAAkB;WACxB;WACA;;WAEA;;WAEA,gBAAgB;;;UAIV,kBAAkB;WACxB;WACA;;;UAIM,iBAAiB;WACvB;WACA,gBAAgB;;;UAIV,mBAAmB;WACzB;WACA;WACA;WACA,eAAe;;;UAIT,kBAAkB;WACxB;;WAEA;;WAEA;;WAEA;;WAEA,mBAAmB;;;;;;UAOb;EACf,OAAO;EACP,WAAW;EACX,UAAU;EACV,OAAO;EACP,UAAU;EACV,WAAW;EACX,MAAM;;KAGI,sBAAsB;KACtB,YAAY,aAAa;;KAGzB,gBAAgB,aAAa,YAAY,aAAa;;UAOjD,aAAa;WACnB;WACA,mBAAmB;;UAOb;EACf,MAAM;;;KAII,aAAa,cAAc,eAAe;KAE1C,oBAAoB;KACpB,UAAU,WAAW;;KAGrB,WAAW,UAAU,eAAe,WAAW;;;;;;;KAQ/C,gBAAgB,KAAK,oBAAoB,KAAK;;KAG9C,iBAAiB,gBAAgB"}
|