@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,156 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UseBlockMod = exports.UseSystemMod = exports.ModuleMod = 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 getDefs(cxt) {
12
+ const data = cxt.get(internal_1.builtins);
13
+ return {
14
+ usedModules: new Set(data.usedModules),
15
+ blocks: cxt.config.blockModifiers.toSet(),
16
+ inlines: cxt.config.inlineModifiers.toSet(),
17
+ inlineShorthands: cxt.config.inlineShorthands.toSet(),
18
+ blockShorthands: cxt.config.blockShorthands.toSet()
19
+ };
20
+ }
21
+ function applyDefs(cxt, defs) {
22
+ const data = cxt.get(internal_1.builtins);
23
+ data.usedModules = new Set(defs.usedModules);
24
+ cxt.config.blockModifiers = new util_1.NameManager(defs.blocks);
25
+ cxt.config.inlineModifiers = new util_1.NameManager(defs.inlines);
26
+ cxt.config.inlineShorthands = new util_1.NameManager(defs.inlineShorthands);
27
+ cxt.config.blockShorthands = new util_1.NameManager(defs.blockShorthands);
28
+ }
29
+ function add(snew, sold, transform) {
30
+ let newNames = new Set([...snew].map((x) => x.name));
31
+ let out = new Set(snew);
32
+ let overlap = [];
33
+ for (const x of sold) {
34
+ if (newNames.has(x.name))
35
+ overlap.push(x);
36
+ else
37
+ out.add(x);
38
+ }
39
+ return [out, overlap.map(transform).join(', ')];
40
+ }
41
+ function diffDef(cnew, cold) {
42
+ return {
43
+ usedModules: cnew.usedModules.difference(cold.usedModules),
44
+ blocks: cnew.blocks.difference(cold.blocks),
45
+ inlines: cnew.inlines.difference(cold.inlines),
46
+ inlineShorthands: cnew.inlineShorthands.difference(cold.inlineShorthands),
47
+ blockShorthands: cnew.blockShorthands.difference(cold.blockShorthands)
48
+ };
49
+ }
50
+ function addDef(cnew, cold) {
51
+ let [blocks, s1] = add(cnew.blocks, cold.blocks, debug_print_1.debugPrint.blockModifier);
52
+ let [inlines, s2] = add(cnew.inlines, cold.inlines, debug_print_1.debugPrint.inlineModifier);
53
+ let [inlineShorthands, s3] = add(cnew.inlineShorthands, cold.inlineShorthands, debug_print_1.debugPrint.inlineShorthand);
54
+ let [blockShorthands, s4] = add(cnew.blockShorthands, cold.blockShorthands, debug_print_1.debugPrint.blockShorthand);
55
+ return [{
56
+ usedModules: cnew.usedModules.union(cold.usedModules),
57
+ blocks, inlines, inlineShorthands, blockShorthands
58
+ },
59
+ (s1 ? s1 + '; ' : '')
60
+ + (s2 ? s2 + '; ' : '')
61
+ + (s3 ? 'inline shorthand ' + s3 + '; ' : '')
62
+ + (s4 ? 'block shorthand ' + s4 : '')];
63
+ }
64
+ exports.ModuleMod = new interface_1.BlockModifierDefinition('module', interface_1.ModifierSlotType.Normal, {
65
+ expand(node) {
66
+ // no need to clone?
67
+ return []; // node.content;
68
+ },
69
+ beforeParseContent(node, cxt) {
70
+ const check = (0, modifier_helper_1.checkArguments)(node, 1);
71
+ if (check)
72
+ return check;
73
+ const data = cxt.get(internal_1.builtins);
74
+ const name = node.arguments[0].expansion;
75
+ const defs = getDefs(cxt);
76
+ if (data.insideModule !== undefined) {
77
+ return [new messages_1.NoNestedModuleMessage(node.head)];
78
+ }
79
+ let msgs = [];
80
+ node.state = { name, defs };
81
+ data.insideModule = name;
82
+ if (data.modules.has(name)) {
83
+ const [added, msg] = addDef(defs, data.modules.get(name));
84
+ if (msg)
85
+ msgs.push(new messages_1.OverwriteDefinitionsMessage(node.head, msg));
86
+ applyDefs(cxt, added);
87
+ debug_1.debug.trace('entering defs for module', name, '(earlier data loaded)');
88
+ }
89
+ else {
90
+ debug_1.debug.trace('entering defs for module', name);
91
+ }
92
+ return msgs;
93
+ },
94
+ afterParseContent(node, cxt) {
95
+ if (!node.state)
96
+ return [];
97
+ const data = cxt.get(internal_1.builtins);
98
+ data.insideModule = undefined;
99
+ data.modules.set(node.state.name, diffDef(getDefs(cxt), node.state.defs));
100
+ applyDefs(cxt, node.state.defs);
101
+ debug_1.debug.trace('exiting defs for module', node.state.name);
102
+ return [];
103
+ },
104
+ });
105
+ exports.UseSystemMod = new interface_1.SystemModifierDefinition('use', interface_1.ModifierSlotType.None, {
106
+ prepareExpand(node, cxt) {
107
+ const check = (0, modifier_helper_1.checkArguments)(node, 1);
108
+ if (check)
109
+ return check;
110
+ const data = cxt.get(internal_1.builtins);
111
+ const name = node.arguments[0];
112
+ if (!data.modules.has(name.expansion))
113
+ return [new messages_1.InvalidArgumentMessage(name.location)];
114
+ if (data.insideModule === name.expansion)
115
+ return [new messages_1.CannotUseModuleInSelfMessage(name.location)];
116
+ const [added, msg] = addDef(data.modules.get(name.expansion), getDefs(cxt));
117
+ node.state = added;
118
+ if (msg)
119
+ return [new messages_1.OverwriteDefinitionsMessage(node.head, msg)];
120
+ return [];
121
+ },
122
+ expand(node, cxt) {
123
+ if (node.state)
124
+ applyDefs(cxt, node.state);
125
+ return [];
126
+ },
127
+ });
128
+ exports.UseBlockMod = new interface_1.BlockModifierDefinition('use', interface_1.ModifierSlotType.Normal, {
129
+ beforeParseContent(node, cxt) {
130
+ const check = (0, modifier_helper_1.checkArguments)(node, 1);
131
+ if (check)
132
+ return check;
133
+ const data = cxt.get(internal_1.builtins);
134
+ const name = node.arguments[0];
135
+ if (!data.modules.has(name.expansion))
136
+ return [new messages_1.InvalidArgumentMessage(name.location)];
137
+ if (data.insideModule === name.expansion)
138
+ return [new messages_1.CannotUseModuleInSelfMessage(name.location)];
139
+ const old = getDefs(cxt);
140
+ const [added, msg] = addDef(data.modules.get(name.expansion), old);
141
+ applyDefs(cxt, added);
142
+ node.state = { old };
143
+ if (msg)
144
+ return [new messages_1.OverwriteDefinitionsMessage(node.head, msg)];
145
+ return [];
146
+ },
147
+ afterParseContent(node, cxt) {
148
+ if (node.state)
149
+ applyDefs(cxt, node.state.old);
150
+ return [];
151
+ },
152
+ expand(node) {
153
+ return node.content;
154
+ },
155
+ });
156
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/builtin/module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BlockModifierDefinition, InlineModifierDefinition } from "../interface";
2
+ export declare const SlotBlockMod: BlockModifierDefinition<any>;
3
+ export declare const SlotInlineMod: InlineModifierDefinition<any>;
4
+ export declare const PreSlotBlockMod: BlockModifierDefinition<any>;
5
+ export declare const PreSlotInlineMod: InlineModifierDefinition<any>;
6
+ export declare const InjectPreSlotBlockMod: BlockModifierDefinition<any>;
7
+ export declare const InjectPreSlotInlineMod: InlineModifierDefinition<any>;
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectPreSlotInlineMod = exports.InjectPreSlotBlockMod = exports.PreSlotInlineMod = exports.PreSlotBlockMod = exports.SlotInlineMod = exports.SlotBlockMod = 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 slotModifier(name, type, preformatted, inject) {
11
+ const mod = (type == interface_1.NodeType.BlockModifier
12
+ ? new interface_1.BlockModifierDefinition(name, interface_1.ModifierSlotType.None)
13
+ : new interface_1.InlineModifierDefinition(name, interface_1.ModifierSlotType.None));
14
+ const isInline = type == interface_1.NodeType.InlineModifier;
15
+ mod.alwaysTryExpand = true;
16
+ mod.prepareExpand = (node, cxt, immediate) => {
17
+ if (node.state)
18
+ return [];
19
+ function processSignature(s) {
20
+ if (s.preformatted === undefined) {
21
+ s.preformatted = preformatted;
22
+ debug_1.debug.trace('set preformatted to ', preformatted);
23
+ }
24
+ else if (s.preformatted !== preformatted) {
25
+ return [new messages_1.EitherNormalOrPreMessage(node.location)];
26
+ }
27
+ return [];
28
+ }
29
+ // check args
30
+ const check = inject
31
+ ? (0, modifier_helper_1.checkArguments)(node, 1, 2)
32
+ : (0, modifier_helper_1.checkArguments)(node, 0, 1);
33
+ if (check) {
34
+ node.state = { ok: false };
35
+ return check;
36
+ }
37
+ const msgs = (() => {
38
+ const store = cxt.get(internal_1.builtins);
39
+ const data = isInline ? store.inlineInstantiationData : store.blockInstantiationData;
40
+ const stack = isInline ? store.inlineSlotDelayedStack : store.blockSlotDelayedStack;
41
+ // check inside definition
42
+ if (data.length == 0 && stack.length == 0) {
43
+ node.state = { ok: false };
44
+ return [new messages_1.SlotUsedOutsideDefinitionMessage(node.location)];
45
+ }
46
+ // find default
47
+ if (node.arguments.length == (inject ? 1 : 0)) {
48
+ let signature = stack.at(-1);
49
+ if (signature)
50
+ return processSignature(signature); // delay
51
+ node.state = { ok: true, data: data.at(-1), index: data.length - 1 };
52
+ return;
53
+ }
54
+ // find id
55
+ const id = node.arguments[0].expansion;
56
+ let signature = stack.find((x) => x.slotName == id);
57
+ if (signature)
58
+ return processSignature(signature); // delay
59
+ for (let i = data.length - 1; i >= 0; i--)
60
+ if (data[i].slotName === id) {
61
+ node.state = { ok: true, data: data[i], index: i };
62
+ return;
63
+ }
64
+ // not found
65
+ if (immediate) {
66
+ node.state = { ok: false };
67
+ const arg = node.arguments[0];
68
+ return [new messages_1.InvalidArgumentMessage(arg.location, id)];
69
+ }
70
+ })();
71
+ if (inject) {
72
+ const arg = node.arguments.at(-1);
73
+ const modName = arg.expansion;
74
+ const mod = (isInline
75
+ ? cxt.config.inlineModifiers
76
+ : cxt.config.blockModifiers).get(modName);
77
+ if (!mod) {
78
+ node.state = { ok: false };
79
+ return [new messages_1.UnknownModifierMessage(arg.location, modName)];
80
+ }
81
+ if (node.state?.ok)
82
+ node.state.injectMod = mod;
83
+ }
84
+ if (msgs)
85
+ return msgs;
86
+ return [];
87
+ };
88
+ mod.expand = (node, cxt) => {
89
+ if (!node.state)
90
+ return undefined;
91
+ if (!node.state.ok)
92
+ return [];
93
+ let cloned = (0, util_1.cloneNodes)(node.state.data.slotContent);
94
+ if (inject) {
95
+ const mod = node.state.injectMod;
96
+ const modNode = {
97
+ type, mod,
98
+ location: node.location,
99
+ head: node.head,
100
+ arguments: [], // TODO: enable injecting args
101
+ content: cloned
102
+ };
103
+ return [modNode];
104
+ }
105
+ else
106
+ return cloned;
107
+ };
108
+ mod.beforeProcessExpansion = (node, cxt) => {
109
+ // TODO: not sure if this works
110
+ if (!node.state?.ok)
111
+ return [];
112
+ const store = cxt.get(internal_1.builtins);
113
+ debug_1.debug.trace('temporarily removed slot data for', node.state.data.mod.name);
114
+ const data = isInline ? store.inlineInstantiationData : store.blockInstantiationData;
115
+ data.splice(node.state.index, 1);
116
+ return [];
117
+ };
118
+ mod.afterProcessExpansion = (node, cxt) => {
119
+ // TODO: not sure if this works
120
+ if (!node.state?.ok)
121
+ return [];
122
+ const store = cxt.get(internal_1.builtins);
123
+ debug_1.debug.trace('reinstated slot data for', node.state.data.mod.name);
124
+ const data = isInline ? store.inlineInstantiationData : store.blockInstantiationData;
125
+ data.splice(node.state.index, 0, node.state.data);
126
+ return [];
127
+ };
128
+ return mod;
129
+ }
130
+ exports.SlotBlockMod = slotModifier('slot', interface_1.NodeType.BlockModifier, false, false);
131
+ exports.SlotInlineMod = slotModifier('slot', interface_1.NodeType.InlineModifier, false, false);
132
+ exports.PreSlotBlockMod = slotModifier('pre-slot', interface_1.NodeType.BlockModifier, true, false);
133
+ exports.PreSlotInlineMod = slotModifier('pre-slot', interface_1.NodeType.InlineModifier, true, false);
134
+ exports.InjectPreSlotBlockMod = slotModifier('inject-pre-slot', interface_1.NodeType.BlockModifier, true, true);
135
+ exports.InjectPreSlotInlineMod = slotModifier('inject-pre-slot', interface_1.NodeType.InlineModifier, true, true);
136
+ //# sourceMappingURL=slot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slot.js","sourceRoot":"","sources":["../../../src/builtin/slot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { InlineModifierDefinition, ArgumentInterpolatorDefinition, SystemModifierDefinition } from "../interface";
2
+ export declare const GetVarInlineMod: InlineModifierDefinition<{
3
+ value: string;
4
+ }>;
5
+ export declare const PrintInlineMod: InlineModifierDefinition<{
6
+ value: string;
7
+ }>;
8
+ export declare const GetVarInterpolator: ArgumentInterpolatorDefinition;
9
+ export declare const VarMod: SystemModifierDefinition<{
10
+ id: string;
11
+ value: string;
12
+ }>;
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VarMod = exports.GetVarInterpolator = exports.PrintInlineMod = exports.GetVarInlineMod = void 0;
4
+ const debug_1 = require("../debug");
5
+ const interface_1 = require("../interface");
6
+ const messages_1 = require("../messages");
7
+ const internal_1 = require("./internal");
8
+ const modifier_helper_1 = require("../modifier-helper");
9
+ function resolveId(id, cxt) {
10
+ const store = cxt.get(internal_1.builtins);
11
+ // delay if it is a yet unknown argument
12
+ if (store.inlineSlotDelayedStack.find((x) => x.args.includes(id))
13
+ || store.blockSlotDelayedStack.find((x) => x.args.includes(id))) {
14
+ debug_1.debug.trace('delaying the yet unknown argument', id);
15
+ return undefined;
16
+ }
17
+ let value = undefined;
18
+ for (let i = store.inlineInstantiationData.length - 1; i >= 0; i--) {
19
+ const data = store.inlineInstantiationData[i];
20
+ if ((value = data.args.get(id)) !== undefined)
21
+ break;
22
+ }
23
+ for (let i = store.blockInstantiationData.length - 1; i >= 0; i--) {
24
+ const data = store.blockInstantiationData[i];
25
+ if ((value = data.args.get(id)) !== undefined)
26
+ break;
27
+ }
28
+ if (value === undefined)
29
+ value = cxt.variables.get(id);
30
+ return value;
31
+ }
32
+ exports.GetVarInlineMod = new interface_1.InlineModifierDefinition('$', interface_1.ModifierSlotType.None, {
33
+ alwaysTryExpand: true,
34
+ // .$:id
35
+ prepareExpand(node, cxt, immediate) {
36
+ const check = (0, modifier_helper_1.checkArguments)(node, 1);
37
+ if (check)
38
+ return immediate ? check : [];
39
+ const arg = node.arguments[0];
40
+ const id = arg.expansion;
41
+ if (id == '')
42
+ return immediate ? [new messages_1.InvalidArgumentMessage(arg.location)] : [];
43
+ const value = resolveId(id, cxt);
44
+ if (value === undefined)
45
+ return immediate ? [new messages_1.UndefinedVariableMessage(arg.location, id)] : [];
46
+ node.state = { value };
47
+ return [];
48
+ },
49
+ expand(node, _, immediate) {
50
+ if (!node.state)
51
+ return immediate ? [] : undefined;
52
+ return [{ type: interface_1.NodeType.Text, content: node.state.value, location: node.location }];
53
+ },
54
+ });
55
+ exports.PrintInlineMod = new interface_1.InlineModifierDefinition('print', interface_1.ModifierSlotType.None, {
56
+ // .print:args...
57
+ prepareExpand(node) {
58
+ const check = (0, modifier_helper_1.checkArguments)(node);
59
+ if (check)
60
+ return check;
61
+ node.state = { value: node.arguments.map((x) => x.expansion).join('') };
62
+ return [];
63
+ },
64
+ expand(node) {
65
+ if (!node.state)
66
+ return [];
67
+ return [{ type: interface_1.NodeType.Text, content: node.state.value, location: node.location }];
68
+ },
69
+ });
70
+ exports.GetVarInterpolator = new interface_1.ArgumentInterpolatorDefinition('$(', ')', {
71
+ alwaysTryExpand: true,
72
+ expand(content, cxt) {
73
+ const result = resolveId(content, cxt);
74
+ if (result !== undefined)
75
+ debug_1.debug.trace(`$(${content}) --> ${result}`);
76
+ return result;
77
+ },
78
+ });
79
+ exports.VarMod = new interface_1.SystemModifierDefinition('var', interface_1.ModifierSlotType.None, {
80
+ // .var id:value
81
+ prepareExpand(node, cxt) {
82
+ const check = (0, modifier_helper_1.checkArguments)(node, 2);
83
+ if (check)
84
+ return check;
85
+ const arg = node.arguments[0];
86
+ const id = arg.expansion;
87
+ if (id == '')
88
+ return [new messages_1.InvalidArgumentMessage(arg.location)];
89
+ node.state = {
90
+ id,
91
+ value: node.arguments[1].expansion
92
+ };
93
+ return [];
94
+ },
95
+ expand(node, cxt) {
96
+ if (node.state) {
97
+ cxt.variables.set(node.state.id, node.state.value);
98
+ debug_1.debug.trace('set variable', node.state.id, '=', node.state.value);
99
+ }
100
+ return [];
101
+ },
102
+ });
103
+ //# sourceMappingURL=var.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"var.js","sourceRoot":"","sources":["../../../src/builtin/var.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ModifierArgument, Message, BlockModifierDefinition, BlockShorthand, InlineModifierDefinition, InlineShorthand, BlockEntity, InlineEntity, SourceDescriptor } from "./interface";
2
+ import { Document } from "./parser-config";
3
+ export declare const debugPrint: {
4
+ blockModifier: (x: BlockModifierDefinition<any>) => string;
5
+ inlineModifier: (x: InlineModifierDefinition<any>) => string;
6
+ inlineShorthand: (x: InlineShorthand<any>) => string;
7
+ blockShorthand: (x: BlockShorthand<any>) => string;
8
+ argument: (arg: ModifierArgument) => string;
9
+ node: (...nodes: (BlockEntity | InlineEntity)[]) => string;
10
+ message: (m: Message, source?: string, descriptor?: SourceDescriptor) => string;
11
+ document: typeof debugDumpDocument;
12
+ };
13
+ declare function debugDumpDocument(doc: Document, source: string): string;
14
+ export {};
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debugPrint = void 0;
4
+ const debug_1 = require("./debug");
5
+ const interface_1 = require("./interface");
6
+ const util_1 = require("./util");
7
+ exports.debugPrint = {
8
+ blockModifier: (x) => `[.${x.name}] (${interface_1.ModifierSlotType[x.slotType]})`,
9
+ inlineModifier: (x) => `[/${x.name}] (${interface_1.ModifierSlotType[x.slotType]})`,
10
+ inlineShorthand: (x) => x.name + x.parts.map((x, i) => ` .. <arg${i}> .. ${x}`).join('')
11
+ + (x.mod.slotType == interface_1.ModifierSlotType.None
12
+ ? '' : ` .. <slot> .. ${x.postfix ?? '<no postfix>'}`),
13
+ blockShorthand: (x) => x.name + x.parts.map((x, i) => ` .. <arg${i}> .. ${x}`).join('')
14
+ + (x.mod.slotType == interface_1.ModifierSlotType.None
15
+ ? '' : ` .. <slot> .. ${x.postfix ?? '<no postfix>'}`),
16
+ argument: (arg) => arg.content.map(debugPrintArgEntity).join(''),
17
+ node: (...nodes) => nodes.map((x) => debugPrintNode(x)).join('\n'),
18
+ message: (m, source, descriptor) => debugPrintMsg(m, descriptor, source),
19
+ document: debugDumpDocument
20
+ };
21
+ function debugPrintArgEntity(node) {
22
+ switch (node.type) {
23
+ case interface_1.NodeType.Text:
24
+ return node.content;
25
+ case interface_1.NodeType.Escaped:
26
+ return `<Escaped:${node.content}>`;
27
+ case interface_1.NodeType.Interpolation:
28
+ return `<Interp:${node.definition.name}-${node.definition.postfix}:${exports.debugPrint.argument(node.argument)}${node.expansion ? `=${node.expansion}` : ''}>`;
29
+ default:
30
+ return debug_1.debug.never(node);
31
+ }
32
+ }
33
+ function debugPrintNode(node, prefix = '') {
34
+ function debugPrintNodes(content, prefix = '') {
35
+ let dumps = content.map((x) => debugPrintNode(x, prefix + ' ')).filter((x) => x.length > 0);
36
+ if (dumps.length == 0)
37
+ return '';
38
+ return dumps.map((x) => `${prefix} ${x}`).join('\n');
39
+ }
40
+ let result = `<${interface_1.NodeType[node.type]}@${node.location.start}`;
41
+ switch (node.type) {
42
+ case interface_1.NodeType.Paragraph:
43
+ const content = debugPrintNodes(node.content, prefix);
44
+ if (content.length > 0)
45
+ result += `>\n${content}\n${prefix}</${interface_1.NodeType[node.type]}@${node.location.end}>`;
46
+ else
47
+ result += `-${node.location.end} />`;
48
+ break;
49
+ case interface_1.NodeType.Escaped:
50
+ result += `>\n${prefix} ${node.content}\n${prefix}</${interface_1.NodeType[node.type]}@${node.location.end}>`;
51
+ break;
52
+ case interface_1.NodeType.Preformatted:
53
+ result += `>\n${prefix} ${node.content.text}\n${prefix}</${interface_1.NodeType[node.type]}@${node.location.end}>`;
54
+ break;
55
+ case interface_1.NodeType.InlineModifier:
56
+ case interface_1.NodeType.BlockModifier:
57
+ case interface_1.NodeType.SystemModifier:
58
+ const args = node.arguments.map((x, i) => `\n${prefix} (${i})@${x.location.start}-${x.location.end}=${exports.debugPrint.argument(x)}`).join('');
59
+ if (node.content.length > 0) {
60
+ result += ` id=${node.mod.name}${args}>\n` + debugPrintNodes(node.content, prefix) + `\n${prefix}</${interface_1.NodeType[node.type]}@${node.location.end}>`;
61
+ }
62
+ else
63
+ result += `-${node.location.end} id=${node.mod.name}${args} />`;
64
+ if (node.expansion) {
65
+ const content = debugPrintNodes(node.expansion, prefix);
66
+ if (content.length > 0)
67
+ result += `\n${prefix}<expansion>\n${content}\n${prefix}</expansion>`;
68
+ else if (node.type != interface_1.NodeType.SystemModifier)
69
+ result += `\n${prefix}<expansion />`;
70
+ }
71
+ break;
72
+ case interface_1.NodeType.Text:
73
+ return node.content;
74
+ default:
75
+ return debug_1.debug.never(node);
76
+ }
77
+ return result;
78
+ }
79
+ function debugPrintMsg(m, descriptor, source) {
80
+ let pos = (pos) => `@${pos}`;
81
+ if (source) {
82
+ const lines = (0, util_1.linePositions)(source);
83
+ pos = (pos) => {
84
+ let line = -1, linepos = 0;
85
+ for (let i = 1; i < lines.length; i++) {
86
+ if (lines[i] > pos) {
87
+ line = i;
88
+ linepos = lines[i - 1];
89
+ break;
90
+ }
91
+ }
92
+ return `l${line}c${pos - linepos + 1}`;
93
+ };
94
+ }
95
+ let loc = m.location;
96
+ let result = `at ${pos(loc.start)}-${pos(loc.end)}: ${interface_1.MessageSeverity[m.severity]}[${m.code}]: ${m.info}`;
97
+ if (descriptor && m.location.source !== descriptor) {
98
+ result += `\nwarning: source descriptor mismatch: ${m.location.source.name}`;
99
+ }
100
+ while (loc = loc.original) {
101
+ let d = loc.source !== m.location.source ? `(in ${loc.source.name}) ` : '';
102
+ result += `\n---> original at: ${d}${pos(loc.start)}-${pos(loc.end)}`;
103
+ }
104
+ return result;
105
+ }
106
+ function debugDumpDocument(doc, source) {
107
+ let root = exports.debugPrint.node(...doc.root.content);
108
+ let msgs = doc.messages.map((x) => debugPrintMsg(x, doc.root.source, source)).join('\n');
109
+ if (msgs.length > 0)
110
+ msgs += '\n';
111
+ return `Document: ${doc.root.source.name}\n${msgs}${root}`;
112
+ }
113
+ //# sourceMappingURL=debug-print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug-print.js","sourceRoot":"","sources":["../../src/debug-print.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare enum DebugLevel {
2
+ Trace = 0,
3
+ Info = 1,
4
+ Warning = 2,
5
+ Error = 3,
6
+ None = 4
7
+ }
8
+ export declare const debug: {
9
+ level: DebugLevel;
10
+ trace(arg0: any, ...args: any): void;
11
+ info(arg0: any, ...args: any): void;
12
+ warning(arg0: any, ...args: any): void;
13
+ error(arg0: any, ...args: any): void;
14
+ never(_: never): never;
15
+ };