@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.
Files changed (118) hide show
  1. package/dist/src/builtin/builtin.d.ts +2 -0
  2. package/dist/src/builtin/builtin.js +18 -0
  3. package/dist/src/builtin/builtin.js.map +1 -0
  4. package/dist/src/builtin/define-modifier.d.ts +12 -0
  5. package/dist/src/builtin/define-modifier.js +129 -0
  6. package/dist/src/builtin/define-modifier.js.map +1 -0
  7. package/dist/src/builtin/define-shorthand.d.ts +14 -0
  8. package/dist/src/builtin/define-shorthand.js +178 -0
  9. package/dist/src/builtin/define-shorthand.js.map +1 -0
  10. package/dist/src/builtin/internal.d.ts +41 -0
  11. package/dist/src/builtin/internal.js +106 -0
  12. package/dist/src/builtin/internal.js.map +1 -0
  13. package/dist/src/builtin/module.d.ts +16 -0
  14. package/dist/src/builtin/module.js +156 -0
  15. package/dist/src/builtin/module.js.map +1 -0
  16. package/dist/src/builtin/slot.d.ts +7 -0
  17. package/dist/src/builtin/slot.js +136 -0
  18. package/dist/src/builtin/slot.js.map +1 -0
  19. package/dist/src/builtin/var.d.ts +12 -0
  20. package/dist/src/builtin/var.js +103 -0
  21. package/dist/src/builtin/var.js.map +1 -0
  22. package/dist/src/debug-print.d.ts +14 -0
  23. package/dist/src/debug-print.js +113 -0
  24. package/dist/src/debug-print.js.map +1 -0
  25. package/dist/src/debug.d.ts +15 -0
  26. package/dist/src/debug.js +47 -0
  27. package/dist/src/debug.js.map +1 -0
  28. package/dist/src/default/bullets.d.ts +4 -0
  29. package/dist/src/default/bullets.js +39 -0
  30. package/dist/src/default/bullets.js.map +1 -0
  31. package/dist/src/default/code.d.ts +6 -0
  32. package/dist/src/default/code.js +13 -0
  33. package/dist/src/default/code.js.map +1 -0
  34. package/dist/src/default/default.d.ts +2 -0
  35. package/dist/src/default/default.js +20 -0
  36. package/dist/src/default/default.js.map +1 -0
  37. package/dist/src/default/headings.d.ts +20 -0
  38. package/dist/src/default/headings.js +125 -0
  39. package/dist/src/default/headings.js.map +1 -0
  40. package/dist/src/default/html-renderer.d.ts +26 -0
  41. package/dist/src/default/html-renderer.js +108 -0
  42. package/dist/src/default/html-renderer.js.map +1 -0
  43. package/dist/src/default/inline-styles.d.ts +4 -0
  44. package/dist/src/default/inline-styles.js +24 -0
  45. package/dist/src/default/inline-styles.js.map +1 -0
  46. package/dist/src/default/misc.d.ts +6 -0
  47. package/dist/src/default/misc.js +112 -0
  48. package/dist/src/default/misc.js.map +1 -0
  49. package/dist/src/default/notes.d.ts +28 -0
  50. package/dist/src/default/notes.js +109 -0
  51. package/dist/src/default/notes.js.map +1 -0
  52. package/dist/src/default/quotes.d.ts +4 -0
  53. package/dist/src/default/quotes.js +36 -0
  54. package/dist/src/default/quotes.js.map +1 -0
  55. package/dist/src/default/vars.d.ts +2 -0
  56. package/dist/src/default/vars.js +39 -0
  57. package/dist/src/default/vars.js.map +1 -0
  58. package/dist/src/index.d.ts +13 -0
  59. package/dist/src/index.js +58 -0
  60. package/dist/src/index.js.map +1 -0
  61. package/dist/src/interface.d.ts +174 -0
  62. package/dist/src/interface.js +93 -0
  63. package/dist/src/interface.js.map +1 -0
  64. package/dist/src/messages.d.ts +165 -0
  65. package/dist/src/messages.js +279 -0
  66. package/dist/src/messages.js.map +1 -0
  67. package/dist/src/modifier-helper.d.ts +6 -0
  68. package/dist/src/modifier-helper.js +113 -0
  69. package/dist/src/modifier-helper.js.map +1 -0
  70. package/dist/src/parser-config.d.ts +44 -0
  71. package/dist/src/parser-config.js +67 -0
  72. package/dist/src/parser-config.js.map +1 -0
  73. package/dist/src/parser.d.ts +3 -0
  74. package/dist/src/parser.js +652 -0
  75. package/dist/src/parser.js.map +1 -0
  76. package/dist/src/renderer.d.ts +49 -0
  77. package/dist/src/renderer.js +81 -0
  78. package/dist/src/renderer.js.map +1 -0
  79. package/dist/src/scanner.d.ts +22 -0
  80. package/dist/src/scanner.js +50 -0
  81. package/dist/src/scanner.js.map +1 -0
  82. package/dist/src/temp.d.ts +1 -0
  83. package/dist/src/temp.js +108 -0
  84. package/dist/src/temp.js.map +1 -0
  85. package/dist/src/typing-helper.d.ts +7 -0
  86. package/dist/src/typing-helper.js +3 -0
  87. package/dist/src/typing-helper.js.map +1 -0
  88. package/dist/src/util.d.ts +29 -0
  89. package/dist/src/util.js +177 -0
  90. package/dist/src/util.js.map +1 -0
  91. package/dist/tests/advanced_syntax.test.d.ts +1 -0
  92. package/dist/tests/advanced_syntax.test.js +180 -0
  93. package/dist/tests/advanced_syntax.test.js.map +1 -0
  94. package/dist/tests/basic_syntax.test.d.ts +1 -0
  95. package/dist/tests/basic_syntax.test.js +431 -0
  96. package/dist/tests/basic_syntax.test.js.map +1 -0
  97. package/dist/tests/default/headings.test.d.ts +1 -0
  98. package/dist/tests/default/headings.test.js +90 -0
  99. package/dist/tests/default/headings.test.js.map +1 -0
  100. package/dist/tests/define_block.test.d.ts +1 -0
  101. package/dist/tests/define_block.test.js +209 -0
  102. package/dist/tests/define_block.test.js.map +1 -0
  103. package/dist/tests/define_inline.test.d.ts +1 -0
  104. package/dist/tests/define_inline.test.js +289 -0
  105. package/dist/tests/define_inline.test.js.map +1 -0
  106. package/dist/tests/modules.test.d.ts +1 -0
  107. package/dist/tests/modules.test.js +137 -0
  108. package/dist/tests/modules.test.js.map +1 -0
  109. package/dist/tests/shorthands.test.d.ts +1 -0
  110. package/dist/tests/shorthands.test.js +79 -0
  111. package/dist/tests/shorthands.test.js.map +1 -0
  112. package/dist/tsup.config.d.ts +2 -0
  113. package/dist/tsup.config.js +12 -0
  114. package/dist/tsup.config.js.map +1 -0
  115. package/dist/vitest.config.d.ts +2 -0
  116. package/dist/vitest.config.js +17 -0
  117. package/dist/vitest.config.js.map +1 -0
  118. package/package.json +1 -1
@@ -0,0 +1,2 @@
1
+ import { ReadonlyConfiguration } from "../parser-config";
2
+ export declare const BuiltinConfiguration: ReadonlyConfiguration;
@@ -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":"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"}
@@ -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
+ }>;