Изменения от Издателя ГитЖС | Changes of GitJS Publisher
This commit is contained in:
183
пуск|run.js
183
пуск|run.js
@@ -3,7 +3,188 @@
|
||||
// // // //
|
||||
|
||||
|
||||
ВывестиПриветствиеОтRemoveTyphoon= мир =>
|
||||
Перевести = мир =>
|
||||
{
|
||||
var функция = null;
|
||||
var класс = null;
|
||||
var одиночка = false;
|
||||
var свойства = [];
|
||||
|
||||
var строки = ввод.value.split(/\n/);
|
||||
|
||||
for (var номер in строки)
|
||||
{
|
||||
var строка = строки[номер].trim();
|
||||
//console.debug("строка", номер, строка);
|
||||
|
||||
if (!функция && строка.startsWith(мир.перевод.функция))
|
||||
{
|
||||
var конец = строка.indexOf("(");
|
||||
функция = строка.substring(мир.перевод.функция.length, конец);
|
||||
//console.debug("функция", функция);
|
||||
}
|
||||
else if (!класс && строка.startsWith(мир.перевод.класс))
|
||||
{
|
||||
класс = строка.substring(мир.перевод.класс.length);
|
||||
//console.debug("класс", класс);
|
||||
}
|
||||
else if (функция && строка.startsWith(мир.перевод.свойство))
|
||||
{
|
||||
var конец = строка.indexOf(")");
|
||||
var название = строка.substring(мир.перевод.свойство.length, конец);
|
||||
|
||||
var начало = строка.indexOf(мир.перевод.значение);
|
||||
var конецСвойства = строка.indexOf("(", конец + 1);
|
||||
if (конецСвойства == -1)
|
||||
{
|
||||
конецСвойства = строка.indexOf(")", конец + 1);
|
||||
}
|
||||
var значение = строка.substring(начало + мир.перевод.значение.length, конецСвойства);
|
||||
свойства.push({
|
||||
"название": название,
|
||||
"значение": значение,
|
||||
});
|
||||
//console.debug("свойство", название, "значение", значение);
|
||||
}
|
||||
else if (функция && строка.includes(мир.перевод.одиночка))
|
||||
{
|
||||
одиночка = true;
|
||||
}
|
||||
else if (функция && строка == "}")
|
||||
{
|
||||
var экземпляр = "instance";
|
||||
if (одиночка)
|
||||
{
|
||||
экземпляр = "_" + класс;
|
||||
}
|
||||
var содержимое = "";
|
||||
for (var номер in свойства)
|
||||
{
|
||||
var свойство = свойства[номер];
|
||||
содержимое += ` ${экземпляр}.${свойство.название} = ${свойство.значение}()\n`;
|
||||
}
|
||||
if (!одиночка)
|
||||
{
|
||||
вывод.value = `
|
||||
|
||||
func ${функция}() -> ${класс} {
|
||||
let ${экземпляр} = ${класс}()
|
||||
${содержимое}
|
||||
return ${экземпляр}
|
||||
}
|
||||
|
||||
`;
|
||||
}
|
||||
else
|
||||
{
|
||||
вывод.value = `
|
||||
|
||||
private var ${экземпляр}: ${класс}!
|
||||
|
||||
func ${функция}() -> ${класс} {
|
||||
if let ${экземпляр} = ${экземпляр} {
|
||||
return ${экземпляр}
|
||||
}
|
||||
|
||||
${экземпляр} = ${класс}()
|
||||
${содержимое}
|
||||
return ${экземпляр}
|
||||
}
|
||||
|
||||
`;
|
||||
}
|
||||
функция = null;
|
||||
класс = null;
|
||||
одиночка = false;
|
||||
свойства = [];
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ЗадатьНастройкиПеревода = мир =>
|
||||
{
|
||||
мир.перевод = {
|
||||
"функция": "dynamic func ",
|
||||
"класс": "typealias Class = ",
|
||||
"свойство": "definition?.injectProperty(#selector(getter: Class.",
|
||||
"значение": "with: ",
|
||||
"одиночка": "scope",
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
Продублировать = мир =>
|
||||
{
|
||||
вывод.value = ввод.value;
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ОтслеживатьОбновлениеОкнаВвода = мир =>
|
||||
{
|
||||
ввод.addEventListener(
|
||||
"input",
|
||||
function() {
|
||||
мир.уведомить("обновили окно ввода");
|
||||
},
|
||||
false
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
СоздатьОкнаВводаИВывода = мир =>
|
||||
{
|
||||
document.body.innerHTML = `
|
||||
<textarea id="ввод"></textarea>
|
||||
<textarea id="вывод"></textarea>
|
||||
`;
|
||||
|
||||
мир.ввод = document.getElementById("ввод");
|
||||
мир.вывод = document.getElementById("вывод");
|
||||
|
||||
var вид = document.createElement("style");
|
||||
document.head.appendChild(вид);
|
||||
вид.innerHTML = `
|
||||
#ввод
|
||||
{
|
||||
position: fixed;
|
||||
left: 0;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
#вывод
|
||||
{
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 50%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
`;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
// // // //
|
||||
|
||||
|
||||
ВывестиПриветствиеОтRemoveTyphoon = мир =>
|
||||
{
|
||||
console.debug("Привет от Remove Typhoon");
|
||||
};
|
||||
|
||||
@@ -1,2 +1,7 @@
|
||||
пуск
|
||||
вывести приветствие от Remove Typhoon
|
||||
создать окна ввода и вывода
|
||||
отслеживать обновление окна ввода
|
||||
задать настройки перевода
|
||||
обновили окно ввода
|
||||
перевести
|
||||
Reference in New Issue
Block a user