// lowercaseUnquotedText.js
(function () {
/* global adventurejs A */
var p = adventurejs.Parser.prototype;
/**
* Set input to lower case, exclusive of any text
* inside double quotes.
* Ex: In the phrase 'Say "Hello" to Fred' we want
* to lowercase Say and Fred but not Hello.
* @memberOf adventurejs.Parser
* @method adventurejs.Parser#lowercaseUnquotedText
* @param {String} input
* @returns {String}
*/
p.lowercaseUnquotedText = function Parser_unquotedToLowerCase(input) {
this.game.log(
"L1601",
"log",
"low",
`[lowercaseUnquotedText.js] lowercaseUnquotedText() receive: ${input}`,
"Parser"
);
let quoted = false;
let cased_input = "";
for (let i = 0; i < input.length; i++) {
const char = input[i];
if (char === '"') {
quoted = !quoted; // Toggle the flag when encountering quotes
}
if (quoted) {
cased_input += char; // Keep the characters inside quotes unchanged
} else {
cased_input += char.toLowerCase(); // Convert characters outside quotes to lowercase
}
}
input = cased_input;
this.game.log(
"L1602",
"log",
"low",
`[lowercaseUnquotedText.js] lowercaseUnquotedText() return: ${input}`,
"Parser"
);
return input;
};
})();