diff --git a/devTools/Script to convert SC to JS/SC to JS 1.py b/devTools/Script to convert SC to JS/SC to JS 1.py new file mode 100644 index 0000000000000000000000000000000000000000..dd46ba50efc204d9514030edeb91b046a8da71c3 --- /dev/null +++ b/devTools/Script to convert SC to JS/SC to JS 1.py @@ -0,0 +1,104 @@ +# Script to convert SC passages to JS. +# lowercasedonkey, here. This script was written for the "PythonScript" plugin for notepad++. https://github.com/bruderstein/PythonScript. Not a python guy, but if works somewhere else, great! +# At the moment, you can't "rerun it" on JS. Only run the code on SC, not the output. It won't update the JS. + +# Update slave references +editor.rereplace(r"\$activeSlave", r"slave") +editor.rereplace(r"\$slaves\[\$i\]", r"slave") + +# Update all references +editor.rereplace(r"\$", r"V\.") + +# Clean up print +editor.rereplace(r"<<print (.*)>>", r"${\1}") +editor.rereplace(r"<<= (.*?)>>", r"${\1}") + +# Line breaks for embedded code, beautify later +editor.rereplace(r"([a-zA-Z@].*?)<<", r"$1\n<<") +editor.rereplace(r">>([a-zA-Z,\.@ ].*?)", r">>\n\t$1") + +# Raw text +editor.rereplace(r" ([a-zA-Z@\.,; ].*)", r" r.push\(`\1 `\);") + +# If / else +editor.rereplace(r"<<if (.*?)>>", r"if \1 {") +editor.rereplace(r"<<elseif (.*?)>>", r"} else if \(\1\) {") +editor.rereplace(r"<<else>>", r"} else {") +editor.rereplace(r"<</if>>", r"}") +#fix paren +editor.rereplace(r"([ \n])if ([^\(].*) {", r"\1 if \(\2\) {") +editor.rereplace(r"([ \n])else if ([^\(].*) {", r"\1 else if \(\2\) {") + +# run can happen directly +editor.rereplace(r"<<run (.*?)>>", r"\1;") + +# Set: If it uses "=" let's assume we should let and clean up later +editor.rereplace(r"<<set (.*? =.*?)>>", r"let $1;") +editor.rereplace(r"let (slave\.)", r"$1") +editor.rereplace(r"let (V\.)", r"$1") + +# Set: otherwise we are likely modifying the value +editor.rereplace(r"<<set (.*?)>>", r"$1;") + +#Switch +editor.rereplace(r"<<switch (.*?)>>", r"switch \(\1\) {") +editor.rereplace(r"<</switch>>", r"}") +editor.rereplace(r"<<case (.*?)>>", r"case \1:") +editor.rereplace(r"<<default>>", r"default:") + +# SC markup +editor.rereplace(r"@@\.(.*?);(.*?)@@", r"<span class=\"\1\">\2</span>") +editor.rereplace(r"@@\.(.*?);", r"<span class=\"\1\">") +editor.rereplace(r"@@", r"</span>") + +# JS +editor.rereplace(r" == ", r" === ") +editor.rereplace(r" != ", r" !== ") + +#fix pronouns +editor.rereplace(r"V\.He", r"\${He}") +editor.rereplace(r"V\.he", r"\${he}") +editor.rereplace(r"V\.Him", r"\${Him}") +editor.rereplace(r"V\.him", r"\${him}") +editor.rereplace(r"V\.His", r"\${His}") +editor.rereplace(r"V\.his", r"\${his}") +editor.rereplace(r"V\.Hers", r"\${Hers}") +editor.rereplace(r"V\.hers", r"\${hers}") +editor.rereplace(r"V\.Himself", r"\${Himself}") +editor.rereplace(r"V\.himself", r"\${himself}") +editor.rereplace(r"V\.Girl", r"\${Girl}") +editor.rereplace(r"V\.girl", r"\${girl}") +editor.rereplace(r"V\.Loli", r"\${Loli}") +editor.rereplace(r"V\.loli", r"\${loli}") +editor.rereplace(r"V\.Woman", r"\${Woman}") +editor.rereplace(r"V\.woman", r"\${woman}") +editor.rereplace(r"V\.Hers", r"\${Hers}") +editor.rereplace(r"V\.hers", r"\${hers}") + +#fix pronouns +editor.rereplace(r"_He2", r"\${_He2}") +editor.rereplace(r"_he2", r"\${_he2}") +editor.rereplace(r"_Him2", r"\${_Him2}") +editor.rereplace(r"_him2", r"\${_him2}") +editor.rereplace(r"_His2", r"\${_His2}") +editor.rereplace(r"_his2", r"\${_his2}") +editor.rereplace(r"_Hers2", r"\${_Hers2}") +editor.rereplace(r"_hers2", r"\${_hers2}") +editor.rereplace(r"_Himself2", r"\${_Himself2}") +editor.rereplace(r"_himself2", r"\${_himself2}") +editor.rereplace(r"_Girl2", r"\${_Girl2}") +editor.rereplace(r"_girl2", r"\${_girl2}") +editor.rereplace(r"_Loli2", r"\${_Loli2}") +editor.rereplace(r"_loli2", r"\${_loli2}") +editor.rereplace(r"_Woman2", r"\${_Woman2}") +editor.rereplace(r"_woman2", r"\${_woman2}") +editor.rereplace(r"_Hers2", r"\${_Hers2}") +editor.rereplace(r"_hers2", r"\${_hers2}") + +#look for variables embedded in literals +editor.rereplace(r"( r.push.*?[^{])(V\.[^ ,']*)", r"\1${\2}") +editor.rereplace(r"( r.push.*?[^{])(slave\.[^ ,']*)", r"\1${\2}") + +#remove incompatible comment style +editor.rereplace(r"/%", r"/*") +editor.rereplace(r"%/", r"*/")