@the_dissidents/libemmm 0.0.4 → 0.0.5
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/src/builtin/builtin.d.ts +2 -0
- package/dist/src/builtin/builtin.js +18 -0
- package/dist/src/builtin/builtin.js.map +1 -0
- package/dist/src/builtin/define-modifier.d.ts +12 -0
- package/dist/src/builtin/define-modifier.js +129 -0
- package/dist/src/builtin/define-modifier.js.map +1 -0
- package/dist/src/builtin/define-shorthand.d.ts +14 -0
- package/dist/src/builtin/define-shorthand.js +178 -0
- package/dist/src/builtin/define-shorthand.js.map +1 -0
- package/dist/src/builtin/internal.d.ts +41 -0
- package/dist/src/builtin/internal.js +106 -0
- package/dist/src/builtin/internal.js.map +1 -0
- package/dist/src/builtin/module.d.ts +16 -0
- package/dist/src/builtin/module.js +156 -0
- package/dist/src/builtin/module.js.map +1 -0
- package/dist/src/builtin/slot.d.ts +7 -0
- package/dist/src/builtin/slot.js +136 -0
- package/dist/src/builtin/slot.js.map +1 -0
- package/dist/src/builtin/var.d.ts +12 -0
- package/dist/src/builtin/var.js +103 -0
- package/dist/src/builtin/var.js.map +1 -0
- package/dist/src/debug-print.d.ts +14 -0
- package/dist/src/debug-print.js +113 -0
- package/dist/src/debug-print.js.map +1 -0
- package/dist/src/debug.d.ts +15 -0
- package/dist/src/debug.js +47 -0
- package/dist/src/debug.js.map +1 -0
- package/dist/src/default/bullets.d.ts +4 -0
- package/dist/src/default/bullets.js +39 -0
- package/dist/src/default/bullets.js.map +1 -0
- package/dist/src/default/code.d.ts +6 -0
- package/dist/src/default/code.js +13 -0
- package/dist/src/default/code.js.map +1 -0
- package/dist/src/default/default.d.ts +2 -0
- package/dist/src/default/default.js +20 -0
- package/dist/src/default/default.js.map +1 -0
- package/dist/src/default/headings.d.ts +20 -0
- package/dist/src/default/headings.js +125 -0
- package/dist/src/default/headings.js.map +1 -0
- package/dist/src/default/html-renderer.d.ts +26 -0
- package/dist/src/default/html-renderer.js +108 -0
- package/dist/src/default/html-renderer.js.map +1 -0
- package/dist/src/default/inline-styles.d.ts +4 -0
- package/dist/src/default/inline-styles.js +24 -0
- package/dist/src/default/inline-styles.js.map +1 -0
- package/dist/src/default/misc.d.ts +6 -0
- package/dist/src/default/misc.js +112 -0
- package/dist/src/default/misc.js.map +1 -0
- package/dist/src/default/notes.d.ts +28 -0
- package/dist/src/default/notes.js +109 -0
- package/dist/src/default/notes.js.map +1 -0
- package/dist/src/default/quotes.d.ts +4 -0
- package/dist/src/default/quotes.js +36 -0
- package/dist/src/default/quotes.js.map +1 -0
- package/dist/src/default/vars.d.ts +2 -0
- package/dist/src/default/vars.js +39 -0
- package/dist/src/default/vars.js.map +1 -0
- package/dist/src/index.d.ts +13 -0
- package/dist/src/index.js +58 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/interface.d.ts +174 -0
- package/dist/src/interface.js +93 -0
- package/dist/src/interface.js.map +1 -0
- package/dist/src/messages.d.ts +165 -0
- package/dist/src/messages.js +279 -0
- package/dist/src/messages.js.map +1 -0
- package/dist/src/modifier-helper.d.ts +6 -0
- package/dist/src/modifier-helper.js +113 -0
- package/dist/src/modifier-helper.js.map +1 -0
- package/dist/src/parser-config.d.ts +44 -0
- package/dist/src/parser-config.js +67 -0
- package/dist/src/parser-config.js.map +1 -0
- package/dist/src/parser.d.ts +3 -0
- package/dist/src/parser.js +652 -0
- package/dist/src/parser.js.map +1 -0
- package/dist/src/renderer.d.ts +49 -0
- package/dist/src/renderer.js +81 -0
- package/dist/src/renderer.js.map +1 -0
- package/dist/src/scanner.d.ts +22 -0
- package/dist/src/scanner.js +50 -0
- package/dist/src/scanner.js.map +1 -0
- package/dist/src/temp.d.ts +1 -0
- package/dist/src/temp.js +108 -0
- package/dist/src/temp.js.map +1 -0
- package/dist/src/typing-helper.d.ts +7 -0
- package/dist/src/typing-helper.js +3 -0
- package/dist/src/typing-helper.js.map +1 -0
- package/dist/src/util.d.ts +29 -0
- package/dist/src/util.js +177 -0
- package/dist/src/util.js.map +1 -0
- package/dist/tests/advanced_syntax.test.d.ts +1 -0
- package/dist/tests/advanced_syntax.test.js +180 -0
- package/dist/tests/advanced_syntax.test.js.map +1 -0
- package/dist/tests/basic_syntax.test.d.ts +1 -0
- package/dist/tests/basic_syntax.test.js +431 -0
- package/dist/tests/basic_syntax.test.js.map +1 -0
- package/dist/tests/default/headings.test.d.ts +1 -0
- package/dist/tests/default/headings.test.js +90 -0
- package/dist/tests/default/headings.test.js.map +1 -0
- package/dist/tests/define_block.test.d.ts +1 -0
- package/dist/tests/define_block.test.js +209 -0
- package/dist/tests/define_block.test.js.map +1 -0
- package/dist/tests/define_inline.test.d.ts +1 -0
- package/dist/tests/define_inline.test.js +289 -0
- package/dist/tests/define_inline.test.js.map +1 -0
- package/dist/tests/modules.test.d.ts +1 -0
- package/dist/tests/modules.test.js +137 -0
- package/dist/tests/modules.test.js.map +1 -0
- package/dist/tests/shorthands.test.d.ts +1 -0
- package/dist/tests/shorthands.test.js +79 -0
- package/dist/tests/shorthands.test.js.map +1 -0
- package/dist/tsup.config.d.ts +2 -0
- package/dist/tsup.config.js +12 -0
- package/dist/tsup.config.js.map +1 -0
- package/dist/vitest.config.d.ts +2 -0
- package/dist/vitest.config.js +17 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BuiltinConfiguration = void 0;
|
|
4
|
+
const parser_config_1 = require("../parser-config");
|
|
5
|
+
const define_modifier_1 = require("./define-modifier");
|
|
6
|
+
const define_shorthand_1 = require("./define-shorthand");
|
|
7
|
+
const internal_1 = require("./internal");
|
|
8
|
+
const module_1 = require("./module");
|
|
9
|
+
const slot_1 = require("./slot");
|
|
10
|
+
const var_1 = require("./var");
|
|
11
|
+
let builtin = new parser_config_1.Configuration();
|
|
12
|
+
builtin.initializers = [internal_1.initParseContext];
|
|
13
|
+
builtin.systemModifiers.add(define_modifier_1.DefineBlockMod, define_modifier_1.DefineInlineMod, define_shorthand_1.DefineBlockShorthandMod, define_shorthand_1.DefineInlineShorthandMod, var_1.VarMod, module_1.UseSystemMod);
|
|
14
|
+
builtin.blockModifiers.add(slot_1.SlotBlockMod, slot_1.PreSlotBlockMod, slot_1.InjectPreSlotBlockMod, module_1.ModuleMod, module_1.UseBlockMod);
|
|
15
|
+
builtin.inlineModifiers.add(slot_1.SlotInlineMod, slot_1.PreSlotInlineMod, slot_1.InjectPreSlotInlineMod, var_1.GetVarInlineMod, var_1.PrintInlineMod);
|
|
16
|
+
builtin.argumentInterpolators.add(var_1.GetVarInterpolator);
|
|
17
|
+
exports.BuiltinConfiguration = Object.freeze(builtin);
|
|
18
|
+
//# sourceMappingURL=builtin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builtin.js","sourceRoot":"","sources":["../../../src/builtin/builtin.ts"],"names":[],"mappings":";;;AAAA,oDAAwE;AACxE,uDAAoE;AACpE,yDAAuF;AACvF,yCAA8C;AAC9C,qCAAgE;AAChE,iCAAuI;AACvI,+BAAoF;AAEpF,IAAI,OAAO,GAAG,IAAI,6BAAa,EAAE,CAAC;AAClC,OAAO,CAAC,YAAY,GAAG,CAAC,2BAAgB,CAAC,CAAC;AAC1C,OAAO,CAAC,eAAe,CAAC,GAAG,CACvB,gCAAc,EAAE,iCAAe,EAC/B,0CAAuB,EAAE,2CAAwB,EACjD,YAAM,EACN,qBAAY,CAAC,CAAC;AAClB,OAAO,CAAC,cAAc,CAAC,GAAG,CACtB,mBAAY,EAAE,sBAAe,EAAE,4BAAqB,EACpD,kBAAS,EAAE,oBAAW,CAAC,CAAC;AAC5B,OAAO,CAAC,eAAe,CAAC,GAAG,CACvB,oBAAa,EAAE,uBAAgB,EAAE,6BAAsB,EACvD,qBAAe,EAAE,oBAAc,CAAC,CAAC;AACrC,OAAO,CAAC,qBAAqB,CAAC,GAAG,CAAC,wBAAkB,CAAC,CAAC;AAEzC,QAAA,oBAAoB,GAA0B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SystemModifierDefinition, Message, InlineEntity } from "../interface";
|
|
2
|
+
import { ModifierSignature } from "./internal";
|
|
3
|
+
type ModifierState = {
|
|
4
|
+
name?: string;
|
|
5
|
+
signature: ModifierSignature;
|
|
6
|
+
msgs: Message[];
|
|
7
|
+
};
|
|
8
|
+
export declare const DefineBlockMod: SystemModifierDefinition<ModifierState>;
|
|
9
|
+
export declare const DefineInlineMod: SystemModifierDefinition<ModifierState & {
|
|
10
|
+
definition?: InlineEntity[];
|
|
11
|
+
}>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefineInlineMod = exports.DefineBlockMod = void 0;
|
|
4
|
+
const debug_1 = require("../debug");
|
|
5
|
+
const interface_1 = require("../interface");
|
|
6
|
+
const messages_1 = require("../messages");
|
|
7
|
+
const modifier_helper_1 = require("../modifier-helper");
|
|
8
|
+
const util_1 = require("../util");
|
|
9
|
+
const internal_1 = require("./internal");
|
|
10
|
+
function parseDefineArguments(node, stack) {
|
|
11
|
+
const check = (0, modifier_helper_1.checkArgumentLength)(node, 1, Infinity);
|
|
12
|
+
if (check)
|
|
13
|
+
return check;
|
|
14
|
+
const msgs = [];
|
|
15
|
+
const name = node.arguments[0];
|
|
16
|
+
const nameValue = name.expansion;
|
|
17
|
+
if (nameValue === '' || nameValue?.includes('\n'))
|
|
18
|
+
return [
|
|
19
|
+
new messages_1.InvalidArgumentMessage(name.location, nameValue)
|
|
20
|
+
];
|
|
21
|
+
let slotName = '';
|
|
22
|
+
if (node.arguments.length > 1) {
|
|
23
|
+
const last = node.arguments.at(-1);
|
|
24
|
+
if (last.expansion) {
|
|
25
|
+
const match = /^\((.*)\)$/.exec(last.expansion);
|
|
26
|
+
slotName = match ? match[1] : '';
|
|
27
|
+
}
|
|
28
|
+
else
|
|
29
|
+
msgs.push(new messages_1.InvalidArgumentMessage(last.location));
|
|
30
|
+
}
|
|
31
|
+
const args = node.arguments.slice(1, (slotName !== '')
|
|
32
|
+
? node.arguments.length - 1 : undefined).map((x) => {
|
|
33
|
+
if (!x.expansion)
|
|
34
|
+
msgs.push(new messages_1.InvalidArgumentMessage(x.location));
|
|
35
|
+
return x.expansion ?? '';
|
|
36
|
+
});
|
|
37
|
+
let signature = { slotName, args, preformatted: undefined };
|
|
38
|
+
node.state = { name: nameValue, signature, msgs };
|
|
39
|
+
stack.push(signature);
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
exports.DefineBlockMod = new interface_1.SystemModifierDefinition('define-block', interface_1.ModifierSlotType.Normal, {
|
|
43
|
+
// .define-block:name:args...[:(slot-id)]
|
|
44
|
+
delayContentExpansion: true,
|
|
45
|
+
alwaysTryExpand: true,
|
|
46
|
+
beforeParseContent(node, cxt) {
|
|
47
|
+
const store = cxt.get(internal_1.builtins);
|
|
48
|
+
const check = parseDefineArguments(node, store.blockSlotDelayedStack);
|
|
49
|
+
if (check)
|
|
50
|
+
return check;
|
|
51
|
+
debug_1.debug.trace('entering block definition:', node.state.name);
|
|
52
|
+
return [];
|
|
53
|
+
},
|
|
54
|
+
afterParseContent(node, cxt) {
|
|
55
|
+
if (!node.state)
|
|
56
|
+
return [];
|
|
57
|
+
const store = cxt.get(internal_1.builtins);
|
|
58
|
+
const pop = store.blockSlotDelayedStack.pop();
|
|
59
|
+
(0, util_1.assert)(pop === node.state.signature);
|
|
60
|
+
debug_1.debug.trace('leaving block definition', node.state.name);
|
|
61
|
+
return [];
|
|
62
|
+
},
|
|
63
|
+
prepareExpand(node, cxt, immediate) {
|
|
64
|
+
if (!immediate || !node.state)
|
|
65
|
+
return [];
|
|
66
|
+
const arg = node.arguments[0];
|
|
67
|
+
const msgs = node.state.msgs;
|
|
68
|
+
if (!node.state.name)
|
|
69
|
+
msgs.push(new messages_1.InvalidArgumentMessage(arg.location));
|
|
70
|
+
else if (cxt.config.blockModifiers.has(node.state.name))
|
|
71
|
+
msgs.push(new messages_1.NameAlreadyDefinedMessage(arg.location, node.state.name));
|
|
72
|
+
return msgs;
|
|
73
|
+
},
|
|
74
|
+
expand(node, cxt, immediate) {
|
|
75
|
+
if (!immediate)
|
|
76
|
+
return undefined;
|
|
77
|
+
if (node.state?.name) {
|
|
78
|
+
if (cxt.config.blockModifiers.has(node.state.name))
|
|
79
|
+
cxt.config.blockModifiers.remove(node.state.name);
|
|
80
|
+
cxt.config.blockModifiers.add((0, internal_1.customModifier)(interface_1.NodeType.BlockModifier, node.state.name, node.state.signature, node.content));
|
|
81
|
+
}
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
exports.DefineInlineMod = new interface_1.SystemModifierDefinition('define-inline', interface_1.ModifierSlotType.Normal, {
|
|
86
|
+
// .define-inline name:args...[:(slot-id)]
|
|
87
|
+
delayContentExpansion: true,
|
|
88
|
+
alwaysTryExpand: true,
|
|
89
|
+
beforeParseContent(node, cxt) {
|
|
90
|
+
const store = cxt.get(internal_1.builtins);
|
|
91
|
+
const check = parseDefineArguments(node, store.inlineSlotDelayedStack);
|
|
92
|
+
if (check)
|
|
93
|
+
return check;
|
|
94
|
+
debug_1.debug.trace('entering inline definition:', node.state.name);
|
|
95
|
+
return [];
|
|
96
|
+
},
|
|
97
|
+
afterParseContent(node, cxt) {
|
|
98
|
+
if (!node.state)
|
|
99
|
+
return [];
|
|
100
|
+
const store = cxt.get(internal_1.builtins);
|
|
101
|
+
const pop = store.inlineSlotDelayedStack.pop();
|
|
102
|
+
(0, util_1.assert)(pop === node.state.signature);
|
|
103
|
+
debug_1.debug.trace('leaving inline definition', node.state.name);
|
|
104
|
+
return [];
|
|
105
|
+
},
|
|
106
|
+
prepareExpand(node, cxt, immediate) {
|
|
107
|
+
if (!immediate || !node.state)
|
|
108
|
+
return [];
|
|
109
|
+
const arg = node.arguments[0];
|
|
110
|
+
if (!node.state.name)
|
|
111
|
+
return [new messages_1.InvalidArgumentMessage(arg.location)];
|
|
112
|
+
const msgs = node.state.msgs;
|
|
113
|
+
if (cxt.config.inlineModifiers.has(node.state.name))
|
|
114
|
+
msgs.push(new messages_1.NameAlreadyDefinedMessage(arg.location, node.state.name));
|
|
115
|
+
node.state.definition = (0, internal_1.makeInlineDefinition)(node, msgs);
|
|
116
|
+
return msgs;
|
|
117
|
+
},
|
|
118
|
+
expand(node, cxt, immediate) {
|
|
119
|
+
if (!immediate)
|
|
120
|
+
return undefined;
|
|
121
|
+
if (node.state?.name) {
|
|
122
|
+
if (cxt.config.inlineModifiers.has(node.state.name))
|
|
123
|
+
cxt.config.inlineModifiers.remove(node.state.name);
|
|
124
|
+
cxt.config.inlineModifiers.add((0, internal_1.customModifier)(interface_1.NodeType.InlineModifier, node.state.name, node.state.signature, node.state.definition));
|
|
125
|
+
}
|
|
126
|
+
return [];
|
|
127
|
+
},
|
|
128
|
+
});
|
|
129
|
+
//# sourceMappingURL=define-modifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-modifier.js","sourceRoot":"","sources":["../../../src/builtin/define-modifier.ts"],"names":[],"mappings":";;;AAAA,oCAAiC;AACjC,4CAA+H;AAC/H,0CAAgF;AAChF,wDAAyD;AACzD,kCAAiC;AACjC,yCAA+F;AAQ/F,SAAS,oBAAoB,CACzB,IAAuC,EACvC,KAA0B;IAE1B,MAAM,KAAK,GAAG,IAAA,qCAAmB,EAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;IACjC,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;YACtD,IAAI,iCAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;SAAC,CAAC;IAE1D,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAChD,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,CAAC;;YAAM,IAAI,CAAC,IAAI,CACZ,IAAI,iCAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC;QAClD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAEnD,IAAI,CAAC,CAAC,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CACvB,IAAI,iCAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,GAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IAC/E,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAClD,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,SAAS,CAAC;AACrB,CAAC;AAEY,QAAA,cAAc,GAAG,IAAI,oCAAwB,CACtC,cAAc,EAAE,4BAAgB,CAAC,MAAM,EAC3D;IACI,yCAAyC;IACzC,qBAAqB,EAAE,IAAI;IAC3B,eAAe,EAAE,IAAI;IACrB,kBAAkB,CAAC,IAAI,EAAE,GAAG;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACtE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,aAAK,CAAC,KAAK,CAAC,4BAA4B,EAAE,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACd,CAAC;IACD,iBAAiB,CAAC,IAAI,EAAE,GAAG;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,aAAK,CAAC,KAAK,CAAC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzD,OAAO,EAAE,CAAC;IACd,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAChB,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;aACnD,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,IAAI,oCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QACvB,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC9C,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACtD,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAA,yBAAc,EAAC,oBAAQ,CAAC,aAAa,EAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9D,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC;AAEU,QAAA,eAAe,GAAG,IAAI,oCAAwB,CAEvD,eAAe,EAAE,4BAAgB,CAAC,MAAM,EAC5C;IACI,0CAA0C;IAC1C,qBAAqB,EAAE,IAAI;IAC3B,eAAe,EAAE,IAAI;IACrB,kBAAkB,CAAC,IAAI,EAAE,GAAG;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvE,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,aAAK,CAAC,KAAK,CAAC,6BAA6B,EAAE,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QAC7D,OAAO,EAAE,CAAC;IACd,CAAC;IACD,iBAAiB,CAAC,IAAI,EAAE,GAAG;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAA,aAAM,EAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,aAAK,CAAC,KAAK,CAAC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,EAAE,CAAC;IACd,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAChB,OAAO,CAAC,IAAI,iCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,oCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QACvB,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QACjC,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;YACnB,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAC/C,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACvD,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAC1B,IAAA,yBAAc,EAAC,oBAAQ,CAAC,cAAc,EAClC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SystemModifierDefinition, InlineEntity, Message } from "../interface";
|
|
2
|
+
import { ModifierSignature } from "./internal";
|
|
3
|
+
type ShorthandState = {
|
|
4
|
+
name: string;
|
|
5
|
+
parts: [string, string][];
|
|
6
|
+
postfix: string | undefined;
|
|
7
|
+
signature: ModifierSignature;
|
|
8
|
+
msgs: Message[];
|
|
9
|
+
};
|
|
10
|
+
export declare const DefineBlockShorthandMod: SystemModifierDefinition<ShorthandState>;
|
|
11
|
+
export declare const DefineInlineShorthandMod: SystemModifierDefinition<ShorthandState & {
|
|
12
|
+
definition?: InlineEntity[];
|
|
13
|
+
}>;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DefineInlineShorthandMod = exports.DefineBlockShorthandMod = void 0;
|
|
4
|
+
const debug_1 = require("../debug");
|
|
5
|
+
const debug_print_1 = require("../debug-print");
|
|
6
|
+
const interface_1 = require("../interface");
|
|
7
|
+
const messages_1 = require("../messages");
|
|
8
|
+
const modifier_helper_1 = require("../modifier-helper");
|
|
9
|
+
const util_1 = require("../util");
|
|
10
|
+
const internal_1 = require("./internal");
|
|
11
|
+
function parseDefineArguments(type, node, stack) {
|
|
12
|
+
const check = (0, modifier_helper_1.checkArguments)(node, 1, Infinity);
|
|
13
|
+
if (check)
|
|
14
|
+
return check;
|
|
15
|
+
const msgs = [];
|
|
16
|
+
const name = node.arguments[0];
|
|
17
|
+
const nameValue = name.expansion;
|
|
18
|
+
if (nameValue === '' || nameValue?.includes('\n'))
|
|
19
|
+
return [
|
|
20
|
+
new messages_1.InvalidArgumentMessage(name.location, nameValue)
|
|
21
|
+
];
|
|
22
|
+
let slotName = undefined;
|
|
23
|
+
let parts = [];
|
|
24
|
+
let postfix = undefined;
|
|
25
|
+
let i = 1;
|
|
26
|
+
while (i < node.arguments.length) {
|
|
27
|
+
const arg = node.arguments[i];
|
|
28
|
+
const match = /^\((.*)\)$/.exec(arg.expansion);
|
|
29
|
+
if (match) {
|
|
30
|
+
slotName = match[1];
|
|
31
|
+
i++;
|
|
32
|
+
if (type == interface_1.NodeType.InlineModifier) {
|
|
33
|
+
if (i < node.arguments.length) {
|
|
34
|
+
if (node.arguments[i].expansion === '') {
|
|
35
|
+
msgs.push(new messages_1.InvalidArgumentMessage(node.arguments[i].location, 'postfix'));
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
postfix = node.arguments[i].expansion;
|
|
39
|
+
i++;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else
|
|
43
|
+
msgs.push(new messages_1.ArgumentCountMismatchMessage(node.location));
|
|
44
|
+
}
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
i++;
|
|
48
|
+
if (i < node.arguments.length) {
|
|
49
|
+
const id = arg.expansion;
|
|
50
|
+
if (id === '') {
|
|
51
|
+
return [new messages_1.InvalidArgumentMessage(arg.location, 'id')];
|
|
52
|
+
}
|
|
53
|
+
const part = node.arguments[i].expansion;
|
|
54
|
+
if (part === '') {
|
|
55
|
+
return [new messages_1.InvalidArgumentMessage(node.arguments[i].location, 'part')];
|
|
56
|
+
}
|
|
57
|
+
parts.push([id, part]);
|
|
58
|
+
i++;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
msgs.push(new messages_1.ArgumentCountMismatchMessage(node.location));
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
if (i == node.arguments.length - 1) {
|
|
66
|
+
const last = node.arguments[i];
|
|
67
|
+
if (last.expansion !== '')
|
|
68
|
+
msgs.push(new messages_1.InvalidArgumentMessage(last.location, '(must be empty)'));
|
|
69
|
+
}
|
|
70
|
+
else if (i < node.arguments.length - 1)
|
|
71
|
+
msgs.push(new messages_1.ArgumentCountMismatchMessage(node.location));
|
|
72
|
+
let signature = { slotName, args: parts.map((x) => x[0]), preformatted: undefined };
|
|
73
|
+
node.state = { name: nameValue, signature, parts, postfix, msgs };
|
|
74
|
+
stack.push(signature);
|
|
75
|
+
return [];
|
|
76
|
+
}
|
|
77
|
+
exports.DefineBlockShorthandMod = new interface_1.SystemModifierDefinition('block-shorthand', interface_1.ModifierSlotType.Normal, {
|
|
78
|
+
// -inline-shorthand prefix:arg1:part1:arg2:part2...:(slot):postfix:
|
|
79
|
+
delayContentExpansion: true,
|
|
80
|
+
alwaysTryExpand: true,
|
|
81
|
+
beforeParseContent(node, cxt) {
|
|
82
|
+
const store = cxt.get(internal_1.builtins);
|
|
83
|
+
const check = parseDefineArguments(interface_1.NodeType.BlockModifier, node, store.blockSlotDelayedStack);
|
|
84
|
+
if (check)
|
|
85
|
+
return check;
|
|
86
|
+
debug_1.debug.trace('entering block shorthand definition', node.state.name);
|
|
87
|
+
return [];
|
|
88
|
+
},
|
|
89
|
+
afterParseContent(node, cxt) {
|
|
90
|
+
if (!node.state)
|
|
91
|
+
return [];
|
|
92
|
+
const store = cxt.get(internal_1.builtins);
|
|
93
|
+
const pop = store.blockSlotDelayedStack.pop();
|
|
94
|
+
(0, util_1.assert)(pop === node.state.signature);
|
|
95
|
+
debug_1.debug.trace('leaving inline shorthand definition', node.state.name);
|
|
96
|
+
return [];
|
|
97
|
+
},
|
|
98
|
+
prepareExpand(node, cxt, immediate) {
|
|
99
|
+
if (!immediate || !node.state)
|
|
100
|
+
return [];
|
|
101
|
+
const arg = node.arguments[0];
|
|
102
|
+
if (!node.state)
|
|
103
|
+
return [new messages_1.InvalidArgumentMessage(arg.location)];
|
|
104
|
+
const msgs = node.state.msgs;
|
|
105
|
+
if (cxt.config.blockShorthands.has(node.state.name))
|
|
106
|
+
msgs.push(new messages_1.NameAlreadyDefinedMessage(arg.location, node.state.name));
|
|
107
|
+
return msgs;
|
|
108
|
+
},
|
|
109
|
+
expand(node, cxt, immediate) {
|
|
110
|
+
if (!immediate || !node.state)
|
|
111
|
+
return undefined;
|
|
112
|
+
const name = '<block shorthand>';
|
|
113
|
+
const parts = node.state.parts.map((x) => x[1]);
|
|
114
|
+
const mod = (0, internal_1.customModifier)(interface_1.NodeType.BlockModifier, name, node.state.signature, node.content);
|
|
115
|
+
const shorthand = {
|
|
116
|
+
name: node.state.name,
|
|
117
|
+
postfix: node.state.postfix,
|
|
118
|
+
mod, parts
|
|
119
|
+
};
|
|
120
|
+
if (cxt.config.blockShorthands.has(node.state.name))
|
|
121
|
+
cxt.config.blockShorthands.remove(node.state.name);
|
|
122
|
+
cxt.config.blockShorthands.add(shorthand);
|
|
123
|
+
debug_1.debug.info(() => 'created block shorthand: ' + debug_print_1.debugPrint.blockShorthand(shorthand));
|
|
124
|
+
return [];
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
exports.DefineInlineShorthandMod = new interface_1.SystemModifierDefinition('inline-shorthand', interface_1.ModifierSlotType.Normal, {
|
|
128
|
+
// -inline-shorthand prefix:arg1:part1:arg2:part2...:(slot):postfix:
|
|
129
|
+
delayContentExpansion: true,
|
|
130
|
+
alwaysTryExpand: true,
|
|
131
|
+
beforeParseContent(node, cxt) {
|
|
132
|
+
const store = cxt.get(internal_1.builtins);
|
|
133
|
+
const check = parseDefineArguments(interface_1.NodeType.InlineModifier, node, store.inlineSlotDelayedStack);
|
|
134
|
+
if (check)
|
|
135
|
+
return check;
|
|
136
|
+
debug_1.debug.trace('entering inline shorthand definition', node.state.name);
|
|
137
|
+
return [];
|
|
138
|
+
},
|
|
139
|
+
afterParseContent(node, cxt) {
|
|
140
|
+
if (!node.state)
|
|
141
|
+
return [];
|
|
142
|
+
const store = cxt.get(internal_1.builtins);
|
|
143
|
+
const pop = store.inlineSlotDelayedStack.pop();
|
|
144
|
+
(0, util_1.assert)(pop === node.state.signature);
|
|
145
|
+
debug_1.debug.trace('leaving inline shorthand definition', node.state.name);
|
|
146
|
+
return [];
|
|
147
|
+
},
|
|
148
|
+
prepareExpand(node, cxt, immediate) {
|
|
149
|
+
if (!immediate || !node.state)
|
|
150
|
+
return [];
|
|
151
|
+
const arg = node.arguments[0];
|
|
152
|
+
if (!node.state)
|
|
153
|
+
return [new messages_1.InvalidArgumentMessage(arg.location)];
|
|
154
|
+
const msgs = node.state.msgs;
|
|
155
|
+
if (cxt.config.inlineShorthands.has(node.state.name))
|
|
156
|
+
msgs.push(new messages_1.NameAlreadyDefinedMessage(arg.location, node.state.name));
|
|
157
|
+
node.state.definition = (0, internal_1.makeInlineDefinition)(node, msgs);
|
|
158
|
+
return msgs;
|
|
159
|
+
},
|
|
160
|
+
expand(node, cxt, immediate) {
|
|
161
|
+
if (!immediate || !node.state)
|
|
162
|
+
return undefined;
|
|
163
|
+
const name = '<inline shorthand>';
|
|
164
|
+
const parts = node.state.parts.map((x) => x[1]);
|
|
165
|
+
const mod = (0, internal_1.customModifier)(interface_1.NodeType.InlineModifier, name, node.state.signature, node.state.definition);
|
|
166
|
+
const shorthand = {
|
|
167
|
+
name: node.state.name,
|
|
168
|
+
postfix: node.state.postfix,
|
|
169
|
+
mod, parts
|
|
170
|
+
};
|
|
171
|
+
if (cxt.config.inlineShorthands.has(node.state.name))
|
|
172
|
+
cxt.config.inlineShorthands.remove(node.state.name);
|
|
173
|
+
cxt.config.inlineShorthands.add(shorthand);
|
|
174
|
+
debug_1.debug.info(() => 'created inline shorthand: ' + debug_print_1.debugPrint.inlineShorthand(shorthand));
|
|
175
|
+
return [];
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
//# sourceMappingURL=define-shorthand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-shorthand.js","sourceRoot":"","sources":["../../../src/builtin/define-shorthand.ts"],"names":[],"mappings":";;;AAAA,oCAAiC;AACjC,gDAA4C;AAC5C,4CAAgK;AAChK,0CAA8G;AAC9G,wDAAoD;AACpD,kCAAiC;AACjC,yCAA+F;AAU/F,SAAS,oBAAoB,CACzB,IAAsD,EACtD,IAAwC,EACxC,KAA0B;IAE1B,MAAM,KAAK,GAAG,IAAA,gCAAc,EAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChD,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAExB,MAAM,IAAI,GAAc,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC;IAClC,IAAI,SAAS,KAAK,EAAE,IAAI,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO;YACtD,IAAI,iCAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC;SAAC,CAAC;IAE1D,IAAI,QAAQ,GAAuB,SAAS,CAAC;IAC7C,IAAI,KAAK,GAAuB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAuB,SAAS,CAAC;IAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,SAAU,CAAC,CAAC;QAChD,IAAI,KAAK,EAAE,CAAC;YACR,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,EAAE,CAAC;YACJ,IAAI,IAAI,IAAI,oBAAQ,CAAC,cAAc,EAAE,CAAC;gBAClC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;oBAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;wBACrC,IAAI,CAAC,IAAI,CAAC,IAAI,iCAAsB,CAChC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;oBAChD,CAAC;yBAAM,CAAC;wBACJ,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC;wBACvC,CAAC,EAAE,CAAC;oBACR,CAAC;gBACL,CAAC;;oBAAM,IAAI,CAAC,IAAI,CACZ,IAAI,uCAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACzD,CAAC;YACD,MAAM;QACV,CAAC;QAED,CAAC,EAAE,CAAC;QACJ,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,SAAU,CAAC;YAC1B,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACZ,OAAO,CAAC,IAAI,iCAAsB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAU,CAAC;YAC1C,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBACd,OAAO,CAAC,IAAI,iCAAsB,CAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAC7C,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;YACvB,CAAC,EAAE,CAAC;QACR,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,CAAC,IAAI,uCAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3D,MAAM;QACV,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,EAAE;YAAE,IAAI,CAAC,IAAI,CAChC,IAAI,iCAAsB,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACtE,CAAC;SAAM,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,IAAI,uCAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/D,IAAI,SAAS,GACT,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACxE,IAAI,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,OAAO,EAAE,CAAC;AACd,CAAC;AAEY,QAAA,uBAAuB,GAAG,IAAI,oCAAwB,CAE9D,iBAAiB,EAAE,4BAAgB,CAAC,MAAM,EAC/C;IACI,oEAAoE;IACpE,qBAAqB,EAAE,IAAI;IAC3B,eAAe,EAAE,IAAI;IACrB,kBAAkB,CAAC,IAAI,EAAE,GAAG;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,oBAAQ,CAAC,aAAa,EACrD,IAAI,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACvC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,aAAK,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QACrE,OAAO,EAAE,CAAC;IACd,CAAC;IACD,iBAAiB,CAAC,IAAI,EAAE,GAAG;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,qBAAqB,CAAC,GAAG,EAAE,CAAC;QAC9C,IAAA,aAAM,EAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,aAAK,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC;IACd,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;YACX,OAAO,CAAC,IAAI,iCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/C,IAAI,CAAC,IAAI,CAAC,IAAI,oCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QACvB,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAChD,MAAM,IAAI,GAAG,mBAAmB,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAA,yBAAc,EAAC,oBAAQ,CAAC,aAAa,EAC7C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAwB;YACnC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,GAAG,EAAE,KAAK;SACb,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC/C,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC1C,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,2BAA2B,GAAG,wBAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;QACrF,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC;AAEU,QAAA,wBAAwB,GAAG,IAAI,oCAAwB,CAE/D,kBAAkB,EAAE,4BAAgB,CAAC,MAAM,EAChD;IACI,oEAAoE;IACpE,qBAAqB,EAAE,IAAI;IAC3B,eAAe,EAAE,IAAI;IACrB,kBAAkB,CAAC,IAAI,EAAE,GAAG;QACxB,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,KAAK,GAAG,oBAAoB,CAAC,oBAAQ,CAAC,cAAc,EACtD,IAAI,EAAE,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACxC,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;QACxB,aAAK,CAAC,KAAK,CAAC,sCAAsC,EAAE,IAAI,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,EAAE,CAAC;IACd,CAAC;IACD,iBAAiB,CAAC,IAAI,EAAE,GAAG;QACvB,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,mBAAQ,CAAE,CAAC;QACjC,MAAM,GAAG,GAAG,KAAK,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAA,aAAM,EAAC,GAAG,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACrC,aAAK,CAAC,KAAK,CAAC,qCAAqC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC;IACd,CAAC;IACD,aAAa,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QAC9B,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,KAAK;YACX,OAAO,CAAC,IAAI,iCAAsB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,IAAI,oCAAyB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAA,+BAAoB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS;QACvB,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAChD,MAAM,IAAI,GAAG,oBAAoB,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAA,yBAAc,EAAC,oBAAQ,CAAC,cAAc,EAC9C,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,UAAW,CAAC,CAAC;QACxD,MAAM,SAAS,GAAyB;YACpC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAC3B,GAAG,EAAE,KAAK;SACb,CAAC;QACF,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAChD,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,aAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,4BAA4B,GAAG,wBAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,OAAO,EAAE,CAAC;IACd,CAAC;CACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BlockEntity, InlineEntity, Message, SystemModifierNode, BlockModifierDefinition, InlineModifierDefinition, NodeType } from "../interface";
|
|
2
|
+
import { ParseContext } from "../parser-config";
|
|
3
|
+
import { _Ent, _Def } from "../typing-helper";
|
|
4
|
+
import { ConfigDefinitions } from "./module";
|
|
5
|
+
export type ModifierSignature = {
|
|
6
|
+
readonly slotName: string | undefined;
|
|
7
|
+
readonly args: readonly string[];
|
|
8
|
+
preformatted: boolean | undefined;
|
|
9
|
+
};
|
|
10
|
+
export type BlockInstantiationData = {
|
|
11
|
+
readonly slotName: string | undefined;
|
|
12
|
+
readonly mod: BlockModifierDefinition<any>;
|
|
13
|
+
readonly slotContent: readonly BlockEntity[];
|
|
14
|
+
readonly args: ReadonlyMap<string, string>;
|
|
15
|
+
};
|
|
16
|
+
export type InlineInstantiationData = {
|
|
17
|
+
readonly slotName: string | undefined;
|
|
18
|
+
readonly mod: InlineModifierDefinition<any>;
|
|
19
|
+
readonly slotContent: readonly InlineEntity[];
|
|
20
|
+
readonly args: ReadonlyMap<string, string>;
|
|
21
|
+
};
|
|
22
|
+
export declare const builtins: unique symbol;
|
|
23
|
+
declare module '../parser-config' {
|
|
24
|
+
interface ParseContextStoreDefinitions {
|
|
25
|
+
[builtins]?: {
|
|
26
|
+
blockSlotDelayedStack: ModifierSignature[];
|
|
27
|
+
inlineSlotDelayedStack: ModifierSignature[];
|
|
28
|
+
blockInstantiationData: BlockInstantiationData[];
|
|
29
|
+
inlineInstantiationData: InlineInstantiationData[];
|
|
30
|
+
modules: Map<string, ConfigDefinitions>;
|
|
31
|
+
usedModules: Set<string>;
|
|
32
|
+
insideModule: string | undefined;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
export declare function initParseContext(cxt: ParseContext): void;
|
|
37
|
+
export declare function customModifier<T extends NodeType.InlineModifier | NodeType.BlockModifier>(type: T, name: string, signature: ModifierSignature, content: _Ent<T>[]): _Def<T, {
|
|
38
|
+
ok: boolean;
|
|
39
|
+
args: Map<string, string>;
|
|
40
|
+
}>;
|
|
41
|
+
export declare function makeInlineDefinition(node: SystemModifierNode<any>, msgs: Message[]): InlineEntity[];
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.builtins = void 0;
|
|
4
|
+
exports.initParseContext = initParseContext;
|
|
5
|
+
exports.customModifier = customModifier;
|
|
6
|
+
exports.makeInlineDefinition = makeInlineDefinition;
|
|
7
|
+
const debug_1 = require("../debug");
|
|
8
|
+
const debug_print_1 = require("../debug-print");
|
|
9
|
+
const interface_1 = require("../interface");
|
|
10
|
+
const messages_1 = require("../messages");
|
|
11
|
+
const modifier_helper_1 = require("../modifier-helper");
|
|
12
|
+
const util_1 = require("../util");
|
|
13
|
+
exports.builtins = Symbol();
|
|
14
|
+
function initParseContext(cxt) {
|
|
15
|
+
cxt.init(exports.builtins, {
|
|
16
|
+
blockSlotDelayedStack: [],
|
|
17
|
+
inlineSlotDelayedStack: [],
|
|
18
|
+
blockInstantiationData: [],
|
|
19
|
+
inlineInstantiationData: [],
|
|
20
|
+
modules: new Map(),
|
|
21
|
+
usedModules: new Set(),
|
|
22
|
+
insideModule: undefined
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
function customModifier(type, name, signature, content) {
|
|
26
|
+
debug_1.debug.info(`created custom ${interface_1.NodeType[type]}:`, name);
|
|
27
|
+
debug_1.debug.info('args:', signature.args, `with ${signature.slotName === undefined ? 'no slot' : signature.slotName == '' ? 'empty slot name' : 'slot name: ' + signature.slotName}`);
|
|
28
|
+
debug_1.debug.trace(() => 'content is\n' + debug_print_1.debugPrint.node(...content));
|
|
29
|
+
const flag = signature.slotName === undefined ? interface_1.ModifierSlotType.None :
|
|
30
|
+
signature.preformatted ? interface_1.ModifierSlotType.Preformatted
|
|
31
|
+
: interface_1.ModifierSlotType.Normal;
|
|
32
|
+
const mod = (type == interface_1.NodeType.BlockModifier
|
|
33
|
+
? new interface_1.BlockModifierDefinition(name, flag)
|
|
34
|
+
: new interface_1.InlineModifierDefinition(name, flag));
|
|
35
|
+
const isInline = type == interface_1.NodeType.InlineModifier;
|
|
36
|
+
if (content.length == 1 && (content[0].type == interface_1.NodeType.BlockModifier
|
|
37
|
+
|| content[0].type == interface_1.NodeType.InlineModifier))
|
|
38
|
+
mod.roleHint = content[0].mod.roleHint;
|
|
39
|
+
mod.delayContentExpansion = true;
|
|
40
|
+
mod.prepareExpand = (node, cxt) => {
|
|
41
|
+
let check = (0, modifier_helper_1.checkArguments)(node, signature.args.length);
|
|
42
|
+
if (check)
|
|
43
|
+
return check;
|
|
44
|
+
node.state = {
|
|
45
|
+
ok: true,
|
|
46
|
+
args: new Map(node.arguments.map((x, i) => [signature.args[i], x.expansion]))
|
|
47
|
+
};
|
|
48
|
+
return [];
|
|
49
|
+
};
|
|
50
|
+
mod.expand = (node) => {
|
|
51
|
+
if (!node.state?.ok)
|
|
52
|
+
return [];
|
|
53
|
+
const contentClone = (0, util_1.cloneNodes)(content, { newLocation: node.location });
|
|
54
|
+
return contentClone;
|
|
55
|
+
};
|
|
56
|
+
mod.beforeProcessExpansion = (node, cxt) => {
|
|
57
|
+
if (!node.state?.ok)
|
|
58
|
+
return [];
|
|
59
|
+
const store = cxt.get(exports.builtins);
|
|
60
|
+
const data = isInline ? store.inlineInstantiationData : store.blockInstantiationData;
|
|
61
|
+
data.push({
|
|
62
|
+
slotName: signature.slotName,
|
|
63
|
+
mod: mod, args: node.state.args,
|
|
64
|
+
slotContent: node.content
|
|
65
|
+
});
|
|
66
|
+
debug_1.debug.trace(`pushed ${interface_1.NodeType[type]} slot data for`, name, signature.slotName == '' ? '(unnamed)' : `= ${signature.slotName}`);
|
|
67
|
+
return [];
|
|
68
|
+
};
|
|
69
|
+
mod.afterProcessExpansion = (node, cxt) => {
|
|
70
|
+
if (!node.state?.ok || signature.slotName === undefined)
|
|
71
|
+
return [];
|
|
72
|
+
const store = cxt.get(exports.builtins);
|
|
73
|
+
const data = isInline ? store.inlineInstantiationData : store.blockInstantiationData;
|
|
74
|
+
const pop = data.pop();
|
|
75
|
+
(0, util_1.assert)(pop !== undefined);
|
|
76
|
+
debug_1.debug.trace(`popped ${interface_1.NodeType[type]} slot data for`, name, signature.slotName == '' ? '(unnamed)' : `= ${signature.slotName}`);
|
|
77
|
+
return [];
|
|
78
|
+
};
|
|
79
|
+
return mod;
|
|
80
|
+
}
|
|
81
|
+
function makeInlineDefinition(node, msgs) {
|
|
82
|
+
let lastIsParagraph = false;
|
|
83
|
+
let concat = [];
|
|
84
|
+
for (const n of node.content) {
|
|
85
|
+
switch (n.type) {
|
|
86
|
+
case interface_1.NodeType.Paragraph:
|
|
87
|
+
if (!lastIsParagraph) {
|
|
88
|
+
lastIsParagraph = true;
|
|
89
|
+
concat.push(...n.content);
|
|
90
|
+
continue;
|
|
91
|
+
}
|
|
92
|
+
case interface_1.NodeType.Preformatted:
|
|
93
|
+
case interface_1.NodeType.BlockModifier:
|
|
94
|
+
msgs.push(new messages_1.EntityNotAllowedMessage(n.location));
|
|
95
|
+
break;
|
|
96
|
+
case interface_1.NodeType.SystemModifier:
|
|
97
|
+
lastIsParagraph = false;
|
|
98
|
+
concat.push(n);
|
|
99
|
+
break;
|
|
100
|
+
default:
|
|
101
|
+
debug_1.debug.never(n);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return concat;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=internal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/builtin/internal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BlockModifierDefinition, BlockShorthand, InlineModifierDefinition, InlineShorthand, SystemModifierDefinition } from "../interface";
|
|
2
|
+
export type ConfigDefinitions = {
|
|
3
|
+
usedModules: Set<string>;
|
|
4
|
+
blocks: Set<BlockModifierDefinition<unknown>>;
|
|
5
|
+
inlines: Set<InlineModifierDefinition<unknown>>;
|
|
6
|
+
inlineShorthands: Set<InlineShorthand<unknown>>;
|
|
7
|
+
blockShorthands: Set<BlockShorthand<unknown>>;
|
|
8
|
+
};
|
|
9
|
+
export declare const ModuleMod: BlockModifierDefinition<{
|
|
10
|
+
name: string;
|
|
11
|
+
defs: ConfigDefinitions;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const UseSystemMod: SystemModifierDefinition<ConfigDefinitions>;
|
|
14
|
+
export declare const UseBlockMod: BlockModifierDefinition<{
|
|
15
|
+
old: ConfigDefinitions;
|
|
16
|
+
}>;
|