@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.
- package/CHANGELOG.md +29 -0
- package/LICENSE +21 -21
- package/README.md +85 -81
- package/dist/CommandSyntaxException-BKBHJvxr.cjs +173 -0
- package/dist/CommandSyntaxException-Dz8Qlq9d.js +168 -0
- package/dist/LiteralArgumentBuilder-2hpX2C86.js +121 -0
- package/dist/LiteralArgumentBuilder-s6PUMmST.cjs +125 -0
- package/dist/RequiredArgumentBuilder-D105occO.js +144 -0
- package/dist/RequiredArgumentBuilder-DMJ4kl0u.cjs +148 -0
- package/dist/index.cjs.js +63 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +31 -0
- package/dist/lib/AmbiguityConsumer.cjs.js +3 -0
- package/dist/lib/AmbiguityConsumer.d.ts +6 -0
- package/dist/lib/AmbiguityConsumer.d.ts.map +1 -0
- package/dist/lib/AmbiguityConsumer.es.js +2 -0
- package/dist/lib/Command.cjs.js +3 -0
- package/dist/lib/Command.d.ts +6 -0
- package/dist/lib/Command.d.ts.map +1 -0
- package/dist/lib/Command.es.js +2 -0
- package/dist/lib/CommandDispatcher.cjs.js +369 -0
- package/dist/lib/CommandDispatcher.d.ts +31 -0
- package/dist/lib/CommandDispatcher.d.ts.map +1 -0
- package/dist/lib/CommandDispatcher.es.js +365 -0
- package/dist/lib/ImmutableStringReader.cjs.js +3 -0
- package/dist/lib/ImmutableStringReader.d.ts +13 -0
- package/dist/lib/ImmutableStringReader.d.ts.map +1 -0
- package/dist/lib/ImmutableStringReader.es.js +2 -0
- package/dist/lib/LiteralMessage.cjs.js +19 -0
- package/dist/lib/LiteralMessage.d.ts +9 -0
- package/dist/lib/LiteralMessage.d.ts.map +1 -0
- package/dist/lib/LiteralMessage.es.js +15 -0
- package/dist/lib/Message.cjs.js +3 -0
- package/dist/lib/Message.d.ts +4 -0
- package/dist/lib/Message.d.ts.map +1 -0
- package/dist/lib/Message.es.js +2 -0
- package/dist/lib/ParseResults.cjs.js +30 -0
- package/dist/lib/ParseResults.d.ts +15 -0
- package/dist/lib/ParseResults.d.ts.map +1 -0
- package/dist/lib/ParseResults.es.js +26 -0
- package/dist/lib/Predicate.cjs.js +3 -0
- package/dist/lib/Predicate.d.ts +4 -0
- package/dist/lib/Predicate.d.ts.map +1 -0
- package/dist/lib/Predicate.es.js +2 -0
- package/dist/lib/RedirectModifier.cjs.js +3 -0
- package/dist/lib/RedirectModifier.d.ts +6 -0
- package/dist/lib/RedirectModifier.d.ts.map +1 -0
- package/dist/lib/RedirectModifier.es.js +2 -0
- package/dist/lib/ResultConsumer.cjs.js +3 -0
- package/dist/lib/ResultConsumer.d.ts +6 -0
- package/dist/lib/ResultConsumer.d.ts.map +1 -0
- package/dist/lib/ResultConsumer.es.js +2 -0
- package/dist/lib/SingleRedirectModifier.cjs.js +3 -0
- package/dist/lib/SingleRedirectModifier.d.ts +6 -0
- package/dist/lib/SingleRedirectModifier.d.ts.map +1 -0
- package/dist/lib/SingleRedirectModifier.es.js +2 -0
- package/dist/lib/StringReader.cjs.js +164 -0
- package/dist/lib/StringReader.d.ts +29 -0
- package/dist/lib/StringReader.d.ts.map +1 -0
- package/dist/lib/StringReader.es.js +160 -0
- package/dist/lib/arguments/ArgumentType.cjs.js +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts +23 -0
- package/dist/lib/arguments/ArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/ArgumentType.es.js +19 -0
- package/dist/lib/arguments/BoolArgumentType.cjs.js +33 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts +15 -0
- package/dist/lib/arguments/BoolArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/BoolArgumentType.es.js +29 -0
- package/dist/lib/arguments/FloatArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts +18 -0
- package/dist/lib/arguments/FloatArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/FloatArgumentType.es.js +67 -0
- package/dist/lib/arguments/IntegerArgumentType.cjs.js +71 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts +18 -0
- package/dist/lib/arguments/IntegerArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/IntegerArgumentType.es.js +67 -0
- package/dist/lib/arguments/StringArgumentType.cjs.js +73 -0
- package/dist/lib/arguments/StringArgumentType.d.ts +23 -0
- package/dist/lib/arguments/StringArgumentType.d.ts.map +1 -0
- package/dist/lib/arguments/StringArgumentType.es.js +68 -0
- package/dist/lib/builder/ArgumentBuilder.cjs.js +72 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts +30 -0
- package/dist/lib/builder/ArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/ArgumentBuilder.es.js +68 -0
- package/dist/lib/builder/LiteralArgumentBuilder.cjs.js +20 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts +13 -0
- package/dist/lib/builder/LiteralArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/LiteralArgumentBuilder.es.js +11 -0
- package/dist/lib/builder/RequiredArgumentBuilder.cjs.js +21 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts +20 -0
- package/dist/lib/builder/RequiredArgumentBuilder.d.ts.map +1 -0
- package/dist/lib/builder/RequiredArgumentBuilder.es.js +12 -0
- package/dist/lib/context/CommandContext.cjs.js +117 -0
- package/dist/lib/context/CommandContext.d.ts +35 -0
- package/dist/lib/context/CommandContext.d.ts.map +1 -0
- package/dist/lib/context/CommandContext.es.js +113 -0
- package/dist/lib/context/CommandContextBuilder.cjs.js +142 -0
- package/dist/lib/context/CommandContextBuilder.d.ts +40 -0
- package/dist/lib/context/CommandContextBuilder.d.ts.map +1 -0
- package/dist/lib/context/CommandContextBuilder.es.js +138 -0
- package/dist/lib/context/ParsedArgument.cjs.js +30 -0
- package/dist/lib/context/ParsedArgument.d.ts +11 -0
- package/dist/lib/context/ParsedArgument.d.ts.map +1 -0
- package/dist/lib/context/ParsedArgument.es.js +26 -0
- package/dist/lib/context/ParsedCommandNode.cjs.js +32 -0
- package/dist/lib/context/ParsedCommandNode.d.ts +13 -0
- package/dist/lib/context/ParsedCommandNode.d.ts.map +1 -0
- package/dist/lib/context/ParsedCommandNode.es.js +28 -0
- package/dist/lib/context/StringRange.cjs.js +52 -0
- package/dist/lib/context/StringRange.d.ts +18 -0
- package/dist/lib/context/StringRange.d.ts.map +1 -0
- package/dist/lib/context/StringRange.es.js +48 -0
- package/dist/lib/context/SuggestionContext.cjs.js +15 -0
- package/dist/lib/context/SuggestionContext.d.ts +8 -0
- package/dist/lib/context/SuggestionContext.d.ts.map +1 -0
- package/dist/lib/context/SuggestionContext.es.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.cjs.js +3 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts +25 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptionProvider.es.js +2 -0
- package/dist/lib/exceptions/BuiltInExceptions.cjs.js +11 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts +45 -0
- package/dist/lib/exceptions/BuiltInExceptions.d.ts.map +1 -0
- package/dist/lib/exceptions/BuiltInExceptions.es.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.cjs.js +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts +3 -0
- package/dist/lib/exceptions/CommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandExceptionType.es.js +2 -0
- package/dist/lib/exceptions/CommandSyntaxException.cjs.js +11 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts +21 -0
- package/dist/lib/exceptions/CommandSyntaxException.d.ts.map +1 -0
- package/dist/lib/exceptions/CommandSyntaxException.es.js +3 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts +12 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/DynamicCommandExceptionType.es.js +3 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.cjs.js +11 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts +13 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.d.ts.map +1 -0
- package/dist/lib/exceptions/SimpleCommandExceptionType.es.js +3 -0
- package/dist/lib/suggestion/IntegerSuggestion.cjs.js +39 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts +14 -0
- package/dist/lib/suggestion/IntegerSuggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/IntegerSuggestion.es.js +35 -0
- package/dist/lib/suggestion/Suggestion.cjs.js +72 -0
- package/dist/lib/suggestion/Suggestion.d.ts +19 -0
- package/dist/lib/suggestion/Suggestion.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestion.es.js +68 -0
- package/dist/lib/suggestion/SuggestionProvider.cjs.js +3 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts +8 -0
- package/dist/lib/suggestion/SuggestionProvider.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionProvider.es.js +2 -0
- package/dist/lib/suggestion/Suggestions.cjs.js +71 -0
- package/dist/lib/suggestion/Suggestions.d.ts +18 -0
- package/dist/lib/suggestion/Suggestions.d.ts.map +1 -0
- package/dist/lib/suggestion/Suggestions.es.js +67 -0
- package/dist/lib/suggestion/SuggestionsBuilder.cjs.js +59 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts +20 -0
- package/dist/lib/suggestion/SuggestionsBuilder.d.ts.map +1 -0
- package/dist/lib/suggestion/SuggestionsBuilder.es.js +55 -0
- package/dist/lib/tree/ArgumentCommandNode.cjs.js +20 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts +33 -0
- package/dist/lib/tree/ArgumentCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/ArgumentCommandNode.es.js +12 -0
- package/dist/lib/tree/CommandNode.cjs.js +133 -0
- package/dist/lib/tree/CommandNode.d.ts +47 -0
- package/dist/lib/tree/CommandNode.d.ts.map +1 -0
- package/dist/lib/tree/CommandNode.es.js +129 -0
- package/dist/lib/tree/LiteralCommandNode.cjs.js +19 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts +29 -0
- package/dist/lib/tree/LiteralCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/LiteralCommandNode.es.js +11 -0
- package/dist/lib/tree/RootCommandNode.cjs.js +59 -0
- package/dist/lib/tree/RootCommandNode.d.ts +23 -0
- package/dist/lib/tree/RootCommandNode.d.ts.map +1 -0
- package/dist/lib/tree/RootCommandNode.es.js +55 -0
- package/dist/lib/util/isEqual.cjs.js +59 -0
- package/dist/lib/util/isEqual.d.ts +2 -0
- package/dist/lib/util/isEqual.d.ts.map +1 -0
- package/dist/lib/util/isEqual.es.js +55 -0
- package/package.json +40 -41
- package/dist/index.js +0 -82
- package/dist/index.js.map +0 -1
- package/dist/lib/AmbiguityConsumer.js +0 -3
- package/dist/lib/AmbiguityConsumer.js.map +0 -1
- package/dist/lib/Command.js +0 -3
- package/dist/lib/Command.js.map +0 -1
- package/dist/lib/CommandDispatcher.js +0 -360
- package/dist/lib/CommandDispatcher.js.map +0 -1
- package/dist/lib/ImmutableStringReader.js +0 -3
- package/dist/lib/ImmutableStringReader.js.map +0 -1
- package/dist/lib/LiteralMessage.js +0 -15
- package/dist/lib/LiteralMessage.js.map +0 -1
- package/dist/lib/Message.js +0 -3
- package/dist/lib/Message.js.map +0 -1
- package/dist/lib/ParseResults.js +0 -24
- package/dist/lib/ParseResults.js.map +0 -1
- package/dist/lib/Predicate.js +0 -3
- package/dist/lib/Predicate.js.map +0 -1
- package/dist/lib/RedirectModifier.js +0 -3
- package/dist/lib/RedirectModifier.js.map +0 -1
- package/dist/lib/ResultConsumer.js +0 -3
- package/dist/lib/ResultConsumer.js.map +0 -1
- package/dist/lib/SingleRedirectModifier.js +0 -3
- package/dist/lib/SingleRedirectModifier.js.map +0 -1
- package/dist/lib/StringReader.js +0 -176
- package/dist/lib/StringReader.js.map +0 -1
- package/dist/lib/arguments/ArgumentType.js +0 -19
- package/dist/lib/arguments/ArgumentType.js.map +0 -1
- package/dist/lib/arguments/BoolArgumentType.js +0 -30
- package/dist/lib/arguments/BoolArgumentType.js.map +0 -1
- package/dist/lib/arguments/FloatArgumentType.js +0 -61
- package/dist/lib/arguments/FloatArgumentType.js.map +0 -1
- package/dist/lib/arguments/IntegerArgumentType.js +0 -61
- package/dist/lib/arguments/IntegerArgumentType.js.map +0 -1
- package/dist/lib/arguments/StringArgumentType.js +0 -71
- package/dist/lib/arguments/StringArgumentType.js.map +0 -1
- package/dist/lib/builder/ArgumentBuilder.js +0 -66
- package/dist/lib/builder/ArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/LiteralArgumentBuilder.js +0 -33
- package/dist/lib/builder/LiteralArgumentBuilder.js.map +0 -1
- package/dist/lib/builder/RequiredArgumentBuilder.js +0 -44
- package/dist/lib/builder/RequiredArgumentBuilder.js.map +0 -1
- package/dist/lib/context/CommandContext.js +0 -96
- package/dist/lib/context/CommandContext.js.map +0 -1
- package/dist/lib/context/CommandContextBuilder.js +0 -120
- package/dist/lib/context/CommandContextBuilder.js.map +0 -1
- package/dist/lib/context/ParsedArgument.js +0 -27
- package/dist/lib/context/ParsedArgument.js.map +0 -1
- package/dist/lib/context/ParsedCommandNode.js +0 -27
- package/dist/lib/context/ParsedCommandNode.js.map +0 -1
- package/dist/lib/context/StringRange.js +0 -47
- package/dist/lib/context/StringRange.js.map +0 -1
- package/dist/lib/context/SuggestionContext.js +0 -10
- package/dist/lib/context/SuggestionContext.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptionProvider.js +0 -3
- package/dist/lib/exceptions/BuiltInExceptionProvider.js.map +0 -1
- package/dist/lib/exceptions/BuiltInExceptions.js +0 -88
- package/dist/lib/exceptions/BuiltInExceptions.js.map +0 -1
- package/dist/lib/exceptions/CommandExceptionType.js +0 -3
- package/dist/lib/exceptions/CommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/CommandSyntaxException.js +0 -57
- package/dist/lib/exceptions/CommandSyntaxException.js.map +0 -1
- package/dist/lib/exceptions/DynamicCommandExceptionType.js +0 -20
- package/dist/lib/exceptions/DynamicCommandExceptionType.js.map +0 -1
- package/dist/lib/exceptions/SimpleCommandExceptionType.js +0 -23
- package/dist/lib/exceptions/SimpleCommandExceptionType.js.map +0 -1
- package/dist/lib/suggestion/IntegerSuggestion.js +0 -41
- package/dist/lib/suggestion/IntegerSuggestion.js.map +0 -1
- package/dist/lib/suggestion/Suggestion.js +0 -72
- package/dist/lib/suggestion/Suggestion.js.map +0 -1
- package/dist/lib/suggestion/SuggestionProvider.js +0 -3
- package/dist/lib/suggestion/SuggestionProvider.js.map +0 -1
- package/dist/lib/suggestion/Suggestions.js +0 -71
- package/dist/lib/suggestion/Suggestions.js.map +0 -1
- package/dist/lib/suggestion/SuggestionsBuilder.js +0 -54
- package/dist/lib/suggestion/SuggestionsBuilder.js.map +0 -1
- package/dist/lib/tree/ArgumentCommandNode.js +0 -97
- package/dist/lib/tree/ArgumentCommandNode.js.map +0 -1
- package/dist/lib/tree/CommandNode.js +0 -134
- package/dist/lib/tree/CommandNode.js.map +0 -1
- package/dist/lib/tree/LiteralCommandNode.js +0 -93
- package/dist/lib/tree/LiteralCommandNode.js.map +0 -1
- package/dist/lib/tree/RootCommandNode.js +0 -50
- package/dist/lib/tree/RootCommandNode.js.map +0 -1
- package/dist/lib/util/isEqual.js +0 -57
- package/dist/lib/util/isEqual.js.map +0 -1
- 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+ID0gdGhpcy5yb290Tm9kZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBub2RlIG9mIHRoaXMubm9kZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5vZGVSYW5nZTogU3RyaW5nUmFuZ2UgPSBub2RlLmdldFJhbmdlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChub2RlUmFuZ2UuZ2V0U3RhcnQoKSA8PSBjdXJzb3IgJiYgY3Vyc29yIDw9IG5vZGVSYW5nZS5nZXRFbmQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBTdWdnZXN0aW9uQ29udGV4dChwcmV2LCBub2RlUmFuZ2UuZ2V0U3RhcnQoKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcHJldiA9IG5vZGUuZ2V0Tm9kZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocHJldiA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbid0IGZpbmQgbm9kZSBiZWZvcmUgY3Vyc29yXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFN1Z2dlc3Rpb25Db250ZXh0KHByZXYsIHRoaXMucmFuZ2UuZ2V0U3RhcnQoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2FuJ3QgZmluZCBub2RlIGJlZm9yZSBjdXJzb3JcIik7XG4gICAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQVVBLE1BQXFCLHFCQUF5QixDQUFBO0FBQUEsRUFDbEMsSUFBQSx1QkFBZ0QsR0FBSSxFQUFBLENBQUE7QUFBQSxFQUVwRCxRQUFBLENBQUE7QUFBQSxFQUVBLFFBQXFDLEVBQUMsQ0FBQTtBQUFBLEVBRXRDLFVBQUEsQ0FBQTtBQUFBLEVBRUEsTUFBQSxDQUFBO0FBQUEsRUFFQSxPQUFBLENBQUE7QUFBQSxFQUVBLEtBQUEsQ0FBQTtBQUFBLEVBRUEsS0FBQSxDQUFBO0FBQUEsRUFFQSxRQUF1QyxHQUFBLElBQUEsQ0FBQTtBQUFBLEVBRXZDLEtBQUEsQ0FBQTtBQUFBLEVBRUQsV0FBWSxDQUFBLFVBQUEsRUFBa0MsTUFBVyxFQUFBLFFBQUEsRUFBMEIsS0FBZSxFQUFBO0FBQ3JHLElBQUEsSUFBQSxDQUFLLFFBQVcsR0FBQSxRQUFBLENBQUE7QUFDaEIsSUFBQSxJQUFBLENBQUssVUFBYSxHQUFBLFVBQUEsQ0FBQTtBQUNsQixJQUFBLElBQUEsQ0FBSyxNQUFTLEdBQUEsTUFBQSxDQUFBO0FBQ2QsSUFBSyxJQUFBLENBQUEsS0FBQSxHQUFRLFdBQVksQ0FBQSxFQUFBLENBQUcsS0FBSyxDQUFBLENBQUE7QUFBQSxHQUNyQztBQUFBLEVBRU8sV0FBVyxNQUFxQyxFQUFBO0FBQ25ELElBQUEsSUFBQSxDQUFLLE1BQVMsR0FBQSxNQUFBLENBQUE7QUFDZCxJQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sU0FBZSxHQUFBO0FBQ2xCLElBQUEsT0FBTyxJQUFLLENBQUEsTUFBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFdBQThCLEdBQUE7QUFDakMsSUFBQSxPQUFPLElBQUssQ0FBQSxRQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sWUFBQSxDQUFhLE1BQWMsUUFBNEQsRUFBQTtBQUMxRixJQUFLLElBQUEsQ0FBQSxJQUFBLENBQUssR0FBSSxDQUFBLElBQUEsRUFBTSxRQUFRLENBQUEsQ0FBQTtBQUM1QixJQUFPLE9BQUEsSUFBQSxDQUFBO0FBQUEsR0FDWDtBQUFBLEVBRU8sWUFBb0QsR0FBQTtBQUN2RCxJQUFBLE9BQU8sSUFBSyxDQUFBLElBQUEsQ0FBQTtBQUFBLEdBQ2hCO0FBQUEsRUFFTyxZQUFZLE9BQStDLEVBQUE7QUFDOUQsSUFBQSxJQUFBLENBQUssT0FBVSxHQUFBLE9BQUEsQ0FBQTtBQUNmLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxRQUFBLENBQVMsTUFBc0IsS0FBOEMsRUFBQTtBQUNoRixJQUFBLElBQUEsQ0FBSyxNQUFNLElBQUssQ0FBQSxJQUFJLGlCQUFrQixDQUFBLElBQUEsRUFBTSxLQUFLLENBQUMsQ0FBQSxDQUFBO0FBQ2xELElBQUEsSUFBQSxDQUFLLEtBQVEsR0FBQSxXQUFBLENBQVksWUFBYSxDQUFBLElBQUEsQ0FBSyxPQUFPLEtBQUssQ0FBQSxDQUFBO0FBQ3ZELElBQUssSUFBQSxDQUFBLFFBQUEsR0FBVyxLQUFLLG1CQUFvQixFQUFBLENBQUE7QUFDekMsSUFBSyxJQUFBLENBQUEsS0FBQSxHQUFRLEtBQUssTUFBTyxFQUFBLENBQUE7QUFDekIsSUFBTyxPQUFBLElBQUEsQ0FBQTtBQUFBLEdBQ1g7QUFBQSxFQUVPLElBQWlDLEdBQUE7QUFDcEMsSUFBQSxNQUFNLE9BQWlDLElBQUkscUJBQUE7QUFBQSxNQUN2QyxJQUFLLENBQUEsVUFBQTtBQUFBLE1BQ0wsSUFBSyxDQUFBLE1BQUE7QUFBQSxNQUNMLElBQUssQ0FBQSxRQUFBO0FBQUEsTUFDTCxJQUFBLENBQUssTUFBTSxRQUFTLEVBQUE7QUFBQSxLQUN4QixDQUFBO0FBQ0EsSUFBQSxJQUFBLENBQUssVUFBVSxJQUFLLENBQUEsT0FBQSxDQUFBO0FBQ3BCLElBQUssSUFBQSxDQUFBLElBQUEsR0FBTyxJQUFJLEdBQUEsQ0FBSSxDQUFDLEdBQUcsS0FBSyxJQUFNLEVBQUEsR0FBRyxJQUFLLENBQUEsSUFBSSxDQUFDLENBQUEsQ0FBQTtBQUNoRCxJQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsSUFBQSxDQUFLLEdBQUcsSUFBQSxDQUFLLEtBQUssQ0FBQSxDQUFBO0FBQzdCLElBQUEsSUFBQSxDQUFLLFFBQVEsSUFBSyxDQUFBLEtBQUEsQ0FBQTtBQUNsQixJQUFBLElBQUEsQ0FBSyxRQUFRLElBQUssQ0FBQSxLQUFBLENBQUE7QUFDbEIsSUFBQSxJQUFBLENBQUssUUFBUSxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQ2xCLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxVQUFVLEtBQTJELEVBQUE7QUFDeEUsSUFBQSxJQUFBLENBQUssS0FBUSxHQUFBLEtBQUEsQ0FBQTtBQUNiLElBQU8sT0FBQSxJQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxRQUFxQyxHQUFBO0FBQ3hDLElBQUEsT0FBTyxJQUFLLENBQUEsS0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFlBQXlDLEdBQUE7QUFDNUMsSUFBQSxJQUFJLE1BQW1DLEdBQUEsSUFBQSxDQUFBO0FBQ3ZDLElBQU8sT0FBQSxNQUFBLENBQU8sUUFBUyxFQUFBLElBQUssSUFBTSxFQUFBO0FBQzlCLE1BQUEsTUFBQSxHQUFTLE9BQU8sUUFBUyxFQUFBLENBQUE7QUFBQSxLQUM3QjtBQUVBLElBQU8sT0FBQSxNQUFBLENBQUE7QUFBQSxHQUNYO0FBQUEsRUFFTyxVQUF5QixHQUFBO0FBQzVCLElBQUEsT0FBTyxJQUFLLENBQUEsT0FBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFFBQXdDLEdBQUE7QUFDM0MsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sTUFBTSxLQUFrQyxFQUFBO0FBQzNDLElBQUEsT0FBTyxJQUFJLGNBQUE7QUFBQSxNQUNQLElBQUssQ0FBQSxNQUFBO0FBQUEsTUFDTCxLQUFBO0FBQUEsTUFDQSxJQUFLLENBQUEsSUFBQTtBQUFBLE1BQ0wsSUFBSyxDQUFBLE9BQUE7QUFBQSxNQUNMLElBQUssQ0FBQSxRQUFBO0FBQUEsTUFDTCxJQUFLLENBQUEsS0FBQTtBQUFBLE1BQ0wsSUFBSyxDQUFBLEtBQUE7QUFBQSxNQUNMLEtBQUssS0FBUyxJQUFBLElBQUEsR0FBTyxPQUFPLElBQUssQ0FBQSxLQUFBLENBQU0sTUFBTSxLQUFLLENBQUE7QUFBQSxNQUNsRCxJQUFLLENBQUEsUUFBQTtBQUFBLE1BQ0wsSUFBSyxDQUFBLEtBQUE7QUFBQSxLQUNULENBQUE7QUFBQSxHQUNKO0FBQUEsRUFFTyxhQUFzQyxHQUFBO0FBQ3pDLElBQUEsT0FBTyxJQUFLLENBQUEsVUFBQSxDQUFBO0FBQUEsR0FDaEI7QUFBQSxFQUVPLFFBQXdCLEdBQUE7QUFDM0IsSUFBQSxPQUFPLElBQUssQ0FBQSxLQUFBLENBQUE7QUFBQSxHQUNoQjtBQUFBLEVBRU8sc0JBQXNCLE1BQXNDLEVBQUE7QUFDL0QsSUFBQSxJQUFJLElBQUssQ0FBQSxLQUFBLENBQU0sUUFBUyxFQUFBLElBQUssTUFBUSxFQUFBO0FBQ2pDLE1BQUEsSUFBSSxJQUFLLENBQUEsS0FBQSxDQUFNLE1BQU8sRUFBQSxHQUFJLE1BQVEsRUFBQTtBQUM5QixRQUFJLElBQUEsSUFBQSxDQUFLLFNBQVMsSUFBTSxFQUFBO0FBQ3BCLFVBQU8sT0FBQSxJQUFBLENBQUssS0FBTSxDQUFBLHFCQUFBLENBQXNCLE1BQU0sQ0FBQSxDQUFBO0FBQUEsU0FDdkMsTUFBQSxJQUFBLElBQUEsQ0FBSyxLQUFNLENBQUEsTUFBQSxHQUFTLENBQUcsRUFBQTtBQUM5QixVQUFBLElBQUksT0FBNkIsSUFBSyxDQUFBLEtBQUEsQ0FBTSxJQUFLLENBQUEsS0FBQSxDQUFNLFNBQVMsQ0FBQyxDQUFBLENBQUE7QUFDakUsVUFBTyxPQUFBLElBQUksaUJBQWtCLENBQUEsSUFBQSxDQUFLLE9BQVEsRUFBQSxFQUFHLEtBQUssUUFBUyxFQUFBLENBQUUsTUFBTyxFQUFBLEdBQUksQ0FBQyxDQUFBLENBQUE7QUFBQSxTQUN0RSxNQUFBO0FBQ0gsVUFBQSxPQUFPLElBQUksaUJBQWtCLENBQUEsSUFBQSxDQUFLLFVBQVUsSUFBSyxDQUFBLEtBQUEsQ0FBTSxVQUFVLENBQUEsQ0FBQTtBQUFBLFNBQ3JFO0FBQUEsT0FDRyxNQUFBO0FBQ0gsUUFBQSxJQUFJLE9BQXVCLElBQUssQ0FBQSxRQUFBLENBQUE7QUFDaEMsUUFBUyxLQUFBLElBQUEsSUFBQSxJQUFRLEtBQUssS0FBTyxFQUFBO0FBQ3pCLFVBQUksSUFBQSxTQUFBLEdBQXlCLEtBQUssUUFBUyxFQUFBLENBQUE7QUFDM0MsVUFBQSxJQUFJLFVBQVUsUUFBUyxFQUFBLElBQUssVUFBVSxNQUFVLElBQUEsU0FBQSxDQUFVLFFBQVUsRUFBQTtBQUNoRSxZQUFBLE9BQU8sSUFBSSxpQkFBQSxDQUFrQixJQUFNLEVBQUEsU0FBQSxDQUFVLFVBQVUsQ0FBQSxDQUFBO0FBQUEsV0FDM0Q7QUFDQSxVQUFBLElBQUEsR0FBTyxLQUFLLE9BQVEsRUFBQSxDQUFBO0FBQUEsU0FDeEI7QUFDQSxRQUFBLElBQUksUUFBUSxJQUFNLEVBQUE7QUFDZCxVQUFNLE1BQUEsSUFBSSxNQUFNLCtCQUErQixDQUFBLENBQUE7QUFBQSxTQUNuRDtBQUNBLFFBQUEsT0FBTyxJQUFJLGlCQUFrQixDQUFBLElBQUEsRUFBTSxJQUFLLENBQUEsS0FBQSxDQUFNLFVBQVUsQ0FBQSxDQUFBO0FBQUEsT0FDNUQ7QUFBQSxLQUNKO0FBQ0EsSUFBTSxNQUFBLElBQUksTUFBTSwrQkFBK0IsQ0FBQSxDQUFBO0FBQUEsR0FDbkQ7QUFDSjs7OzsifQ==
|
|
@@ -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"}
|