@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
|
@@ -1,360 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const CommandContextBuilder_1 = __importDefault(require("./context/CommandContextBuilder"));
|
|
7
|
-
const CommandSyntaxException_1 = __importDefault(require("./exceptions/CommandSyntaxException"));
|
|
8
|
-
const ParseResults_1 = __importDefault(require("./ParseResults"));
|
|
9
|
-
const RootCommandNode_1 = __importDefault(require("./tree/RootCommandNode"));
|
|
10
|
-
const StringReader_1 = __importDefault(require("./StringReader"));
|
|
11
|
-
const Suggestions_1 = __importDefault(require("./suggestion/Suggestions"));
|
|
12
|
-
const SuggestionsBuilder_1 = __importDefault(require("./suggestion/SuggestionsBuilder"));
|
|
13
|
-
const ARGUMENT_SEPARATOR = ' ';
|
|
14
|
-
const USAGE_OPTIONAL_OPEN = '[';
|
|
15
|
-
const USAGE_OPTIONAL_CLOSE = ']';
|
|
16
|
-
const USAGE_REQUIRED_OPEN = '(';
|
|
17
|
-
const USAGE_REQUIRED_CLOSE = ')';
|
|
18
|
-
const USAGE_OR = '|';
|
|
19
|
-
class CommandDispatcher {
|
|
20
|
-
constructor(root = null) {
|
|
21
|
-
this.consumer = {
|
|
22
|
-
onCommandComplete() { }
|
|
23
|
-
};
|
|
24
|
-
this.root = root || new RootCommandNode_1.default();
|
|
25
|
-
}
|
|
26
|
-
register(command) {
|
|
27
|
-
let build = command.build();
|
|
28
|
-
this.root.addChild(build);
|
|
29
|
-
return build;
|
|
30
|
-
}
|
|
31
|
-
setConsumer(consumer) {
|
|
32
|
-
this.consumer = consumer;
|
|
33
|
-
}
|
|
34
|
-
execute(input, source = null) {
|
|
35
|
-
if (typeof input === 'string')
|
|
36
|
-
input = new StringReader_1.default(input);
|
|
37
|
-
let parse;
|
|
38
|
-
if (input instanceof StringReader_1.default) {
|
|
39
|
-
if (!(source == null))
|
|
40
|
-
parse = this.parse(input, source);
|
|
41
|
-
}
|
|
42
|
-
else
|
|
43
|
-
parse = input;
|
|
44
|
-
if (parse.getReader().canRead()) {
|
|
45
|
-
if (parse.getExceptions().size === 1) {
|
|
46
|
-
throw parse.getExceptions().values().next().value;
|
|
47
|
-
}
|
|
48
|
-
else if (parse.getContext().getRange().isEmpty()) {
|
|
49
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(parse.getReader());
|
|
50
|
-
}
|
|
51
|
-
else {
|
|
52
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.dispatcherUnknownArgument().createWithContext(parse.getReader());
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
let result = [];
|
|
56
|
-
let successfulForks = 0;
|
|
57
|
-
let forked = false;
|
|
58
|
-
let foundCommand = false;
|
|
59
|
-
let command = parse.getReader().getString();
|
|
60
|
-
let original = parse.getContext().build(command);
|
|
61
|
-
let contexts = [];
|
|
62
|
-
contexts.push(original);
|
|
63
|
-
let next = null;
|
|
64
|
-
while (!(contexts == null)) {
|
|
65
|
-
for (let i = 0; i < contexts.length; i++) {
|
|
66
|
-
let context = contexts[i];
|
|
67
|
-
let child = context.getChild();
|
|
68
|
-
if (!(child == null)) {
|
|
69
|
-
forked = forked || context.isForked();
|
|
70
|
-
if (child.hasNodes()) {
|
|
71
|
-
foundCommand = true;
|
|
72
|
-
let modifier = context.getRedirectModifier();
|
|
73
|
-
if (modifier == null) {
|
|
74
|
-
if (next == null)
|
|
75
|
-
next = [];
|
|
76
|
-
next.push(child.copyFor(context.getSource()));
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
try {
|
|
80
|
-
let results = modifier.apply(context);
|
|
81
|
-
if (results.length !== 0) {
|
|
82
|
-
if (next == null)
|
|
83
|
-
next = [];
|
|
84
|
-
for (let source of results) {
|
|
85
|
-
next.push(child.copyFor(source));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
catch (ex) {
|
|
90
|
-
this.consumer.onCommandComplete(context, false, 0);
|
|
91
|
-
if (!forked)
|
|
92
|
-
throw ex;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else if (context.getCommand() != null) {
|
|
98
|
-
foundCommand = true;
|
|
99
|
-
try {
|
|
100
|
-
let value = context.getCommand()(context);
|
|
101
|
-
result.push(value);
|
|
102
|
-
this.consumer.onCommandComplete(context, true, value);
|
|
103
|
-
successfulForks++;
|
|
104
|
-
}
|
|
105
|
-
catch (ex) {
|
|
106
|
-
this.consumer.onCommandComplete(context, false, ex);
|
|
107
|
-
if (!forked)
|
|
108
|
-
throw ex;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
contexts = next;
|
|
113
|
-
next = null;
|
|
114
|
-
}
|
|
115
|
-
if (!foundCommand) {
|
|
116
|
-
this.consumer.onCommandComplete(original, false, 0);
|
|
117
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.dispatcherUnknownCommand().createWithContext(parse.getReader());
|
|
118
|
-
}
|
|
119
|
-
return result;
|
|
120
|
-
}
|
|
121
|
-
parse(command, source) {
|
|
122
|
-
if (typeof command === 'string')
|
|
123
|
-
command = new StringReader_1.default(command);
|
|
124
|
-
let context = new CommandContextBuilder_1.default(this, source, this.root, command.getCursor());
|
|
125
|
-
return this.parseNodes(this.root, command, context);
|
|
126
|
-
}
|
|
127
|
-
parseNodes(node, originalReader, contextSoFar) {
|
|
128
|
-
let source = contextSoFar.getSource();
|
|
129
|
-
let errors = null;
|
|
130
|
-
let potentials = null;
|
|
131
|
-
let cursor = originalReader.getCursor();
|
|
132
|
-
for (let child of node.getRelevantNodes(originalReader)) {
|
|
133
|
-
if (!child.canUse(source))
|
|
134
|
-
continue;
|
|
135
|
-
let context = contextSoFar.copy();
|
|
136
|
-
let reader = new StringReader_1.default(originalReader);
|
|
137
|
-
try {
|
|
138
|
-
child.parse(reader, context);
|
|
139
|
-
if (reader.canRead())
|
|
140
|
-
if (reader.peek() != ARGUMENT_SEPARATOR)
|
|
141
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.dispatcherExpectedArgumentSeparator().createWithContext(reader);
|
|
142
|
-
}
|
|
143
|
-
catch (ex) {
|
|
144
|
-
if (errors == null) {
|
|
145
|
-
errors = new Map();
|
|
146
|
-
}
|
|
147
|
-
errors.set(child, ex);
|
|
148
|
-
reader.setCursor(cursor);
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
context.withCommand(child.getCommand());
|
|
152
|
-
if (reader.canRead(child.getRedirect() == null ? 2 : 1)) {
|
|
153
|
-
reader.skip();
|
|
154
|
-
if (!(child.getRedirect() == null)) {
|
|
155
|
-
let childContext = new CommandContextBuilder_1.default(this, source, child.getRedirect(), reader.getCursor());
|
|
156
|
-
let parse = this.parseNodes(child.getRedirect(), reader, childContext);
|
|
157
|
-
context.withChild(parse.getContext());
|
|
158
|
-
return new ParseResults_1.default(context, parse.getReader(), parse.getExceptions());
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
let parse = this.parseNodes(child, reader, context);
|
|
162
|
-
if (potentials == null) {
|
|
163
|
-
potentials = [];
|
|
164
|
-
}
|
|
165
|
-
potentials.push(parse);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
if (potentials == null) {
|
|
170
|
-
potentials = [];
|
|
171
|
-
}
|
|
172
|
-
potentials.push(new ParseResults_1.default(context, reader, new Map()));
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
if (!(potentials == null)) {
|
|
176
|
-
if (potentials.length > 1) {
|
|
177
|
-
potentials.sort((a, b) => {
|
|
178
|
-
if (!a.getReader().canRead() && b.getReader().canRead()) {
|
|
179
|
-
return -1;
|
|
180
|
-
}
|
|
181
|
-
if (a.getReader().canRead() && !b.getReader().canRead()) {
|
|
182
|
-
return 1;
|
|
183
|
-
}
|
|
184
|
-
if (a.getExceptions().size === 0 &&
|
|
185
|
-
b.getExceptions().size !== 0) {
|
|
186
|
-
return -1;
|
|
187
|
-
}
|
|
188
|
-
if (a.getExceptions().size !== 0 &&
|
|
189
|
-
b.getExceptions().size === 0) {
|
|
190
|
-
return 1;
|
|
191
|
-
}
|
|
192
|
-
return 0;
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
return potentials[0];
|
|
196
|
-
}
|
|
197
|
-
return new ParseResults_1.default(contextSoFar, originalReader, errors == null ? new Map() : errors);
|
|
198
|
-
}
|
|
199
|
-
getAllUsage(node, source, restricted) {
|
|
200
|
-
const result = [];
|
|
201
|
-
this.__getAllUsage(node, source, result, '', restricted);
|
|
202
|
-
return result;
|
|
203
|
-
}
|
|
204
|
-
__getAllUsage(node, source, result, prefix = '', restricted) {
|
|
205
|
-
if (restricted && !node.canUse(source)) {
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
if (node.getCommand() != null) {
|
|
209
|
-
result.push(prefix);
|
|
210
|
-
}
|
|
211
|
-
if (node.getRedirect() != null) {
|
|
212
|
-
const redirect = node.getRedirect() === this.root
|
|
213
|
-
? '...'
|
|
214
|
-
: '-> ' + node.getRedirect().getUsageText();
|
|
215
|
-
result.push(prefix.length === 0
|
|
216
|
-
? node.getUsageText() + ARGUMENT_SEPARATOR + redirect
|
|
217
|
-
: prefix + ARGUMENT_SEPARATOR + redirect);
|
|
218
|
-
}
|
|
219
|
-
else if (node.getChildrenCount() > 0) {
|
|
220
|
-
for (let child of node.getChildren()) {
|
|
221
|
-
this.__getAllUsage(child, source, result, prefix.length === 0
|
|
222
|
-
? child.getUsageText()
|
|
223
|
-
: prefix + ARGUMENT_SEPARATOR + child.getUsageText(), restricted);
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
getSmartUsage(node, source) {
|
|
228
|
-
let result = new Map();
|
|
229
|
-
let optional = node.getCommand() !== null;
|
|
230
|
-
for (let child of node.getChildren()) {
|
|
231
|
-
let usage = this.__getSmartUsage(child, source, optional, false);
|
|
232
|
-
if (!(usage == null)) {
|
|
233
|
-
result.set(child, usage);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
return result;
|
|
237
|
-
}
|
|
238
|
-
__getSmartUsage(node, source, optional, deep) {
|
|
239
|
-
if (!node.canUse(source)) {
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
let self = optional
|
|
243
|
-
? USAGE_OPTIONAL_OPEN + node.getUsageText() + USAGE_OPTIONAL_CLOSE
|
|
244
|
-
: node.getUsageText();
|
|
245
|
-
let childOptional = node.getCommand() != null;
|
|
246
|
-
let open = childOptional ? USAGE_OPTIONAL_OPEN : USAGE_REQUIRED_OPEN;
|
|
247
|
-
let close = childOptional ? USAGE_OPTIONAL_CLOSE : USAGE_REQUIRED_CLOSE;
|
|
248
|
-
if (!deep) {
|
|
249
|
-
if (node.getRedirect() != null) {
|
|
250
|
-
let redirect = node.getRedirect() == this.root
|
|
251
|
-
? '...'
|
|
252
|
-
: '-> ' + node.getRedirect().getUsageText();
|
|
253
|
-
return self + ARGUMENT_SEPARATOR + redirect;
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
let children = [...node.getChildren()].filter((c) => c.canUse(source));
|
|
257
|
-
if (children.length == 1) {
|
|
258
|
-
let usage = this.__getSmartUsage(children[0], source, childOptional, childOptional);
|
|
259
|
-
if (!(usage == null)) {
|
|
260
|
-
return self + ARGUMENT_SEPARATOR + usage;
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
else if (children.length > 1) {
|
|
264
|
-
let childUsage = new Set();
|
|
265
|
-
for (let child of children) {
|
|
266
|
-
let usage = this.__getSmartUsage(child, source, childOptional, true);
|
|
267
|
-
if (!(usage == null)) {
|
|
268
|
-
childUsage.add(usage);
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
if (childUsage.size === 1) {
|
|
272
|
-
let usage = childUsage.values().next().value;
|
|
273
|
-
return (self +
|
|
274
|
-
ARGUMENT_SEPARATOR +
|
|
275
|
-
(childOptional
|
|
276
|
-
? USAGE_OPTIONAL_OPEN +
|
|
277
|
-
usage +
|
|
278
|
-
USAGE_OPTIONAL_CLOSE
|
|
279
|
-
: usage));
|
|
280
|
-
}
|
|
281
|
-
else if (childUsage.size > 1) {
|
|
282
|
-
let builder = open;
|
|
283
|
-
let count = 0;
|
|
284
|
-
for (let child of children) {
|
|
285
|
-
if (count > 0) {
|
|
286
|
-
builder += USAGE_OR;
|
|
287
|
-
}
|
|
288
|
-
builder += child.getUsageText();
|
|
289
|
-
count++;
|
|
290
|
-
}
|
|
291
|
-
if (count > 0) {
|
|
292
|
-
builder += close;
|
|
293
|
-
return self + ARGUMENT_SEPARATOR + builder;
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return self;
|
|
300
|
-
}
|
|
301
|
-
async getCompletionSuggestions(parse, cursor = parse.getReader().getTotalLength()) {
|
|
302
|
-
let context = parse.getContext();
|
|
303
|
-
let nodeBeforeCursor = context.findSuggestionContext(cursor);
|
|
304
|
-
let parent = nodeBeforeCursor.parent;
|
|
305
|
-
let start = Math.min(nodeBeforeCursor.startPos, cursor);
|
|
306
|
-
let fullInput = parse.getReader().getString();
|
|
307
|
-
let truncatedInput = fullInput.substring(0, cursor);
|
|
308
|
-
let futures = [];
|
|
309
|
-
for (let node of parent.getChildren()) {
|
|
310
|
-
let future = await Suggestions_1.default.empty();
|
|
311
|
-
try {
|
|
312
|
-
future = await node.listSuggestions(context.build(truncatedInput), new SuggestionsBuilder_1.default(truncatedInput, start));
|
|
313
|
-
}
|
|
314
|
-
catch (ignored) { }
|
|
315
|
-
futures.push(future);
|
|
316
|
-
}
|
|
317
|
-
return Promise.resolve(Suggestions_1.default.merge(fullInput, futures));
|
|
318
|
-
}
|
|
319
|
-
getRoot() {
|
|
320
|
-
return this.root;
|
|
321
|
-
}
|
|
322
|
-
getPath(target) {
|
|
323
|
-
let nodes = [];
|
|
324
|
-
this.addPaths(this.root, nodes, []);
|
|
325
|
-
for (let list of nodes) {
|
|
326
|
-
if (list[list.length - 1] === target) {
|
|
327
|
-
let result = [];
|
|
328
|
-
for (let node of list) {
|
|
329
|
-
if (node !== this.root) {
|
|
330
|
-
result.push(node.getName());
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
return result;
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
return [];
|
|
337
|
-
}
|
|
338
|
-
findNode(path) {
|
|
339
|
-
let node = this.root;
|
|
340
|
-
for (let name of path) {
|
|
341
|
-
node = node.getChild(name);
|
|
342
|
-
if (node == null)
|
|
343
|
-
return null;
|
|
344
|
-
}
|
|
345
|
-
return node;
|
|
346
|
-
}
|
|
347
|
-
findAmbiguities(consumer, context) {
|
|
348
|
-
this.root.findAmbiguities(consumer, context);
|
|
349
|
-
}
|
|
350
|
-
addPaths(node, result, parents) {
|
|
351
|
-
let current = [];
|
|
352
|
-
current.push(...parents);
|
|
353
|
-
current.push(node);
|
|
354
|
-
result.push(current);
|
|
355
|
-
for (let child of node.getChildren())
|
|
356
|
-
this.addPaths(child, result, current);
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
exports.default = CommandDispatcher;
|
|
360
|
-
//# sourceMappingURL=CommandDispatcher.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CommandDispatcher.js","sourceRoot":"./src/","sources":["lib/CommandDispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ImmutableStringReader.js","sourceRoot":"./src/","sources":["lib/ImmutableStringReader.ts"],"names":[],"mappings":""}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class LiteralMessage {
|
|
4
|
-
constructor(str) {
|
|
5
|
-
this.str = str;
|
|
6
|
-
}
|
|
7
|
-
getString() {
|
|
8
|
-
return this.str;
|
|
9
|
-
}
|
|
10
|
-
toString() {
|
|
11
|
-
return this.str;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.default = LiteralMessage;
|
|
15
|
-
//# sourceMappingURL=LiteralMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LiteralMessage.js","sourceRoot":"./src/","sources":["lib/LiteralMessage.ts"],"names":[],"mappings":";;AAEA,MAAqB,cAAc;IAG/B,YAAoB,GAAW;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,GAAG,CAAC;IACpB,CAAC;CACJ;AAdD,iCAcC"}
|
package/dist/lib/Message.js
DELETED
package/dist/lib/Message.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Message.js","sourceRoot":"./src/","sources":["lib/Message.ts"],"names":[],"mappings":""}
|
package/dist/lib/ParseResults.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const StringReader_1 = __importDefault(require("./StringReader"));
|
|
7
|
-
class ParseResults {
|
|
8
|
-
constructor(context, reader, exceptions) {
|
|
9
|
-
this.context = context;
|
|
10
|
-
this.reader = reader || new StringReader_1.default("");
|
|
11
|
-
this.exceptions = exceptions || new Map();
|
|
12
|
-
}
|
|
13
|
-
getContext() {
|
|
14
|
-
return this.context;
|
|
15
|
-
}
|
|
16
|
-
getReader() {
|
|
17
|
-
return this.reader;
|
|
18
|
-
}
|
|
19
|
-
getExceptions() {
|
|
20
|
-
return this.exceptions;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
exports.default = ParseResults;
|
|
24
|
-
//# sourceMappingURL=ParseResults.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ParseResults.js","sourceRoot":"./src/","sources":["lib/ParseResults.ts"],"names":[],"mappings":";;;;;AAIA,kEAAyC;AAEzC,MAAqB,YAAY;IAQ7B,YAAoB,OAAiC,EAAE,MAA6B,EAAE,UAAuD;QACzI,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,sBAAY,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,GAAG,EAA0C,CAAC;IACtF,CAAC;IAEM,UAAU;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAEM,SAAS;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AAzBD,+BAyBC"}
|
package/dist/lib/Predicate.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Predicate.js","sourceRoot":"./src/","sources":["lib/Predicate.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RedirectModifier.js","sourceRoot":"./src/","sources":["lib/RedirectModifier.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResultConsumer.js","sourceRoot":"./src/","sources":["lib/ResultConsumer.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SingleRedirectModifier.js","sourceRoot":"./src/","sources":["lib/SingleRedirectModifier.ts"],"names":[],"mappings":""}
|
package/dist/lib/StringReader.js
DELETED
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const CommandSyntaxException_1 = __importDefault(require("./exceptions/CommandSyntaxException"));
|
|
7
|
-
const SYNTAX_ESCAPE = '\\';
|
|
8
|
-
const SYNTAX_QUOTE = '\"';
|
|
9
|
-
class StringReader {
|
|
10
|
-
constructor(other) {
|
|
11
|
-
this.cursor = 0;
|
|
12
|
-
if (typeof other === "string") {
|
|
13
|
-
this.string = other;
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
this.string = other.string;
|
|
17
|
-
this.cursor = other.cursor;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
getString() {
|
|
21
|
-
return this.string;
|
|
22
|
-
}
|
|
23
|
-
setCursor(cursor) {
|
|
24
|
-
this.cursor = cursor;
|
|
25
|
-
}
|
|
26
|
-
getRemainingLength() {
|
|
27
|
-
return (this.string.length - this.cursor);
|
|
28
|
-
}
|
|
29
|
-
getTotalLength() {
|
|
30
|
-
return this.string.length;
|
|
31
|
-
}
|
|
32
|
-
getCursor() {
|
|
33
|
-
return this.cursor;
|
|
34
|
-
}
|
|
35
|
-
getRead() {
|
|
36
|
-
return this.string.substring(0, this.cursor);
|
|
37
|
-
}
|
|
38
|
-
getRemaining() {
|
|
39
|
-
return this.string.substring(this.cursor);
|
|
40
|
-
}
|
|
41
|
-
canRead(length = 1) {
|
|
42
|
-
return this.cursor + length <= this.string.length;
|
|
43
|
-
}
|
|
44
|
-
peek(offset = 0) {
|
|
45
|
-
return this.string.charAt(this.cursor + offset);
|
|
46
|
-
}
|
|
47
|
-
read() {
|
|
48
|
-
return this.string.charAt(this.cursor++);
|
|
49
|
-
}
|
|
50
|
-
skip() {
|
|
51
|
-
this.cursor++;
|
|
52
|
-
}
|
|
53
|
-
static isAllowedNumber(c) {
|
|
54
|
-
return c >= '0' && c <= '9' || c == '.' || c == '-' || c == '+' || c == 'e' || c == 'E';
|
|
55
|
-
}
|
|
56
|
-
skipWhitespace() {
|
|
57
|
-
while ((this.canRead() && /\s/.test(this.peek()))) {
|
|
58
|
-
this.skip();
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
readInt() {
|
|
62
|
-
let start = this.cursor;
|
|
63
|
-
while (this.canRead() && StringReader.isAllowedNumber(this.peek())) {
|
|
64
|
-
this.skip();
|
|
65
|
-
}
|
|
66
|
-
let number = this.string.substring(start, this.cursor);
|
|
67
|
-
if (number.length === 0) {
|
|
68
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedInt().createWithContext(this);
|
|
69
|
-
}
|
|
70
|
-
const result = parseFloat(number);
|
|
71
|
-
if (isNaN(result) || result !== Math.round(result)) {
|
|
72
|
-
this.cursor = start;
|
|
73
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerInvalidInt().createWithContext(this, number);
|
|
74
|
-
}
|
|
75
|
-
else
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
readFloat() {
|
|
79
|
-
let start = this.cursor;
|
|
80
|
-
while ((this.canRead() && StringReader.isAllowedNumber(this.peek()))) {
|
|
81
|
-
this.skip();
|
|
82
|
-
}
|
|
83
|
-
let number = this.string.substring(start, this.cursor);
|
|
84
|
-
if (number.length === 0) {
|
|
85
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedFloat().createWithContext(this);
|
|
86
|
-
}
|
|
87
|
-
const result = parseFloat(number);
|
|
88
|
-
if (isNaN(result) || result !== Number(number)) {
|
|
89
|
-
this.cursor = start;
|
|
90
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerInvalidFloat().createWithContext(this, number);
|
|
91
|
-
}
|
|
92
|
-
else
|
|
93
|
-
return result;
|
|
94
|
-
}
|
|
95
|
-
static isAllowedInUnquotedString(c) {
|
|
96
|
-
return c >= '0' && c <= '9'
|
|
97
|
-
|| c >= 'A' && c <= 'Z'
|
|
98
|
-
|| c >= 'a' && c <= 'z'
|
|
99
|
-
|| c == '_' || c == '-'
|
|
100
|
-
|| c == '.' || c == '+';
|
|
101
|
-
}
|
|
102
|
-
readUnquotedString() {
|
|
103
|
-
let start = this.cursor;
|
|
104
|
-
while (this.canRead() && StringReader.isAllowedInUnquotedString(this.peek())) {
|
|
105
|
-
this.skip();
|
|
106
|
-
}
|
|
107
|
-
return this.string.substring(start, this.cursor);
|
|
108
|
-
}
|
|
109
|
-
readQuotedString() {
|
|
110
|
-
if (!this.canRead()) {
|
|
111
|
-
return "";
|
|
112
|
-
}
|
|
113
|
-
else if ((this.peek() != SYNTAX_QUOTE)) {
|
|
114
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedStartOfQuote().createWithContext(this);
|
|
115
|
-
}
|
|
116
|
-
this.skip();
|
|
117
|
-
let result = "";
|
|
118
|
-
let escaped = false;
|
|
119
|
-
while (this.canRead()) {
|
|
120
|
-
let c = this.read();
|
|
121
|
-
if (escaped) {
|
|
122
|
-
if (c == SYNTAX_QUOTE || c == SYNTAX_ESCAPE) {
|
|
123
|
-
result += c;
|
|
124
|
-
escaped = false;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
this.setCursor(this.getCursor() - 1);
|
|
128
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerInvalidEscape().createWithContext(this, c);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else if (c == SYNTAX_ESCAPE) {
|
|
132
|
-
escaped = true;
|
|
133
|
-
}
|
|
134
|
-
else if (c == SYNTAX_QUOTE) {
|
|
135
|
-
return result;
|
|
136
|
-
}
|
|
137
|
-
else {
|
|
138
|
-
result += c;
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedEndOfQuote().createWithContext(this);
|
|
142
|
-
}
|
|
143
|
-
readString() {
|
|
144
|
-
if (this.canRead() && (this.peek() === SYNTAX_QUOTE)) {
|
|
145
|
-
return this.readQuotedString();
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
return this.readUnquotedString();
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
readBoolean() {
|
|
152
|
-
let start = this.cursor;
|
|
153
|
-
let value = this.readString();
|
|
154
|
-
if (value.length === 0) {
|
|
155
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedBool().createWithContext(this);
|
|
156
|
-
}
|
|
157
|
-
if (value === "true") {
|
|
158
|
-
return true;
|
|
159
|
-
}
|
|
160
|
-
else if (value === "false") {
|
|
161
|
-
return false;
|
|
162
|
-
}
|
|
163
|
-
else {
|
|
164
|
-
this.cursor = start;
|
|
165
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerInvalidBool().createWithContext(this, value);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
expect(c) {
|
|
169
|
-
if (!this.canRead() || this.peek() !== c) {
|
|
170
|
-
throw CommandSyntaxException_1.default.BUILT_IN_EXCEPTIONS.readerExpectedSymbol().createWithContext(this, c);
|
|
171
|
-
}
|
|
172
|
-
this.skip();
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
exports.default = StringReader;
|
|
176
|
-
//# sourceMappingURL=StringReader.js.map
|