mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-12-24 23:22:29 +01:00
Ran formatter
This commit is contained in:
parent
8d5f80de26
commit
286ab64d67
@ -8,12 +8,12 @@ function parseArg(arg: string): string | number | boolean {
|
|||||||
return asNumber;
|
return asNumber;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg === 'true' || arg === 'false') {
|
if (arg === "true" || arg === "false") {
|
||||||
return arg === 'true';
|
return arg === "true";
|
||||||
}
|
}
|
||||||
|
|
||||||
// Strip quotation marks from strings that begin/end with the same mark
|
// Strip quotation marks from strings that begin/end with the same mark
|
||||||
return arg.replace(/^"(.*?)"$/g, '$1').replace(/^'(.*?)'$/g, '$1');
|
return arg.replace(/^"(.*?)"$/g, "$1").replace(/^'(.*?)'$/g, "$1");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function ParseCommands(commands: string): string[] {
|
export function ParseCommands(commands: string): string[] {
|
||||||
@ -48,14 +48,14 @@ export function ParseCommand(command: string): (string | number | boolean)[] {
|
|||||||
// Track depth of quoted strings, e.g.: "the're 'going away' rather 'quickly \"and awkwardly\"'" should be parsed as a single string
|
// Track depth of quoted strings, e.g.: "the're 'going away' rather 'quickly \"and awkwardly\"'" should be parsed as a single string
|
||||||
const quotes: string[] = [];
|
const quotes: string[] = [];
|
||||||
|
|
||||||
let arg = '';
|
let arg = "";
|
||||||
while (idx < command.length) {
|
while (idx < command.length) {
|
||||||
const c = command.charAt(idx);
|
const c = command.charAt(idx);
|
||||||
|
|
||||||
// If the current character is a backslash, add the next character verbatim to the argument
|
// If the current character is a backslash, add the next character verbatim to the argument
|
||||||
if (c === '\\') {
|
if (c === "\\") {
|
||||||
arg += command.charAt(++idx);
|
arg += command.charAt(++idx);
|
||||||
// If the current character is a single- or double-quote mark, add it to the current argument.
|
// If the current character is a single- or double-quote mark, add it to the current argument.
|
||||||
} else if (c === KEY.DOUBLE_QUOTE || c === KEY.QUOTE) {
|
} else if (c === KEY.DOUBLE_QUOTE || c === KEY.QUOTE) {
|
||||||
arg += c;
|
arg += c;
|
||||||
const quote = quotes[quotes.length - 1];
|
const quote = quotes[quotes.length - 1];
|
||||||
@ -65,32 +65,28 @@ export function ParseCommand(command: string): (string | number | boolean)[] {
|
|||||||
// If we're already in a quoted string, push onto the stack of string starts to track depth.
|
// If we're already in a quoted string, push onto the stack of string starts to track depth.
|
||||||
if (
|
if (
|
||||||
c !== quote &&
|
c !== quote &&
|
||||||
(
|
(prev === KEY.SPACE ||
|
||||||
prev === KEY.SPACE ||
|
|
||||||
prev === KEY.EQUAL ||
|
prev === KEY.EQUAL ||
|
||||||
(c === KEY.DOUBLE_QUOTE && prev === KEY.QUOTE) ||
|
(c === KEY.DOUBLE_QUOTE && prev === KEY.QUOTE) ||
|
||||||
(c === KEY.QUOTE && prev === KEY.DOUBLE_QUOTE)
|
(c === KEY.QUOTE && prev === KEY.DOUBLE_QUOTE))
|
||||||
)
|
|
||||||
) {
|
) {
|
||||||
quotes.push(c);
|
quotes.push(c);
|
||||||
// If the next character is a space and the current character is the same as the previously used
|
// If the next character is a space and the current character is the same as the previously used
|
||||||
// quotation mark, this is a valid end to a string. Pop off the depth tracker.
|
// quotation mark, this is a valid end to a string. Pop off the depth tracker.
|
||||||
} else if (
|
} else if (
|
||||||
c === quote &&
|
c === quote &&
|
||||||
(
|
(next === KEY.SPACE ||
|
||||||
next === KEY.SPACE ||
|
|
||||||
(c === KEY.DOUBLE_QUOTE && next === KEY.QUOTE) ||
|
(c === KEY.DOUBLE_QUOTE && next === KEY.QUOTE) ||
|
||||||
(c === KEY.QUOTE && next === KEY.DOUBLE_QUOTE)
|
(c === KEY.QUOTE && next === KEY.DOUBLE_QUOTE))
|
||||||
)
|
|
||||||
) {
|
) {
|
||||||
quotes.pop();
|
quotes.pop();
|
||||||
}
|
}
|
||||||
// If the current character is a space and we are not inside a string, parse the current argument
|
// If the current character is a space and we are not inside a string, parse the current argument
|
||||||
// and start a new one
|
// and start a new one
|
||||||
} else if (c === KEY.SPACE && quotes.length === 0) {
|
} else if (c === KEY.SPACE && quotes.length === 0) {
|
||||||
args.push(parseArg(arg));
|
args.push(parseArg(arg));
|
||||||
|
|
||||||
arg = '';
|
arg = "";
|
||||||
} else {
|
} else {
|
||||||
// Add the current character to the current argument
|
// Add the current character to the current argument
|
||||||
arg += c;
|
arg += c;
|
||||||
@ -100,7 +96,7 @@ export function ParseCommand(command: string): (string | number | boolean)[] {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Add the last arg (if any)
|
// Add the last arg (if any)
|
||||||
if (arg !== '') {
|
if (arg !== "") {
|
||||||
args.push(parseArg(arg));
|
args.push(parseArg(arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user