@jsprismarine/brigadier 0.2.1 → 0.3.0

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 (269) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -21
  3. package/README.md +85 -81
  4. package/dist/CommandSyntaxException-BKBHJvxr.cjs +173 -0
  5. package/dist/CommandSyntaxException-Dz8Qlq9d.js +168 -0
  6. package/dist/LiteralArgumentBuilder-2hpX2C86.js +121 -0
  7. package/dist/LiteralArgumentBuilder-s6PUMmST.cjs +125 -0
  8. package/dist/RequiredArgumentBuilder-D105occO.js +144 -0
  9. package/dist/RequiredArgumentBuilder-DMJ4kl0u.cjs +148 -0
  10. package/dist/index.cjs.js +63 -0
  11. package/dist/index.d.ts +25 -0
  12. package/dist/index.d.ts.map +1 -0
  13. package/dist/index.es.js +31 -0
  14. package/dist/lib/AmbiguityConsumer.cjs.js +3 -0
  15. package/dist/lib/AmbiguityConsumer.d.ts +6 -0
  16. package/dist/lib/AmbiguityConsumer.d.ts.map +1 -0
  17. package/dist/lib/AmbiguityConsumer.es.js +2 -0
  18. package/dist/lib/Command.cjs.js +3 -0
  19. package/dist/lib/Command.d.ts +6 -0
  20. package/dist/lib/Command.d.ts.map +1 -0
  21. package/dist/lib/Command.es.js +2 -0
  22. package/dist/lib/CommandDispatcher.cjs.js +369 -0
  23. package/dist/lib/CommandDispatcher.d.ts +31 -0
  24. package/dist/lib/CommandDispatcher.d.ts.map +1 -0
  25. package/dist/lib/CommandDispatcher.es.js +365 -0
  26. package/dist/lib/ImmutableStringReader.cjs.js +3 -0
  27. package/dist/lib/ImmutableStringReader.d.ts +13 -0
  28. package/dist/lib/ImmutableStringReader.d.ts.map +1 -0
  29. package/dist/lib/ImmutableStringReader.es.js +2 -0
  30. package/dist/lib/LiteralMessage.cjs.js +19 -0
  31. package/dist/lib/LiteralMessage.d.ts +9 -0
  32. package/dist/lib/LiteralMessage.d.ts.map +1 -0
  33. package/dist/lib/LiteralMessage.es.js +15 -0
  34. package/dist/lib/Message.cjs.js +3 -0
  35. package/dist/lib/Message.d.ts +4 -0
  36. package/dist/lib/Message.d.ts.map +1 -0
  37. package/dist/lib/Message.es.js +2 -0
  38. package/dist/lib/ParseResults.cjs.js +30 -0
  39. package/dist/lib/ParseResults.d.ts +15 -0
  40. package/dist/lib/ParseResults.d.ts.map +1 -0
  41. package/dist/lib/ParseResults.es.js +26 -0
  42. package/dist/lib/Predicate.cjs.js +3 -0
  43. package/dist/lib/Predicate.d.ts +4 -0
  44. package/dist/lib/Predicate.d.ts.map +1 -0
  45. package/dist/lib/Predicate.es.js +2 -0
  46. package/dist/lib/RedirectModifier.cjs.js +3 -0
  47. package/dist/lib/RedirectModifier.d.ts +6 -0
  48. package/dist/lib/RedirectModifier.d.ts.map +1 -0
  49. package/dist/lib/RedirectModifier.es.js +2 -0
  50. package/dist/lib/ResultConsumer.cjs.js +3 -0
  51. package/dist/lib/ResultConsumer.d.ts +6 -0
  52. package/dist/lib/ResultConsumer.d.ts.map +1 -0
  53. package/dist/lib/ResultConsumer.es.js +2 -0
  54. package/dist/lib/SingleRedirectModifier.cjs.js +3 -0
  55. package/dist/lib/SingleRedirectModifier.d.ts +6 -0
  56. package/dist/lib/SingleRedirectModifier.d.ts.map +1 -0
  57. package/dist/lib/SingleRedirectModifier.es.js +2 -0
  58. package/dist/lib/StringReader.cjs.js +164 -0
  59. package/dist/lib/StringReader.d.ts +29 -0
  60. package/dist/lib/StringReader.d.ts.map +1 -0
  61. package/dist/lib/StringReader.es.js +160 -0
  62. package/dist/lib/arguments/ArgumentType.cjs.js +23 -0
  63. package/dist/lib/arguments/ArgumentType.d.ts +23 -0
  64. package/dist/lib/arguments/ArgumentType.d.ts.map +1 -0
  65. package/dist/lib/arguments/ArgumentType.es.js +19 -0
  66. package/dist/lib/arguments/BoolArgumentType.cjs.js +33 -0
  67. package/dist/lib/arguments/BoolArgumentType.d.ts +15 -0
  68. package/dist/lib/arguments/BoolArgumentType.d.ts.map +1 -0
  69. package/dist/lib/arguments/BoolArgumentType.es.js +29 -0
  70. package/dist/lib/arguments/FloatArgumentType.cjs.js +71 -0
  71. package/dist/lib/arguments/FloatArgumentType.d.ts +18 -0
  72. package/dist/lib/arguments/FloatArgumentType.d.ts.map +1 -0
  73. package/dist/lib/arguments/FloatArgumentType.es.js +67 -0
  74. package/dist/lib/arguments/IntegerArgumentType.cjs.js +71 -0
  75. package/dist/lib/arguments/IntegerArgumentType.d.ts +18 -0
  76. package/dist/lib/arguments/IntegerArgumentType.d.ts.map +1 -0
  77. package/dist/lib/arguments/IntegerArgumentType.es.js +67 -0
  78. package/dist/lib/arguments/StringArgumentType.cjs.js +73 -0
  79. package/dist/lib/arguments/StringArgumentType.d.ts +23 -0
  80. package/dist/lib/arguments/StringArgumentType.d.ts.map +1 -0
  81. package/dist/lib/arguments/StringArgumentType.es.js +68 -0
  82. package/dist/lib/builder/ArgumentBuilder.cjs.js +72 -0
  83. package/dist/lib/builder/ArgumentBuilder.d.ts +30 -0
  84. package/dist/lib/builder/ArgumentBuilder.d.ts.map +1 -0
  85. package/dist/lib/builder/ArgumentBuilder.es.js +68 -0
  86. package/dist/lib/builder/LiteralArgumentBuilder.cjs.js +20 -0
  87. package/dist/lib/builder/LiteralArgumentBuilder.d.ts +13 -0
  88. package/dist/lib/builder/LiteralArgumentBuilder.d.ts.map +1 -0
  89. package/dist/lib/builder/LiteralArgumentBuilder.es.js +11 -0
  90. package/dist/lib/builder/RequiredArgumentBuilder.cjs.js +21 -0
  91. package/dist/lib/builder/RequiredArgumentBuilder.d.ts +20 -0
  92. package/dist/lib/builder/RequiredArgumentBuilder.d.ts.map +1 -0
  93. package/dist/lib/builder/RequiredArgumentBuilder.es.js +12 -0
  94. package/dist/lib/context/CommandContext.cjs.js +117 -0
  95. package/dist/lib/context/CommandContext.d.ts +35 -0
  96. package/dist/lib/context/CommandContext.d.ts.map +1 -0
  97. package/dist/lib/context/CommandContext.es.js +113 -0
  98. package/dist/lib/context/CommandContextBuilder.cjs.js +142 -0
  99. package/dist/lib/context/CommandContextBuilder.d.ts +40 -0
  100. package/dist/lib/context/CommandContextBuilder.d.ts.map +1 -0
  101. package/dist/lib/context/CommandContextBuilder.es.js +138 -0
  102. package/dist/lib/context/ParsedArgument.cjs.js +30 -0
  103. package/dist/lib/context/ParsedArgument.d.ts +11 -0
  104. package/dist/lib/context/ParsedArgument.d.ts.map +1 -0
  105. package/dist/lib/context/ParsedArgument.es.js +26 -0
  106. package/dist/lib/context/ParsedCommandNode.cjs.js +32 -0
  107. package/dist/lib/context/ParsedCommandNode.d.ts +13 -0
  108. package/dist/lib/context/ParsedCommandNode.d.ts.map +1 -0
  109. package/dist/lib/context/ParsedCommandNode.es.js +28 -0
  110. package/dist/lib/context/StringRange.cjs.js +52 -0
  111. package/dist/lib/context/StringRange.d.ts +18 -0
  112. package/dist/lib/context/StringRange.d.ts.map +1 -0
  113. package/dist/lib/context/StringRange.es.js +48 -0
  114. package/dist/lib/context/SuggestionContext.cjs.js +15 -0
  115. package/dist/lib/context/SuggestionContext.d.ts +8 -0
  116. package/dist/lib/context/SuggestionContext.d.ts.map +1 -0
  117. package/dist/lib/context/SuggestionContext.es.js +11 -0
  118. package/dist/lib/exceptions/BuiltInExceptionProvider.cjs.js +3 -0
  119. package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts +25 -0
  120. package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts.map +1 -0
  121. package/dist/lib/exceptions/BuiltInExceptionProvider.es.js +2 -0
  122. package/dist/lib/exceptions/BuiltInExceptions.cjs.js +11 -0
  123. package/dist/lib/exceptions/BuiltInExceptions.d.ts +45 -0
  124. package/dist/lib/exceptions/BuiltInExceptions.d.ts.map +1 -0
  125. package/dist/lib/exceptions/BuiltInExceptions.es.js +3 -0
  126. package/dist/lib/exceptions/CommandExceptionType.cjs.js +3 -0
  127. package/dist/lib/exceptions/CommandExceptionType.d.ts +3 -0
  128. package/dist/lib/exceptions/CommandExceptionType.d.ts.map +1 -0
  129. package/dist/lib/exceptions/CommandExceptionType.es.js +2 -0
  130. package/dist/lib/exceptions/CommandSyntaxException.cjs.js +11 -0
  131. package/dist/lib/exceptions/CommandSyntaxException.d.ts +21 -0
  132. package/dist/lib/exceptions/CommandSyntaxException.d.ts.map +1 -0
  133. package/dist/lib/exceptions/CommandSyntaxException.es.js +3 -0
  134. package/dist/lib/exceptions/DynamicCommandExceptionType.cjs.js +11 -0
  135. package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts +12 -0
  136. package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts.map +1 -0
  137. package/dist/lib/exceptions/DynamicCommandExceptionType.es.js +3 -0
  138. package/dist/lib/exceptions/SimpleCommandExceptionType.cjs.js +11 -0
  139. package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts +13 -0
  140. package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts.map +1 -0
  141. package/dist/lib/exceptions/SimpleCommandExceptionType.es.js +3 -0
  142. package/dist/lib/suggestion/IntegerSuggestion.cjs.js +39 -0
  143. package/dist/lib/suggestion/IntegerSuggestion.d.ts +14 -0
  144. package/dist/lib/suggestion/IntegerSuggestion.d.ts.map +1 -0
  145. package/dist/lib/suggestion/IntegerSuggestion.es.js +35 -0
  146. package/dist/lib/suggestion/Suggestion.cjs.js +72 -0
  147. package/dist/lib/suggestion/Suggestion.d.ts +19 -0
  148. package/dist/lib/suggestion/Suggestion.d.ts.map +1 -0
  149. package/dist/lib/suggestion/Suggestion.es.js +68 -0
  150. package/dist/lib/suggestion/SuggestionProvider.cjs.js +3 -0
  151. package/dist/lib/suggestion/SuggestionProvider.d.ts +8 -0
  152. package/dist/lib/suggestion/SuggestionProvider.d.ts.map +1 -0
  153. package/dist/lib/suggestion/SuggestionProvider.es.js +2 -0
  154. package/dist/lib/suggestion/Suggestions.cjs.js +71 -0
  155. package/dist/lib/suggestion/Suggestions.d.ts +18 -0
  156. package/dist/lib/suggestion/Suggestions.d.ts.map +1 -0
  157. package/dist/lib/suggestion/Suggestions.es.js +67 -0
  158. package/dist/lib/suggestion/SuggestionsBuilder.cjs.js +59 -0
  159. package/dist/lib/suggestion/SuggestionsBuilder.d.ts +20 -0
  160. package/dist/lib/suggestion/SuggestionsBuilder.d.ts.map +1 -0
  161. package/dist/lib/suggestion/SuggestionsBuilder.es.js +55 -0
  162. package/dist/lib/tree/ArgumentCommandNode.cjs.js +20 -0
  163. package/dist/lib/tree/ArgumentCommandNode.d.ts +33 -0
  164. package/dist/lib/tree/ArgumentCommandNode.d.ts.map +1 -0
  165. package/dist/lib/tree/ArgumentCommandNode.es.js +12 -0
  166. package/dist/lib/tree/CommandNode.cjs.js +133 -0
  167. package/dist/lib/tree/CommandNode.d.ts +47 -0
  168. package/dist/lib/tree/CommandNode.d.ts.map +1 -0
  169. package/dist/lib/tree/CommandNode.es.js +129 -0
  170. package/dist/lib/tree/LiteralCommandNode.cjs.js +19 -0
  171. package/dist/lib/tree/LiteralCommandNode.d.ts +29 -0
  172. package/dist/lib/tree/LiteralCommandNode.d.ts.map +1 -0
  173. package/dist/lib/tree/LiteralCommandNode.es.js +11 -0
  174. package/dist/lib/tree/RootCommandNode.cjs.js +59 -0
  175. package/dist/lib/tree/RootCommandNode.d.ts +23 -0
  176. package/dist/lib/tree/RootCommandNode.d.ts.map +1 -0
  177. package/dist/lib/tree/RootCommandNode.es.js +55 -0
  178. package/dist/lib/util/isEqual.cjs.js +59 -0
  179. package/dist/lib/util/isEqual.d.ts +2 -0
  180. package/dist/lib/util/isEqual.d.ts.map +1 -0
  181. package/dist/lib/util/isEqual.es.js +55 -0
  182. package/package.json +40 -41
  183. package/dist/index.js +0 -82
  184. package/dist/index.js.map +0 -1
  185. package/dist/lib/AmbiguityConsumer.js +0 -3
  186. package/dist/lib/AmbiguityConsumer.js.map +0 -1
  187. package/dist/lib/Command.js +0 -3
  188. package/dist/lib/Command.js.map +0 -1
  189. package/dist/lib/CommandDispatcher.js +0 -360
  190. package/dist/lib/CommandDispatcher.js.map +0 -1
  191. package/dist/lib/ImmutableStringReader.js +0 -3
  192. package/dist/lib/ImmutableStringReader.js.map +0 -1
  193. package/dist/lib/LiteralMessage.js +0 -15
  194. package/dist/lib/LiteralMessage.js.map +0 -1
  195. package/dist/lib/Message.js +0 -3
  196. package/dist/lib/Message.js.map +0 -1
  197. package/dist/lib/ParseResults.js +0 -24
  198. package/dist/lib/ParseResults.js.map +0 -1
  199. package/dist/lib/Predicate.js +0 -3
  200. package/dist/lib/Predicate.js.map +0 -1
  201. package/dist/lib/RedirectModifier.js +0 -3
  202. package/dist/lib/RedirectModifier.js.map +0 -1
  203. package/dist/lib/ResultConsumer.js +0 -3
  204. package/dist/lib/ResultConsumer.js.map +0 -1
  205. package/dist/lib/SingleRedirectModifier.js +0 -3
  206. package/dist/lib/SingleRedirectModifier.js.map +0 -1
  207. package/dist/lib/StringReader.js +0 -176
  208. package/dist/lib/StringReader.js.map +0 -1
  209. package/dist/lib/arguments/ArgumentType.js +0 -19
  210. package/dist/lib/arguments/ArgumentType.js.map +0 -1
  211. package/dist/lib/arguments/BoolArgumentType.js +0 -30
  212. package/dist/lib/arguments/BoolArgumentType.js.map +0 -1
  213. package/dist/lib/arguments/FloatArgumentType.js +0 -61
  214. package/dist/lib/arguments/FloatArgumentType.js.map +0 -1
  215. package/dist/lib/arguments/IntegerArgumentType.js +0 -61
  216. package/dist/lib/arguments/IntegerArgumentType.js.map +0 -1
  217. package/dist/lib/arguments/StringArgumentType.js +0 -71
  218. package/dist/lib/arguments/StringArgumentType.js.map +0 -1
  219. package/dist/lib/builder/ArgumentBuilder.js +0 -66
  220. package/dist/lib/builder/ArgumentBuilder.js.map +0 -1
  221. package/dist/lib/builder/LiteralArgumentBuilder.js +0 -33
  222. package/dist/lib/builder/LiteralArgumentBuilder.js.map +0 -1
  223. package/dist/lib/builder/RequiredArgumentBuilder.js +0 -44
  224. package/dist/lib/builder/RequiredArgumentBuilder.js.map +0 -1
  225. package/dist/lib/context/CommandContext.js +0 -96
  226. package/dist/lib/context/CommandContext.js.map +0 -1
  227. package/dist/lib/context/CommandContextBuilder.js +0 -120
  228. package/dist/lib/context/CommandContextBuilder.js.map +0 -1
  229. package/dist/lib/context/ParsedArgument.js +0 -27
  230. package/dist/lib/context/ParsedArgument.js.map +0 -1
  231. package/dist/lib/context/ParsedCommandNode.js +0 -27
  232. package/dist/lib/context/ParsedCommandNode.js.map +0 -1
  233. package/dist/lib/context/StringRange.js +0 -47
  234. package/dist/lib/context/StringRange.js.map +0 -1
  235. package/dist/lib/context/SuggestionContext.js +0 -10
  236. package/dist/lib/context/SuggestionContext.js.map +0 -1
  237. package/dist/lib/exceptions/BuiltInExceptionProvider.js +0 -3
  238. package/dist/lib/exceptions/BuiltInExceptionProvider.js.map +0 -1
  239. package/dist/lib/exceptions/BuiltInExceptions.js +0 -88
  240. package/dist/lib/exceptions/BuiltInExceptions.js.map +0 -1
  241. package/dist/lib/exceptions/CommandExceptionType.js +0 -3
  242. package/dist/lib/exceptions/CommandExceptionType.js.map +0 -1
  243. package/dist/lib/exceptions/CommandSyntaxException.js +0 -57
  244. package/dist/lib/exceptions/CommandSyntaxException.js.map +0 -1
  245. package/dist/lib/exceptions/DynamicCommandExceptionType.js +0 -20
  246. package/dist/lib/exceptions/DynamicCommandExceptionType.js.map +0 -1
  247. package/dist/lib/exceptions/SimpleCommandExceptionType.js +0 -23
  248. package/dist/lib/exceptions/SimpleCommandExceptionType.js.map +0 -1
  249. package/dist/lib/suggestion/IntegerSuggestion.js +0 -41
  250. package/dist/lib/suggestion/IntegerSuggestion.js.map +0 -1
  251. package/dist/lib/suggestion/Suggestion.js +0 -72
  252. package/dist/lib/suggestion/Suggestion.js.map +0 -1
  253. package/dist/lib/suggestion/SuggestionProvider.js +0 -3
  254. package/dist/lib/suggestion/SuggestionProvider.js.map +0 -1
  255. package/dist/lib/suggestion/Suggestions.js +0 -71
  256. package/dist/lib/suggestion/Suggestions.js.map +0 -1
  257. package/dist/lib/suggestion/SuggestionsBuilder.js +0 -54
  258. package/dist/lib/suggestion/SuggestionsBuilder.js.map +0 -1
  259. package/dist/lib/tree/ArgumentCommandNode.js +0 -97
  260. package/dist/lib/tree/ArgumentCommandNode.js.map +0 -1
  261. package/dist/lib/tree/CommandNode.js +0 -134
  262. package/dist/lib/tree/CommandNode.js.map +0 -1
  263. package/dist/lib/tree/LiteralCommandNode.js +0 -93
  264. package/dist/lib/tree/LiteralCommandNode.js.map +0 -1
  265. package/dist/lib/tree/RootCommandNode.js +0 -50
  266. package/dist/lib/tree/RootCommandNode.js.map +0 -1
  267. package/dist/lib/util/isEqual.js +0 -57
  268. package/dist/lib/util/isEqual.js.map +0 -1
  269. package/index.js +0 -1
@@ -0,0 +1,142 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const lib_context_StringRange = require('./StringRange.cjs.js');
6
+ const lib_context_CommandContext = require('./CommandContext.cjs.js');
7
+ const lib_context_SuggestionContext = require('./SuggestionContext.cjs.js');
8
+ const lib_context_ParsedCommandNode = require('./ParsedCommandNode.cjs.js');
9
+ require('../util/isEqual.cjs.js');
10
+
11
+ class CommandContextBuilder {
12
+ args = /* @__PURE__ */ new Map();
13
+ rootNode;
14
+ nodes = [];
15
+ dispatcher;
16
+ source;
17
+ command;
18
+ child;
19
+ range;
20
+ modifier = null;
21
+ forks;
22
+ constructor(dispatcher, source, rootNode, start) {
23
+ this.rootNode = rootNode;
24
+ this.dispatcher = dispatcher;
25
+ this.source = source;
26
+ this.range = lib_context_StringRange.default.at(start);
27
+ }
28
+ withSource(source) {
29
+ this.source = source;
30
+ return this;
31
+ }
32
+ getSource() {
33
+ return this.source;
34
+ }
35
+ getRootNode() {
36
+ return this.rootNode;
37
+ }
38
+ withArgument(name, argument) {
39
+ this.args.set(name, argument);
40
+ return this;
41
+ }
42
+ getArguments() {
43
+ return this.args;
44
+ }
45
+ withCommand(command) {
46
+ this.command = command;
47
+ return this;
48
+ }
49
+ withNode(node, range) {
50
+ this.nodes.push(new lib_context_ParsedCommandNode.default(node, range));
51
+ this.range = lib_context_StringRange.default.encompassing(this.range, range);
52
+ this.modifier = node.getRedirectModifier();
53
+ this.forks = node.isFork();
54
+ return this;
55
+ }
56
+ copy() {
57
+ const copy = new CommandContextBuilder(
58
+ this.dispatcher,
59
+ this.source,
60
+ this.rootNode,
61
+ this.range.getStart()
62
+ );
63
+ copy.command = this.command;
64
+ copy.args = new Map([...copy.args, ...this.args]);
65
+ copy.nodes.push(...this.nodes);
66
+ copy.child = this.child;
67
+ copy.range = this.range;
68
+ copy.forks = this.forks;
69
+ return copy;
70
+ }
71
+ withChild(child) {
72
+ this.child = child;
73
+ return this;
74
+ }
75
+ getChild() {
76
+ return this.child;
77
+ }
78
+ getLastChild() {
79
+ let result = this;
80
+ while (result.getChild() != null) {
81
+ result = result.getChild();
82
+ }
83
+ return result;
84
+ }
85
+ getCommand() {
86
+ return this.command;
87
+ }
88
+ getNodes() {
89
+ return this.nodes;
90
+ }
91
+ build(input) {
92
+ return new lib_context_CommandContext.default(
93
+ this.source,
94
+ input,
95
+ this.args,
96
+ this.command,
97
+ this.rootNode,
98
+ this.nodes,
99
+ this.range,
100
+ this.child == null ? null : this.child.build(input),
101
+ this.modifier,
102
+ this.forks
103
+ );
104
+ }
105
+ getDispatcher() {
106
+ return this.dispatcher;
107
+ }
108
+ getRange() {
109
+ return this.range;
110
+ }
111
+ findSuggestionContext(cursor) {
112
+ if (this.range.getStart() <= cursor) {
113
+ if (this.range.getEnd() < cursor) {
114
+ if (this.child != null) {
115
+ return this.child.findSuggestionContext(cursor);
116
+ } else if (this.nodes.length > 0) {
117
+ let last = this.nodes[this.nodes.length - 1];
118
+ return new lib_context_SuggestionContext.default(last.getNode(), last.getRange().getEnd() + 1);
119
+ } else {
120
+ return new lib_context_SuggestionContext.default(this.rootNode, this.range.getStart());
121
+ }
122
+ } else {
123
+ let prev = this.rootNode;
124
+ for (let node of this.nodes) {
125
+ let nodeRange = node.getRange();
126
+ if (nodeRange.getStart() <= cursor && cursor <= nodeRange.getEnd()) {
127
+ return new lib_context_SuggestionContext.default(prev, nodeRange.getStart());
128
+ }
129
+ prev = node.getNode();
130
+ }
131
+ if (prev == null) {
132
+ throw new Error("Can't find node before cursor");
133
+ }
134
+ return new lib_context_SuggestionContext.default(prev, this.range.getStart());
135
+ }
136
+ }
137
+ throw new Error("Can't find node before cursor");
138
+ }
139
+ }
140
+
141
+ exports.default = CommandContextBuilder;
142
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZENvbnRleHRCdWlsZGVyLmNqcy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb250ZXh0L0NvbW1hbmRDb250ZXh0QnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbWFuZCBmcm9tICcuLi9Db21tYW5kJztcbmltcG9ydCBTdHJpbmdSYW5nZSBmcm9tICcuL1N0cmluZ1JhbmdlJztcbmltcG9ydCBDb21tYW5kTm9kZSBmcm9tICcuLi90cmVlL0NvbW1hbmROb2RlJztcbmltcG9ydCBDb21tYW5kQ29udGV4dCBmcm9tICcuL0NvbW1hbmRDb250ZXh0JztcbmltcG9ydCBQYXJzZWRBcmd1bWVudCBmcm9tICcuL1BhcnNlZEFyZ3VtZW50JztcbmltcG9ydCBTdWdnZXN0aW9uQ29udGV4dCBmcm9tICcuL1N1Z2dlc3Rpb25Db250ZXh0JztcbmltcG9ydCBQYXJzZWRDb21tYW5kTm9kZSBmcm9tICcuL1BhcnNlZENvbW1hbmROb2RlJztcbmltcG9ydCBDb21tYW5kRGlzcGF0Y2hlciBmcm9tICcuLi9Db21tYW5kRGlzcGF0Y2hlcic7XG5pbXBvcnQgUmVkaXJlY3RNb2RpZmllciBmcm9tICcuLi9SZWRpcmVjdE1vZGlmaWVyJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICBwcml2YXRlIGFyZ3M6IE1hcDxTdHJpbmcsIFBhcnNlZEFyZ3VtZW50PFMsIGFueT4+ID0gbmV3IE1hcCgpO1xuXG4gICAgcHJpdmF0ZSByb290Tm9kZTogQ29tbWFuZE5vZGU8Uz47XG5cbiAgICBwcml2YXRlIG5vZGVzOiBBcnJheTxQYXJzZWRDb21tYW5kTm9kZTxTPj4gPSBbXTtcblxuICAgIHByaXZhdGUgZGlzcGF0Y2hlcjogQ29tbWFuZERpc3BhdGNoZXI8Uz47XG5cbiAgICBwcml2YXRlIHNvdXJjZTogUztcblxuICAgIHByaXZhdGUgY29tbWFuZCE6IENvbW1hbmQ8Uz47XG5cbiAgICBwcml2YXRlIGNoaWxkITogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+O1xuXG4gICAgcHJpdmF0ZSByYW5nZTogU3RyaW5nUmFuZ2U7XG5cbiAgICBwcml2YXRlIG1vZGlmaWVyOiBSZWRpcmVjdE1vZGlmaWVyPFM+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGZvcmtzITogYm9vbGVhbjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxTPiwgc291cmNlOiBTLCByb290Tm9kZTogQ29tbWFuZE5vZGU8Uz4sIHN0YXJ0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5yb290Tm9kZSA9IHJvb3ROb2RlO1xuICAgICAgICB0aGlzLmRpc3BhdGNoZXIgPSBkaXNwYXRjaGVyO1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgdGhpcy5yYW5nZSA9IFN0cmluZ1JhbmdlLmF0KHN0YXJ0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFNvdXJjZShzb3VyY2U6IFMpOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFNvdXJjZSgpOiBTIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc291cmNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSb290Tm9kZSgpOiBDb21tYW5kTm9kZTxTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvb3ROb2RlO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQXJndW1lbnQobmFtZTogU3RyaW5nLCBhcmd1bWVudDogUGFyc2VkQXJndW1lbnQ8UywgYW55Pik6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiB7XG4gICAgICAgIHRoaXMuYXJncy5zZXQobmFtZSwgYXJndW1lbnQpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QXJndW1lbnRzKCk6IE1hcDxTdHJpbmcsIFBhcnNlZEFyZ3VtZW50PFMsIGFueT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJncztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbW1hbmQoY29tbWFuZDogQ29tbWFuZDxTPik6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiB7XG4gICAgICAgIHRoaXMuY29tbWFuZCA9IGNvbW1hbmQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTm9kZShub2RlOiBDb21tYW5kTm9kZTxTPiwgcmFuZ2U6IFN0cmluZ1JhbmdlKTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgdGhpcy5ub2Rlcy5wdXNoKG5ldyBQYXJzZWRDb21tYW5kTm9kZShub2RlLCByYW5nZSkpO1xuICAgICAgICB0aGlzLnJhbmdlID0gU3RyaW5nUmFuZ2UuZW5jb21wYXNzaW5nKHRoaXMucmFuZ2UsIHJhbmdlKTtcbiAgICAgICAgdGhpcy5tb2RpZmllciA9IG5vZGUuZ2V0UmVkaXJlY3RNb2RpZmllcigpO1xuICAgICAgICB0aGlzLmZvcmtzID0gbm9kZS5pc0ZvcmsoKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHkoKTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgY29uc3QgY29weTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+ID0gbmV3IENvbW1hbmRDb250ZXh0QnVpbGRlcihcbiAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hlcixcbiAgICAgICAgICAgIHRoaXMuc291cmNlLFxuICAgICAgICAgICAgdGhpcy5yb290Tm9kZSxcbiAgICAgICAgICAgIHRoaXMucmFuZ2UuZ2V0U3RhcnQoKVxuICAgICAgICApO1xuICAgICAgICBjb3B5LmNvbW1hbmQgPSB0aGlzLmNvbW1hbmQ7XG4gICAgICAgIGNvcHkuYXJncyA9IG5ldyBNYXAoWy4uLmNvcHkuYXJncywgLi4udGhpcy5hcmdzXSk7XG4gICAgICAgIGNvcHkubm9kZXMucHVzaCguLi50aGlzLm5vZGVzKTtcbiAgICAgICAgY29weS5jaGlsZCA9IHRoaXMuY2hpbGQ7XG4gICAgICAgIGNvcHkucmFuZ2UgPSB0aGlzLnJhbmdlO1xuICAgICAgICBjb3B5LmZvcmtzID0gdGhpcy5mb3JrcztcbiAgICAgICAgcmV0dXJuIGNvcHk7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDaGlsZChjaGlsZDogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+KTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgdGhpcy5jaGlsZCA9IGNoaWxkO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Q2hpbGQoKTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldExhc3RDaGlsZCgpOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICBsZXQgcmVzdWx0OiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4gPSB0aGlzO1xuICAgICAgICB3aGlsZSAocmVzdWx0LmdldENoaWxkKCkgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmdldENoaWxkKCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDb21tYW5kKCk6IENvbW1hbmQ8Uz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21tYW5kO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXROb2RlcygpOiBBcnJheTxQYXJzZWRDb21tYW5kTm9kZTxTPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgYnVpbGQoaW5wdXQ6IHN0cmluZyk6IENvbW1hbmRDb250ZXh0PFM+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tYW5kQ29udGV4dDxTPihcbiAgICAgICAgICAgIHRoaXMuc291cmNlLFxuICAgICAgICAgICAgaW5wdXQsXG4gICAgICAgICAgICB0aGlzLmFyZ3MsXG4gICAgICAgICAgICB0aGlzLmNvbW1hbmQsXG4gICAgICAgICAgICB0aGlzLnJvb3ROb2RlLFxuICAgICAgICAgICAgdGhpcy5ub2RlcyxcbiAgICAgICAgICAgIHRoaXMucmFuZ2UsXG4gICAgICAgICAgICB0aGlzLmNoaWxkID09IG51bGwgPyBudWxsIDogdGhpcy5jaGlsZC5idWlsZChpbnB1dCksXG4gICAgICAgICAgICB0aGlzLm1vZGlmaWVyLFxuICAgICAgICAgICAgdGhpcy5mb3Jrc1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaXNwYXRjaGVyKCk6IENvbW1hbmREaXNwYXRjaGVyPFM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0UmFuZ2UoKTogU3RyaW5nUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluZFN1Z2dlc3Rpb25Db250ZXh0KGN1cnNvcjogbnVtYmVyKTogU3VnZ2VzdGlvbkNvbnRleHQ8Uz4ge1xuICAgICAgICBpZiAodGhpcy5yYW5nZS5nZXRTdGFydCgpIDw9IGN1cnNvcikge1xuICAgICAgICAgICAgaWYgKHRoaXMucmFuZ2UuZ2V0RW5kKCkgPCBjdXJzb3IpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jaGlsZCAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNoaWxkLmZpbmRTdWdnZXN0aW9uQ29udGV4dChjdXJzb3IpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ub2Rlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBsYXN0OiBQYXJzZWRDb21tYW5kTm9kZTxTPiA9IHRoaXMubm9kZXNbdGhpcy5ub2Rlcy5sZW5ndGggLSAxXSE7IC8vIEZJWE1FXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbkNvbnRleHQobGFzdC5nZXROb2RlKCksIGxhc3QuZ2V0UmFuZ2UoKS5nZXRFbmQoKSArIDEpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbkNvbnRleHQodGhpcy5yb290Tm9kZSwgdGhpcy5yYW5nZS5nZXRTdGFydCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBwcmV2OiBDb21tYW5kTm9kZTxTPiA9IHRoaXMucm9vdE5vZGU7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgbm9kZSBvZiB0aGlzLm5vZGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBub2RlUmFuZ2U6IFN0cmluZ1JhbmdlID0gbm9kZS5nZXRSYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobm9kZVJhbmdlLmdldFN0YXJ0KCkgPD0gY3Vyc29yICYmIGN1cnNvciA8PSBub2RlUmFuZ2UuZ2V0RW5kKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgU3VnZ2VzdGlvbkNvbnRleHQocHJldiwgbm9kZVJhbmdlLmdldFN0YXJ0KCkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHByZXYgPSBub2RlLmdldE5vZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHByZXYgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJDYW4ndCBmaW5kIG5vZGUgYmVmb3JlIGN1cnNvclwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uQ29udGV4dChwcmV2LCB0aGlzLnJhbmdlLmdldFN0YXJ0KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGZpbmQgbm9kZSBiZWZvcmUgY3Vyc29yXCIpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6WyJTdHJpbmdSYW5nZSIsIlBhcnNlZENvbW1hbmROb2RlIiwiQ29tbWFuZENvbnRleHQiLCJTdWdnZXN0aW9uQ29udGV4dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQVVBLE1BQXFCLHFCQUF5QixDQUFBO0FBQUEsRUFDbEMsSUFBQSx1QkFBZ0QsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUVwRCxRQUFBLENBQUE7QUFBQSxFQUVBLFFBQXFDLEVBQUMsQ0FBQTtBQUFBLEVBRXRDLFVBQUEsQ0FBQTtBQUFBLEVBRUEsTUFBQSxDQUFBO0FBQUEsRUFFQSxPQUFBLENBQUE7QUFBQSxFQUVBLEtBQUEsQ0FBQTtBQUFBLEVBRUEsS0FBQSxDQUFBO0FBQUEsRUFFQSxRQUF1QyxHQUFBLElBQUEsQ0FBQTtBQUFBLEVBRXZDLEtBQUEsQ0FBQTtBQUFBLEVBRUQsV0FBWSxDQUFBLFVBQUEsRUFBa0MsTUFBVyxFQUFBLFFBQUEsRUFBMEIsS0FBZSxFQUFBO0FBQ3JHLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxRQUFBLENBQUE7QUFDaEIsSUFBQSxJQUFBLENBQUssVUFBYSxHQUFBLFVBQUEsQ0FBQTtBQUNsQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQ2QsSUFBSyxJQUFBLENBQUEsS0FBQSxHQUFRQSwrQkFBWSxDQUFBLEVBQUEsQ0FBRyxLQUFLLENBQUEsQ0FBQTtBQUFBLEdBQ3JDO0FBQUEsRUFFTyxXQUFXLE1BQXFDLEVBQUE7QUFDbkQsSUFBQSxJQUFBLENBQUssTUFBUyxHQUFBLE1BQUEsQ0FBQTtBQUNkLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxTQUFlLEdBQUE7QUFDbEIs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
@@ -0,0 +1,40 @@
1
+ import { default as CommandDispatcher } from '../CommandDispatcher';
2
+ import { default as ParsedCommandNode } from './ParsedCommandNode';
3
+ import { default as SuggestionContext } from './SuggestionContext';
4
+ import { default as ParsedArgument } from './ParsedArgument';
5
+ import { default as CommandContext } from './CommandContext';
6
+ import { default as CommandNode } from '../tree/CommandNode';
7
+ import { default as StringRange } from './StringRange';
8
+ import { default as Command } from '../Command';
9
+
10
+ export default class CommandContextBuilder<S> {
11
+ private args;
12
+ private rootNode;
13
+ private nodes;
14
+ private dispatcher;
15
+ private source;
16
+ private command;
17
+ private child;
18
+ private range;
19
+ private modifier;
20
+ private forks;
21
+ constructor(dispatcher: CommandDispatcher<S>, source: S, rootNode: CommandNode<S>, start: number);
22
+ withSource(source: S): CommandContextBuilder<S>;
23
+ getSource(): S;
24
+ getRootNode(): CommandNode<S>;
25
+ withArgument(name: String, argument: ParsedArgument<S, any>): CommandContextBuilder<S>;
26
+ getArguments(): Map<String, ParsedArgument<S, any>>;
27
+ withCommand(command: Command<S>): CommandContextBuilder<S>;
28
+ withNode(node: CommandNode<S>, range: StringRange): CommandContextBuilder<S>;
29
+ copy(): CommandContextBuilder<S>;
30
+ withChild(child: CommandContextBuilder<S>): CommandContextBuilder<S>;
31
+ getChild(): CommandContextBuilder<S>;
32
+ getLastChild(): CommandContextBuilder<S>;
33
+ getCommand(): Command<S>;
34
+ getNodes(): Array<ParsedCommandNode<S>>;
35
+ build(input: string): CommandContext<S>;
36
+ getDispatcher(): CommandDispatcher<S>;
37
+ getRange(): StringRange;
38
+ findSuggestionContext(cursor: number): SuggestionContext<S>;
39
+ }
40
+ //# sourceMappingURL=CommandContextBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommandContextBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/context/CommandContextBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,iBAAiB,MAAM,sBAAsB,CAAC;AAGrD,MAAM,CAAC,OAAO,OAAO,qBAAqB,CAAC,CAAC;IACxC,OAAO,CAAC,IAAI,CAAkD;IAE9D,OAAO,CAAC,QAAQ,CAAiB;IAEjC,OAAO,CAAC,KAAK,CAAmC;IAEhD,OAAO,CAAC,UAAU,CAAuB;IAEzC,OAAO,CAAC,MAAM,CAAI;IAElB,OAAO,CAAC,OAAO,CAAc;IAE7B,OAAO,CAAC,KAAK,CAA4B;IAEzC,OAAO,CAAC,KAAK,CAAc;IAE3B,OAAO,CAAC,QAAQ,CAAoC;IAEpD,OAAO,CAAC,KAAK,CAAW;gBAEL,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM;IAOhG,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAK/C,SAAS,IAAI,CAAC;IAId,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC;IAI7B,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAKtF,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAInD,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAK1D,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAQ5E,IAAI,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAgBhC,SAAS,CAAC,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC;IAKpE,QAAQ,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAIpC,YAAY,IAAI,qBAAqB,CAAC,CAAC,CAAC;IASxC,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC;IAIxB,QAAQ,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAIvC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC;IAevC,aAAa,IAAI,iBAAiB,CAAC,CAAC,CAAC;IAIrC,QAAQ,IAAI,WAAW;IAIvB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;CA4BrE"}
@@ -0,0 +1,138 @@
1
+ import StringRange from './StringRange.es.js';
2
+ import CommandContext from './CommandContext.es.js';
3
+ import SuggestionContext from './SuggestionContext.es.js';
4
+ import ParsedCommandNode from './ParsedCommandNode.es.js';
5
+ import '../util/isEqual.es.js';
6
+
7
+ class CommandContextBuilder {
8
+ args = /* @__PURE__ */ new Map();
9
+ rootNode;
10
+ nodes = [];
11
+ dispatcher;
12
+ source;
13
+ command;
14
+ child;
15
+ range;
16
+ modifier = null;
17
+ forks;
18
+ constructor(dispatcher, source, rootNode, start) {
19
+ this.rootNode = rootNode;
20
+ this.dispatcher = dispatcher;
21
+ this.source = source;
22
+ this.range = StringRange.at(start);
23
+ }
24
+ withSource(source) {
25
+ this.source = source;
26
+ return this;
27
+ }
28
+ getSource() {
29
+ return this.source;
30
+ }
31
+ getRootNode() {
32
+ return this.rootNode;
33
+ }
34
+ withArgument(name, argument) {
35
+ this.args.set(name, argument);
36
+ return this;
37
+ }
38
+ getArguments() {
39
+ return this.args;
40
+ }
41
+ withCommand(command) {
42
+ this.command = command;
43
+ return this;
44
+ }
45
+ withNode(node, range) {
46
+ this.nodes.push(new ParsedCommandNode(node, range));
47
+ this.range = StringRange.encompassing(this.range, range);
48
+ this.modifier = node.getRedirectModifier();
49
+ this.forks = node.isFork();
50
+ return this;
51
+ }
52
+ copy() {
53
+ const copy = new CommandContextBuilder(
54
+ this.dispatcher,
55
+ this.source,
56
+ this.rootNode,
57
+ this.range.getStart()
58
+ );
59
+ copy.command = this.command;
60
+ copy.args = new Map([...copy.args, ...this.args]);
61
+ copy.nodes.push(...this.nodes);
62
+ copy.child = this.child;
63
+ copy.range = this.range;
64
+ copy.forks = this.forks;
65
+ return copy;
66
+ }
67
+ withChild(child) {
68
+ this.child = child;
69
+ return this;
70
+ }
71
+ getChild() {
72
+ return this.child;
73
+ }
74
+ getLastChild() {
75
+ let result = this;
76
+ while (result.getChild() != null) {
77
+ result = result.getChild();
78
+ }
79
+ return result;
80
+ }
81
+ getCommand() {
82
+ return this.command;
83
+ }
84
+ getNodes() {
85
+ return this.nodes;
86
+ }
87
+ build(input) {
88
+ return new CommandContext(
89
+ this.source,
90
+ input,
91
+ this.args,
92
+ this.command,
93
+ this.rootNode,
94
+ this.nodes,
95
+ this.range,
96
+ this.child == null ? null : this.child.build(input),
97
+ this.modifier,
98
+ this.forks
99
+ );
100
+ }
101
+ getDispatcher() {
102
+ return this.dispatcher;
103
+ }
104
+ getRange() {
105
+ return this.range;
106
+ }
107
+ findSuggestionContext(cursor) {
108
+ if (this.range.getStart() <= cursor) {
109
+ if (this.range.getEnd() < cursor) {
110
+ if (this.child != null) {
111
+ return this.child.findSuggestionContext(cursor);
112
+ } else if (this.nodes.length > 0) {
113
+ let last = this.nodes[this.nodes.length - 1];
114
+ return new SuggestionContext(last.getNode(), last.getRange().getEnd() + 1);
115
+ } else {
116
+ return new SuggestionContext(this.rootNode, this.range.getStart());
117
+ }
118
+ } else {
119
+ let prev = this.rootNode;
120
+ for (let node of this.nodes) {
121
+ let nodeRange = node.getRange();
122
+ if (nodeRange.getStart() <= cursor && cursor <= nodeRange.getEnd()) {
123
+ return new SuggestionContext(prev, nodeRange.getStart());
124
+ }
125
+ prev = node.getNode();
126
+ }
127
+ if (prev == null) {
128
+ throw new Error("Can't find node before cursor");
129
+ }
130
+ return new SuggestionContext(prev, this.range.getStart());
131
+ }
132
+ }
133
+ throw new Error("Can't find node before cursor");
134
+ }
135
+ }
136
+
137
+ export { CommandContextBuilder as default };
138
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29tbWFuZENvbnRleHRCdWlsZGVyLmVzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRleHQvQ29tbWFuZENvbnRleHRCdWlsZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21tYW5kIGZyb20gJy4uL0NvbW1hbmQnO1xuaW1wb3J0IFN0cmluZ1JhbmdlIGZyb20gJy4vU3RyaW5nUmFuZ2UnO1xuaW1wb3J0IENvbW1hbmROb2RlIGZyb20gJy4uL3RyZWUvQ29tbWFuZE5vZGUnO1xuaW1wb3J0IENvbW1hbmRDb250ZXh0IGZyb20gJy4vQ29tbWFuZENvbnRleHQnO1xuaW1wb3J0IFBhcnNlZEFyZ3VtZW50IGZyb20gJy4vUGFyc2VkQXJndW1lbnQnO1xuaW1wb3J0IFN1Z2dlc3Rpb25Db250ZXh0IGZyb20gJy4vU3VnZ2VzdGlvbkNvbnRleHQnO1xuaW1wb3J0IFBhcnNlZENvbW1hbmROb2RlIGZyb20gJy4vUGFyc2VkQ29tbWFuZE5vZGUnO1xuaW1wb3J0IENvbW1hbmREaXNwYXRjaGVyIGZyb20gJy4uL0NvbW1hbmREaXNwYXRjaGVyJztcbmltcG9ydCBSZWRpcmVjdE1vZGlmaWVyIGZyb20gJy4uL1JlZGlyZWN0TW9kaWZpZXInO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgIHByaXZhdGUgYXJnczogTWFwPFN0cmluZywgUGFyc2VkQXJndW1lbnQ8UywgYW55Pj4gPSBuZXcgTWFwKCk7XG5cbiAgICBwcml2YXRlIHJvb3ROb2RlOiBDb21tYW5kTm9kZTxTPjtcblxuICAgIHByaXZhdGUgbm9kZXM6IEFycmF5PFBhcnNlZENvbW1hbmROb2RlPFM+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBkaXNwYXRjaGVyOiBDb21tYW5kRGlzcGF0Y2hlcjxTPjtcblxuICAgIHByaXZhdGUgc291cmNlOiBTO1xuXG4gICAgcHJpdmF0ZSBjb21tYW5kITogQ29tbWFuZDxTPjtcblxuICAgIHByaXZhdGUgY2hpbGQhOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz47XG5cbiAgICBwcml2YXRlIHJhbmdlOiBTdHJpbmdSYW5nZTtcblxuICAgIHByaXZhdGUgbW9kaWZpZXI6IFJlZGlyZWN0TW9kaWZpZXI8Uz4gfCBudWxsID0gbnVsbDtcblxuICAgIHByaXZhdGUgZm9ya3MhOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGRpc3BhdGNoZXI6IENvbW1hbmREaXNwYXRjaGVyPFM+LCBzb3VyY2U6IFMsIHJvb3ROb2RlOiBDb21tYW5kTm9kZTxTPiwgc3RhcnQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnJvb3ROb2RlID0gcm9vdE5vZGU7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hlciA9IGRpc3BhdGNoZXI7XG4gICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgICAgICB0aGlzLnJhbmdlID0gU3RyaW5nUmFuZ2UuYXQoc3RhcnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU291cmNlKHNvdXJjZTogUyk6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiB7XG4gICAgICAgIHRoaXMuc291cmNlID0gc291cmNlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0U291cmNlKCk6IFMge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3VyY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFJvb3ROb2RlKCk6IENvbW1hbmROb2RlPFM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm9vdE5vZGU7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBcmd1bWVudChuYW1lOiBTdHJpbmcsIGFyZ3VtZW50OiBQYXJzZWRBcmd1bWVudDxTLCBhbnk+KTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgdGhpcy5hcmdzLnNldChuYW1lLCBhcmd1bWVudCk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBcmd1bWVudHMoKTogTWFwPFN0cmluZywgUGFyc2VkQXJndW1lbnQ8UywgYW55Pj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5hcmdzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ29tbWFuZChjb21tYW5kOiBDb21tYW5kPFM+KTogQ29tbWFuZENvbnRleHRCdWlsZGVyPFM+IHtcbiAgICAgICAgdGhpcy5jb21tYW5kID0gY29tbWFuZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhOb2RlKG5vZGU6IENvbW1hbmROb2RlPFM+LCByYW5nZTogU3RyaW5nUmFuZ2UpOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICB0aGlzLm5vZGVzLnB1c2gobmV3IFBhcnNlZENvbW1hbmROb2RlKG5vZGUsIHJhbmdlKSk7XG4gICAgICAgIHRoaXMucmFuZ2UgPSBTdHJpbmdSYW5nZS5lbmNvbXBhc3NpbmcodGhpcy5yYW5nZSwgcmFuZ2UpO1xuICAgICAgICB0aGlzLm1vZGlmaWVyID0gbm9kZS5nZXRSZWRpcmVjdE1vZGlmaWVyKCk7XG4gICAgICAgIHRoaXMuZm9ya3MgPSBub2RlLmlzRm9yaygpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICBjb25zdCBjb3B5OiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4gPSBuZXcgQ29tbWFuZENvbnRleHRCdWlsZGVyKFxuICAgICAgICAgICAgdGhpcy5kaXNwYXRjaGVyLFxuICAgICAgICAgICAgdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICB0aGlzLnJvb3ROb2RlLFxuICAgICAgICAgICAgdGhpcy5yYW5nZS5nZXRTdGFydCgpXG4gICAgICAgICk7XG4gICAgICAgIGNvcHkuY29tbWFuZCA9IHRoaXMuY29tbWFuZDtcbiAgICAgICAgY29weS5hcmdzID0gbmV3IE1hcChbLi4uY29weS5hcmdzLCAuLi50aGlzLmFyZ3NdKTtcbiAgICAgICAgY29weS5ub2Rlcy5wdXNoKC4uLnRoaXMubm9kZXMpO1xuICAgICAgICBjb3B5LmNoaWxkID0gdGhpcy5jaGlsZDtcbiAgICAgICAgY29weS5yYW5nZSA9IHRoaXMucmFuZ2U7XG4gICAgICAgIGNvcHkuZm9ya3MgPSB0aGlzLmZvcmtzO1xuICAgICAgICByZXR1cm4gY29weTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENoaWxkKGNoaWxkOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4pOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICB0aGlzLmNoaWxkID0gY2hpbGQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRDaGlsZCgpOiBDb21tYW5kQ29udGV4dEJ1aWxkZXI8Uz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGlsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0TGFzdENoaWxkKCk6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiB7XG4gICAgICAgIGxldCByZXN1bHQ6IENvbW1hbmRDb250ZXh0QnVpbGRlcjxTPiA9IHRoaXM7XG4gICAgICAgIHdoaWxlIChyZXN1bHQuZ2V0Q2hpbGQoKSAhPSBudWxsKSB7XG4gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQuZ2V0Q2hpbGQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldENvbW1hbmQoKTogQ29tbWFuZDxTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbW1hbmQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5vZGVzKCk6IEFycmF5PFBhcnNlZENvbW1hbmROb2RlPFM+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBidWlsZChpbnB1dDogc3RyaW5nKTogQ29tbWFuZENvbnRleHQ8Uz4ge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1hbmRDb250ZXh0PFM+KFxuICAgICAgICAgICAgdGhpcy5zb3VyY2UsXG4gICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgIHRoaXMuYXJncyxcbiAgICAgICAgICAgIHRoaXMuY29tbWFuZCxcbiAgICAgICAgICAgIHRoaXMucm9vdE5vZGUsXG4gICAgICAgICAgICB0aGlzLm5vZGVzLFxuICAgICAgICAgICAgdGhpcy5yYW5nZSxcbiAgICAgICAgICAgIHRoaXMuY2hpbGQgPT0gbnVsbCA/IG51bGwgOiB0aGlzLmNoaWxkLmJ1aWxkKGlucHV0KSxcbiAgICAgICAgICAgIHRoaXMubW9kaWZpZXIsXG4gICAgICAgICAgICB0aGlzLmZvcmtzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERpc3BhdGNoZXIoKTogQ29tbWFuZERpc3BhdGNoZXI8Uz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwYXRjaGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiBTdHJpbmdSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5kU3VnZ2VzdGlvbkNvbnRleHQoY3Vyc29yOiBudW1iZXIpOiBTdWdnZXN0aW9uQ29udGV4dDxTPiB7XG4gICAgICAgIGlmICh0aGlzLnJhbmdlLmdldFN0YXJ0KCkgPD0gY3Vyc29yKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5yYW5nZS5nZXRFbmQoKSA8IGN1cnNvcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNoaWxkICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2hpbGQuZmluZFN1Z2dlc3Rpb25Db250ZXh0KGN1cnNvcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLm5vZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3Q6IFBhcnNlZENvbW1hbmROb2RlPFM+ID0gdGhpcy5ub2Rlc1t0aGlzLm5vZGVzLmxlbmd0aCAtIDFdITsgLy8gRklYTUVcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uQ29udGV4dChsYXN0LmdldE5vZGUoKSwgbGFzdC5nZXRSYW5nZSgpLmdldEVuZCgpICsgMSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uQ29udGV4dCh0aGlzLnJvb3ROb2RlLCB0aGlzLnJhbmdlLmdldFN0YXJ0KCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IHByZXY6IENvbW1hbmROb2RlPFM+ID0gdGhpcy5yb290Tm9kZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBub2RlIG9mIHRoaXMubm9kZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5vZGVSYW5nZTogU3RyaW5nUmFuZ2UgPSBub2RlLmdldFJhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlUmFuZ2UuZ2V0U3RhcnQoKSA8PSBjdXJzb3IgJiYgY3Vyc29yIDw9IG5vZGVSYW5nZS5nZXRFbmQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uQ29udGV4dChwcmV2LCBub2RlUmFuZ2UuZ2V0U3RhcnQoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHJldiA9IG5vZGUuZ2V0Tm9kZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJldiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGZpbmQgbm9kZSBiZWZvcmUgY3Vyc29yXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN1Z2dlc3Rpb25Db250ZXh0KHByZXYsIHRoaXMucmFuZ2UuZ2V0U3RhcnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZmluZCBub2RlIGJlZm9yZSBjdXJzb3JcIik7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVVBLE1BQXFCLHFCQUF5QixDQUFBO0FBQUEsRUFDbEMsSUFBQSx1QkFBZ0QsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUVwRCxRQUFBLENBQUE7QUFBQSxFQUVBLFFBQXFDLEVBQUMsQ0FBQTtBQUFBLEVBRXRDLFVBQUEsQ0FBQTtBQUFBLEVBRUEsTUFBQSxDQUFBO0FBQUEsRUFFQSxPQUFBLENBQUE7QUFBQSxFQUVBLEtBQUEsQ0FBQTtBQUFBLEVBRUEsS0FBQSxDQUFBO0FBQUEsRUFFQSxRQUF1QyxHQUFBLElBQUEsQ0FBQTtBQUFBLEVBRXZDLEtBQUEsQ0FBQTtBQUFBLEVBRUQsV0FBWSxDQUFBLFVBQUEsRUFBa0MsTUFBVyxFQUFBLFFBQUEsRUFBMEIsS0FBZSxFQUFBO0FBQ3JHLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxRQUFBLENBQUE7QUFDaEIsSUFBQSxJQUFBLENBQUssVUFBYSxHQUFBLFVBQUEsQ0FBQTtBQUNsQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQ2QsSUFBSyxJQUFBLENBQUEsS0FBQSxHQUFRLFdBQVksQ0FBQSxFQUFBLENBQUcsS0FBSyxDQUFBLENBQUE7QUFBQSxHQUNyQztBQUFBLEVBRU8sV0FBVyxNQUFxQyxFQUFBO0FBQ25ELElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLENBQUE7QUFDZCxJQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sU0FBZSxHQUFBO0FBQ2xCLElBQUEsT0FBTyxJQUFLLENBQUEsTUFBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFdBQThCLEdBQUE7QUFDakMsSUFBQSxPQUFP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
@@ -0,0 +1,30 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const lib_context_StringRange = require('./StringRange.cjs.js');
6
+
7
+ class ParsedArgument {
8
+ range;
9
+ result;
10
+ constructor(start, end, result) {
11
+ this.range = lib_context_StringRange.default.between(start, end);
12
+ this.result = result;
13
+ }
14
+ getRange() {
15
+ return this.range;
16
+ }
17
+ getResult() {
18
+ return this.result;
19
+ }
20
+ equals(o) {
21
+ if (this === o)
22
+ return true;
23
+ if (!(o instanceof ParsedArgument))
24
+ return false;
25
+ return this.range.equals(o.range) && this.result === o.result;
26
+ }
27
+ }
28
+
29
+ exports.default = ParsedArgument;
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VkQXJndW1lbnQuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRleHQvUGFyc2VkQXJndW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0cmluZ1JhbmdlIGZyb20gXCIuL1N0cmluZ1JhbmdlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyc2VkQXJndW1lbnQ8UywgVD4ge1xuICAgIFxuICAgIHByaXZhdGUgcmFuZ2U6IFN0cmluZ1JhbmdlOyAgICBcbiAgICBwcml2YXRlIHJlc3VsdDogVDtcbiAgICBcbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyLCByZXN1bHQ6IFQpIHtcbiAgICAgICAgdGhpcy5yYW5nZSA9IFN0cmluZ1JhbmdlLmJldHdlZW4oc3RhcnQsIGVuZCk7XG4gICAgICAgIHRoaXMucmVzdWx0ID0gcmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZ2V0UmFuZ2UoKTogU3RyaW5nUmFuZ2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5yYW5nZTtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGdldFJlc3VsdCgpOiBUIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVzdWx0O1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZXF1YWxzKG86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gbykgcmV0dXJuIHRydWU7ICAgICAgICBcbiAgICAgICAgaWYgKCEobyBpbnN0YW5jZW9mICBQYXJzZWRBcmd1bWVudCkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgXG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlLmVxdWFscyhvLnJhbmdlKSAmJiB0aGlzLnJlc3VsdCA9PT0gby5yZXN1bHQ7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbIlN0cmluZ1JhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFFQSxNQUFxQixjQUFxQixDQUFBO0FBQUEsRUFFOUIsS0FBQSxDQUFBO0FBQUEsRUFDQSxNQUFBLENBQUE7QUFBQSxFQUVELFdBQUEsQ0FBYSxLQUFlLEVBQUEsR0FBQSxFQUFhLE1BQVcsRUFBQTtBQUN2RCxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUFBLCtCQUFBLENBQVksT0FBUSxDQUFBLEtBQUEsRUFBTyxHQUFHLENBQUEsQ0FBQTtBQUMzQyxJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQUEsR0FDbEI7QUFBQSxFQUVPLFFBQXdCLEdBQUE7QUFDM0IsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sU0FBZSxHQUFBO0FBQ2xCLElBQUEsT0FBTyxJQUFLLENBQUEsTUFBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLE9BQU8sQ0FBb0IsRUFBQTtBQUM5QixJQUFBLElBQUksSUFBUyxLQUFBLENBQUE7QUFBRyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBQ3ZCLElBQUEsSUFBSSxFQUFFLENBQWMsWUFBQSxjQUFBLENBQUE7QUFBaUIsTUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUU1QyxJQUFPLE9BQUEsSUFBQSxDQUFLLE1BQU0sTUFBTyxDQUFBLENBQUEsQ0FBRSxLQUFLLENBQUssSUFBQSxJQUFBLENBQUssV0FBVyxDQUFFLENBQUEsTUFBQSxDQUFBO0FBQUEsR0FDM0Q7QUFDSjs7OzsifQ==
@@ -0,0 +1,11 @@
1
+ import { default as StringRange } from './StringRange';
2
+
3
+ export default class ParsedArgument<S, T> {
4
+ private range;
5
+ private result;
6
+ constructor(start: number, end: number, result: T);
7
+ getRange(): StringRange;
8
+ getResult(): T;
9
+ equals(o: object): boolean;
10
+ }
11
+ //# sourceMappingURL=ParsedArgument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedArgument.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ParsedArgument.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,MAAM,CAAC,OAAO,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC;IAEpC,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,MAAM,CAAI;gBAEE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAKlD,QAAQ,IAAI,WAAW;IAIvB,SAAS,IAAI,CAAC;IAId,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;CAMpC"}
@@ -0,0 +1,26 @@
1
+ import StringRange from './StringRange.es.js';
2
+
3
+ class ParsedArgument {
4
+ range;
5
+ result;
6
+ constructor(start, end, result) {
7
+ this.range = StringRange.between(start, end);
8
+ this.result = result;
9
+ }
10
+ getRange() {
11
+ return this.range;
12
+ }
13
+ getResult() {
14
+ return this.result;
15
+ }
16
+ equals(o) {
17
+ if (this === o)
18
+ return true;
19
+ if (!(o instanceof ParsedArgument))
20
+ return false;
21
+ return this.range.equals(o.range) && this.result === o.result;
22
+ }
23
+ }
24
+
25
+ export { ParsedArgument as default };
26
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VkQXJndW1lbnQuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udGV4dC9QYXJzZWRBcmd1bWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU3RyaW5nUmFuZ2UgZnJvbSBcIi4vU3RyaW5nUmFuZ2VcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBQYXJzZWRBcmd1bWVudDxTLCBUPiB7XG4gICAgXG4gICAgcHJpdmF0ZSByYW5nZTogU3RyaW5nUmFuZ2U7ICAgIFxuICAgIHByaXZhdGUgcmVzdWx0OiBUO1xuICAgIFxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIHJlc3VsdDogVCkge1xuICAgICAgICB0aGlzLnJhbmdlID0gU3RyaW5nUmFuZ2UuYmV0d2VlbihzdGFydCwgZW5kKTtcbiAgICAgICAgdGhpcy5yZXN1bHQgPSByZXN1bHQ7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiBTdHJpbmdSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlO1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZ2V0UmVzdWx0KCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHQ7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBlcXVhbHMobzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzID09PSBvKSByZXR1cm4gdHJ1ZTsgICAgICAgIFxuICAgICAgICBpZiAoIShvIGluc3RhbmNlb2YgIFBhcnNlZEFyZ3VtZW50KSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2UuZXF1YWxzKG8ucmFuZ2UpICYmIHRoaXMucmVzdWx0ID09PSBvLnJlc3VsdDtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxNQUFxQixjQUFxQixDQUFBO0FBQUEsRUFFOUIsS0FBQSxDQUFBO0FBQUEsRUFDQSxNQUFBLENBQUE7QUFBQSxFQUVELFdBQUEsQ0FBYSxLQUFlLEVBQUEsR0FBQSxFQUFhLE1BQVcsRUFBQTtBQUN2RCxJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsV0FBQSxDQUFZLE9BQVEsQ0FBQSxLQUFBLEVBQU8sR0FBRyxDQUFBLENBQUE7QUFDM0MsSUFBQSxJQUFBLENBQUssTUFBUyxHQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ2xCO0FBQUEsRUFFTyxRQUF3QixHQUFBO0FBQzNCLElBQUEsT0FBTyxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFNBQWUsR0FBQTtBQUNsQixJQUFBLE9BQU8sSUFBSyxDQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxPQUFPLENBQW9CLEVBQUE7QUFDOUIsSUFBQSxJQUFJLElBQVMsS0FBQSxDQUFBO0FBQUcsTUFBTyxPQUFBLElBQUEsQ0FBQTtBQUN2QixJQUFBLElBQUksRUFBRSxDQUFjLFlBQUEsY0FBQSxDQUFBO0FBQWlCLE1BQU8sT0FBQSxLQUFBLENBQUE7QUFFNUMsSUFBTyxPQUFBLElBQUEsQ0FBSyxNQUFNLE1BQU8sQ0FBQSxDQUFBLENBQUUsS0FBSyxDQUFLLElBQUEsSUFBQSxDQUFLLFdBQVcsQ0FBRSxDQUFBLE1BQUEsQ0FBQTtBQUFBLEdBQzNEO0FBQ0o7Ozs7In0=
@@ -0,0 +1,32 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ class ParsedCommandNode {
6
+ node;
7
+ range;
8
+ constructor(node, range) {
9
+ this.node = node;
10
+ this.range = range;
11
+ }
12
+ getNode() {
13
+ return this.node;
14
+ }
15
+ getRange() {
16
+ return this.range;
17
+ }
18
+ toString() {
19
+ return this.node + "@" + this.range;
20
+ }
21
+ equals(o) {
22
+ if (this === o)
23
+ return true;
24
+ if (o == null || !(o instanceof ParsedCommandNode)) {
25
+ return false;
26
+ }
27
+ return this.node.equals(o.node) && this.range.equals(o.range);
28
+ }
29
+ }
30
+
31
+ exports.default = ParsedCommandNode;
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VkQ29tbWFuZE5vZGUuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRleHQvUGFyc2VkQ29tbWFuZE5vZGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENvbW1hbmROb2RlIGZyb20gXCIuLi90cmVlL0NvbW1hbmROb2RlXCJcbmltcG9ydCBTdHJpbmdSYW5nZSBmcm9tIFwiLi9TdHJpbmdSYW5nZVwiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFBhcnNlZENvbW1hbmROb2RlPFM+IHtcbiAgICBcbiAgICBwcml2YXRlIG5vZGU6IENvbW1hbmROb2RlPFM+OyAgICBcbiAgICBwcml2YXRlIHJhbmdlOiBTdHJpbmdSYW5nZTtcbiAgICBcbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKG5vZGU6IENvbW1hbmROb2RlPFM+LCByYW5nZTogU3RyaW5nUmFuZ2UpIHtcbiAgICAgICAgdGhpcy5ub2RlID0gbm9kZTtcbiAgICAgICAgdGhpcy5yYW5nZSA9IHJhbmdlO1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZ2V0Tm9kZSgpOiBDb21tYW5kTm9kZTxTPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vZGU7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBnZXRSYW5nZSgpOiBTdHJpbmdSYW5nZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJhbmdlO1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogU3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZSArIFwiQFwiICsgdGhpcy5yYW5nZTtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGVxdWFscyhvOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMgPT09IG8pIHJldHVybiB0cnVlO1xuICAgICAgICBcbiAgICAgICAgaWYgKG8gPT0gbnVsbCB8fCAhKG8gaW5zdGFuY2VvZiBQYXJzZWRDb21tYW5kTm9kZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZS5lcXVhbHMoby5ub2RlKSAmJiB0aGlzLnJhbmdlLmVxdWFscyhvLnJhbmdlKTtcbiAgICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUdBLE1BQXFCLGlCQUFxQixDQUFBO0FBQUEsRUFFOUIsSUFBQSxDQUFBO0FBQUEsRUFDQSxLQUFBLENBQUE7QUFBQSxFQUVELFdBQUEsQ0FBYSxNQUFzQixLQUFvQixFQUFBO0FBQzFELElBQUEsSUFBQSxDQUFLLElBQU8sR0FBQSxJQUFBLENBQUE7QUFDWixJQUFBLElBQUEsQ0FBSyxLQUFRLEdBQUEsS0FBQSxDQUFBO0FBQUEsR0FDakI7QUFBQSxFQUVPLE9BQTBCLEdBQUE7QUFDN0IsSUFBQSxPQUFPLElBQUssQ0FBQSxJQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sUUFBd0IsR0FBQTtBQUMzQixJQUFBLE9BQU8sSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxRQUFtQixHQUFBO0FBQ3RCLElBQU8sT0FBQSxJQUFBLENBQUssSUFBTyxHQUFBLEdBQUEsR0FBTSxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQUEsR0FDbEM7QUFBQSxFQUVPLE9BQU8sQ0FBb0IsRUFBQTtBQUM5QixJQUFBLElBQUksSUFBUyxLQUFBLENBQUE7QUFBRyxNQUFPLE9BQUEsSUFBQSxDQUFBO0FBRXZCLElBQUEsSUFBSSxDQUFLLElBQUEsSUFBQSxJQUFRLEVBQUUsQ0FBQSxZQUFhLGlCQUFvQixDQUFBLEVBQUE7QUFDaEQsTUFBTyxPQUFBLEtBQUEsQ0FBQTtBQUFBLEtBQ1g7QUFFQSxJQUFPLE9BQUEsSUFBQSxDQUFLLElBQUssQ0FBQSxNQUFBLENBQU8sQ0FBRSxDQUFBLElBQUksS0FBSyxJQUFLLENBQUEsS0FBQSxDQUFNLE1BQU8sQ0FBQSxDQUFBLENBQUUsS0FBSyxDQUFBLENBQUE7QUFBQSxHQUNoRTtBQUNKOzs7OyJ9
@@ -0,0 +1,13 @@
1
+ import { default as StringRange } from './StringRange';
2
+ import { default as CommandNode } from '../tree/CommandNode';
3
+
4
+ export default class ParsedCommandNode<S> {
5
+ private node;
6
+ private range;
7
+ constructor(node: CommandNode<S>, range: StringRange);
8
+ getNode(): CommandNode<S>;
9
+ getRange(): StringRange;
10
+ toString(): String;
11
+ equals(o: object): boolean;
12
+ }
13
+ //# sourceMappingURL=ParsedCommandNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParsedCommandNode.d.ts","sourceRoot":"","sources":["../../../src/lib/context/ParsedCommandNode.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,qBAAqB,CAAA;AAC7C,OAAO,WAAW,MAAM,eAAe,CAAA;AAEvC,MAAM,CAAC,OAAO,OAAO,iBAAiB,CAAC,CAAC;IAEpC,OAAO,CAAC,IAAI,CAAiB;IAC7B,OAAO,CAAC,KAAK,CAAc;gBAEP,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW;IAKrD,OAAO,IAAI,WAAW,CAAC,CAAC,CAAC;IAIzB,QAAQ,IAAI,WAAW;IAIvB,QAAQ,IAAI,MAAM;IAIlB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;CASpC"}
@@ -0,0 +1,28 @@
1
+ class ParsedCommandNode {
2
+ node;
3
+ range;
4
+ constructor(node, range) {
5
+ this.node = node;
6
+ this.range = range;
7
+ }
8
+ getNode() {
9
+ return this.node;
10
+ }
11
+ getRange() {
12
+ return this.range;
13
+ }
14
+ toString() {
15
+ return this.node + "@" + this.range;
16
+ }
17
+ equals(o) {
18
+ if (this === o)
19
+ return true;
20
+ if (o == null || !(o instanceof ParsedCommandNode)) {
21
+ return false;
22
+ }
23
+ return this.node.equals(o.node) && this.range.equals(o.range);
24
+ }
25
+ }
26
+
27
+ export { ParsedCommandNode as default };
28
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUGFyc2VkQ29tbWFuZE5vZGUuZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29udGV4dC9QYXJzZWRDb21tYW5kTm9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29tbWFuZE5vZGUgZnJvbSBcIi4uL3RyZWUvQ29tbWFuZE5vZGVcIlxuaW1wb3J0IFN0cmluZ1JhbmdlIGZyb20gXCIuL1N0cmluZ1JhbmdlXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUGFyc2VkQ29tbWFuZE5vZGU8Uz4ge1xuICAgIFxuICAgIHByaXZhdGUgbm9kZTogQ29tbWFuZE5vZGU8Uz47ICAgIFxuICAgIHByaXZhdGUgcmFuZ2U6IFN0cmluZ1JhbmdlO1xuICAgIFxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAobm9kZTogQ29tbWFuZE5vZGU8Uz4sIHJhbmdlOiBTdHJpbmdSYW5nZSkge1xuICAgICAgICB0aGlzLm5vZGUgPSBub2RlO1xuICAgICAgICB0aGlzLnJhbmdlID0gcmFuZ2U7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBnZXROb2RlKCk6IENvbW1hbmROb2RlPFM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubm9kZTtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGdldFJhbmdlKCk6IFN0cmluZ1JhbmdlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmFuZ2U7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyB0b1N0cmluZygpOiBTdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5ub2RlICsgXCJAXCIgKyB0aGlzLnJhbmdlO1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZXF1YWxzKG86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcyA9PT0gbykgcmV0dXJuIHRydWU7XG4gICAgICAgIFxuICAgICAgICBpZiAobyA9PSBudWxsIHx8ICEobyBpbnN0YW5jZW9mIFBhcnNlZENvbW1hbmROb2RlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICByZXR1cm4gdGhpcy5ub2RlLmVxdWFscyhvLm5vZGUpICYmIHRoaXMucmFuZ2UuZXF1YWxzKG8ucmFuZ2UpO1xuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFxQixpQkFBcUIsQ0FBQTtBQUFBLEVBRTlCLElBQUEsQ0FBQTtBQUFBLEVBQ0EsS0FBQSxDQUFBO0FBQUEsRUFFRCxXQUFBLENBQWEsTUFBc0IsS0FBb0IsRUFBQTtBQUMxRCxJQUFBLElBQUEsQ0FBSyxJQUFPLEdBQUEsSUFBQSxDQUFBO0FBQ1osSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ2pCO0FBQUEsRUFFTyxPQUEwQixHQUFBO0FBQzdCLElBQUEsT0FBTyxJQUFLLENBQUEsSUFBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFFBQXdCLEdBQUE7QUFDM0IsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sUUFBbUIsR0FBQTtBQUN0QixJQUFPLE9BQUEsSUFBQSxDQUFLLElBQU8sR0FBQSxHQUFBLEdBQU0sSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ2xDO0FBQUEsRUFFTyxPQUFPLENBQW9CLEVBQUE7QUFDOUIsSUFBQSxJQUFJLElBQVMsS0FBQSxDQUFBO0FBQUcsTUFBTyxPQUFBLElBQUEsQ0FBQTtBQUV2QixJQUFBLElBQUksQ0FBSyxJQUFBLElBQUEsSUFBUSxFQUFFLENBQUEsWUFBYSxpQkFBb0IsQ0FBQSxFQUFBO0FBQ2hELE1BQU8sT0FBQSxLQUFBLENBQUE7QUFBQSxLQUNYO0FBRUEsSUFBTyxPQUFBLElBQUEsQ0FBSyxJQUFLLENBQUEsTUFBQSxDQUFPLENBQUUsQ0FBQSxJQUFJLEtBQUssSUFBSyxDQUFBLEtBQUEsQ0FBTSxNQUFPLENBQUEsQ0FBQSxDQUFFLEtBQUssQ0FBQSxDQUFBO0FBQUEsR0FDaEU7QUFDSjs7OzsifQ==
@@ -0,0 +1,52 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ class StringRange {
6
+ start;
7
+ end;
8
+ constructor(start, end) {
9
+ this.start = start;
10
+ this.end = end;
11
+ }
12
+ static at(pos) {
13
+ return new StringRange(pos, pos);
14
+ }
15
+ static between(start, end) {
16
+ return new StringRange(start, end);
17
+ }
18
+ static encompassing(a, b) {
19
+ return new StringRange(Math.min(a.getStart(), b.getStart()), Math.max(a.getEnd(), b.getEnd()));
20
+ }
21
+ getStart() {
22
+ return this.start;
23
+ }
24
+ getEnd() {
25
+ return this.end;
26
+ }
27
+ get(str) {
28
+ if (typeof str === "string")
29
+ return str.substring(this.start, this.end);
30
+ else
31
+ return str.getString().substring(this.start, this.end);
32
+ }
33
+ isEmpty() {
34
+ return this.start === this.end;
35
+ }
36
+ getLength() {
37
+ return this.end - this.start;
38
+ }
39
+ equals(o) {
40
+ if (this === o)
41
+ return true;
42
+ if (!(o instanceof StringRange))
43
+ return false;
44
+ return this.start === o.start && this.end == o.end;
45
+ }
46
+ toString() {
47
+ return "StringRange{start=" + this.start + ", end=" + this.end + "}";
48
+ }
49
+ }
50
+
51
+ exports.default = StringRange;
52
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3RyaW5nUmFuZ2UuY2pzLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbnRleHQvU3RyaW5nUmFuZ2UudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEltbXV0YWJsZVN0cmluZ1JlYWRlciBmcm9tIFwiLi4vSW1tdXRhYmxlU3RyaW5nUmVhZGVyXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3RyaW5nUmFuZ2Uge1xuXHRcbiAgICBwcml2YXRlIHN0YXJ0OiBudW1iZXI7ICAgIFxuICAgIHByaXZhdGUgZW5kOiBudW1iZXI7XG4gICAgXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLnN0YXJ0ID0gc3RhcnQ7XG4gICAgICAgIHRoaXMuZW5kID0gZW5kO1xuICAgIH1cbiAgICBcblx0cHVibGljIHN0YXRpYyBhdChwb3M6IG51bWJlcik6IFN0cmluZ1JhbmdlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdSYW5nZShwb3MsIHBvcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBiZXR3ZWVuKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKTogU3RyaW5nUmFuZ2Uge1xuICAgICAgICByZXR1cm4gbmV3IFN0cmluZ1JhbmdlKHN0YXJ0LCBlbmQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZW5jb21wYXNzaW5nKGE6IFN0cmluZ1JhbmdlLCBiOiBTdHJpbmdSYW5nZSk6IFN0cmluZ1JhbmdlIHtcbiAgICAgICAgcmV0dXJuIG5ldyBTdHJpbmdSYW5nZShNYXRoLm1pbihhLmdldFN0YXJ0KCksIGIuZ2V0U3RhcnQoKSksIE1hdGgubWF4KGEuZ2V0RW5kKCksIGIuZ2V0RW5kKCkpKTtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGdldFN0YXJ0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0O1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgZ2V0RW5kKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLmVuZDtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGdldChzdHI6IEltbXV0YWJsZVN0cmluZ1JlYWRlciB8IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKHR5cGVvZiBzdHIgPT09IFwic3RyaW5nXCIpXG5cdFx0XHRyZXR1cm4gc3RyLnN1YnN0cmluZyh0aGlzLnN0YXJ0LCB0aGlzLmVuZCk7XG5cdFx0ZWxzZVxuICAgICAgICBcdHJldHVybiBzdHIuZ2V0U3RyaW5nKCkuc3Vic3RyaW5nKHRoaXMuc3RhcnQsIHRoaXMuZW5kKTtcbiAgICB9ICAgIFxuICAgIFxuICAgIHB1YmxpYyBpc0VtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGFydCA9PT0gdGhpcy5lbmQ7XG4gICAgfVxuICAgIFxuICAgIHB1YmxpYyBnZXRMZW5ndGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW5kIC0gdGhpcy5zdGFydDtcbiAgICB9XG4gICAgXG4gICAgcHVibGljIGVxdWFscyhvOiBvYmplY3QpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMgPT09IG8pIHJldHVybiB0cnVlOyAgICAgICAgXG4gICAgICAgIGlmICghKG8gaW5zdGFuY2VvZiAgU3RyaW5nUmFuZ2UpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXJ0ID09PSBvLnN0YXJ0ICYmIHRoaXMuZW5kID09IG8uZW5kO1xuICAgIH1cbiAgICBcbiAgICBwdWJsaWMgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIFwiU3RyaW5nUmFuZ2V7XCIgKyBcInN0YXJ0PVwiICsgdGhpcy5zdGFydCArIFwiLCBlbmQ9XCIgKyB0aGlzLmVuZCArICd9JztcbiAgICB9XG59Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFFQSxNQUFxQixXQUFZLENBQUE7QUFBQSxFQUVyQixLQUFBLENBQUE7QUFBQSxFQUNBLEdBQUEsQ0FBQTtBQUFBLEVBRUQsV0FBQSxDQUFhLE9BQWUsR0FBYSxFQUFBO0FBQzVDLElBQUEsSUFBQSxDQUFLLEtBQVEsR0FBQSxLQUFBLENBQUE7QUFDYixJQUFBLElBQUEsQ0FBSyxHQUFNLEdBQUEsR0FBQSxDQUFBO0FBQUEsR0FDZjtBQUFBLEVBRUgsT0FBYyxHQUFHLEdBQTBCLEVBQUE7QUFDcEMsSUFBTyxPQUFBLElBQUksV0FBWSxDQUFBLEdBQUEsRUFBSyxHQUFHLENBQUEsQ0FBQTtBQUFBLEdBQ25DO0FBQUEsRUFFQSxPQUFjLE9BQVEsQ0FBQSxLQUFBLEVBQWUsR0FBMEIsRUFBQTtBQUMzRCxJQUFPLE9BQUEsSUFBSSxXQUFZLENBQUEsS0FBQSxFQUFPLEdBQUcsQ0FBQSxDQUFBO0FBQUEsR0FDckM7QUFBQSxFQUVBLE9BQWMsWUFBYSxDQUFBLENBQUEsRUFBZ0IsQ0FBNkIsRUFBQTtBQUNwRSxJQUFBLE9BQU8sSUFBSSxXQUFZLENBQUEsSUFBQSxDQUFLLElBQUksQ0FBRSxDQUFBLFFBQUEsSUFBWSxDQUFFLENBQUEsUUFBQSxFQUFVLENBQUcsRUFBQSxJQUFBLENBQUssSUFBSSxDQUFFLENBQUEsTUFBQSxJQUFVLENBQUUsQ0FBQSxNQUFBLEVBQVEsQ0FBQyxDQUFBLENBQUE7QUFBQSxHQUNqRztBQUFBLEVBRU8sUUFBbUIsR0FBQTtBQUN0QixJQUFBLE9BQU8sSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxNQUFpQixHQUFBO0FBQ3BCLElBQUEsT0FBTyxJQUFLLENBQUEsR0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLElBQUksR0FBNkMsRUFBQTtBQUMxRCxJQUFBLElBQUksT0FBTyxHQUFRLEtBQUEsUUFBQTtBQUNsQixNQUFBLE9BQU8sR0FBSSxDQUFBLFNBQUEsQ0FBVSxJQUFLLENBQUEsS0FBQSxFQUFPLEtBQUssR0FBRyxDQUFBLENBQUE7QUFBQTtBQUVuQyxNQUFBLE9BQU8sSUFBSSxTQUFVLEVBQUEsQ0FBRSxVQUFVLElBQUssQ0FBQSxLQUFBLEVBQU8sS0FBSyxHQUFHLENBQUEsQ0FBQTtBQUFBLEdBQzFEO0FBQUEsRUFFTyxPQUFtQixHQUFBO0FBQ3RCLElBQU8sT0FBQSxJQUFBLENBQUssVUFBVSxJQUFLLENBQUEsR0FBQSxDQUFBO0FBQUEsR0FDL0I7QUFBQSxFQUVPLFNBQW9CLEdBQUE7QUFDdkIsSUFBTyxPQUFBLElBQUEsQ0FBSyxNQUFNLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUMzQjtBQUFBLEVBRU8sT0FBTyxDQUFvQixFQUFBO0FBQzlCLElBQUEsSUFBSSxJQUFTLEtBQUEsQ0FBQTtBQUFHLE1BQU8sT0FBQSxJQUFBLENBQUE7QUFDdkIsSUFBQSxJQUFJLEVBQUUsQ0FBYyxZQUFBLFdBQUEsQ0FBQTtBQUFjLE1BQU8sT0FBQSxLQUFBLENBQUE7QUFDekMsSUFBQSxPQUFPLEtBQUssS0FBVSxLQUFBLENBQUEsQ0FBRSxLQUFTLElBQUEsSUFBQSxDQUFLLE9BQU8sQ0FBRSxDQUFBLEdBQUEsQ0FBQTtBQUFBLEdBQ25EO0FBQUEsRUFFTyxRQUFtQixHQUFBO0FBQ3RCLElBQUEsT0FBTyxvQkFBNEIsR0FBQSxJQUFBLENBQUssS0FBUSxHQUFBLFFBQUEsR0FBVyxLQUFLLEdBQU0sR0FBQSxHQUFBLENBQUE7QUFBQSxHQUMxRTtBQUNKOzs7OyJ9
@@ -0,0 +1,18 @@
1
+ import { default as ImmutableStringReader } from '../ImmutableStringReader';
2
+
3
+ export default class StringRange {
4
+ private start;
5
+ private end;
6
+ constructor(start: number, end: number);
7
+ static at(pos: number): StringRange;
8
+ static between(start: number, end: number): StringRange;
9
+ static encompassing(a: StringRange, b: StringRange): StringRange;
10
+ getStart(): number;
11
+ getEnd(): number;
12
+ get(str: ImmutableStringReader | string): string;
13
+ isEmpty(): boolean;
14
+ getLength(): number;
15
+ equals(o: object): boolean;
16
+ toString(): string;
17
+ }
18
+ //# sourceMappingURL=StringRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StringRange.d.ts","sourceRoot":"","sources":["../../../src/lib/context/StringRange.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,0BAA0B,CAAA;AAE5D,MAAM,CAAC,OAAO,OAAO,WAAW;IAE5B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;gBAEA,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;WAKnC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW;WAIzB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW;WAIhD,YAAY,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,GAAG,WAAW;IAIhE,QAAQ,IAAI,MAAM;IAIlB,MAAM,IAAI,MAAM;IAIhB,GAAG,CAAC,GAAG,EAAE,qBAAqB,GAAG,MAAM,GAAG,MAAM;IAOhD,OAAO,IAAI,OAAO;IAIlB,SAAS,IAAI,MAAM;IAInB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO;IAM1B,QAAQ,IAAI,MAAM;CAG5B"}