Изменения от Издателя ГитЖС | 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");
|
console.debug("Привет от Remove Typhoon");
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,2 +1,7 @@
|
|||||||
пуск
|
пуск
|
||||||
вывести приветствие от Remove Typhoon
|
вывести приветствие от Remove Typhoon
|
||||||
|
создать окна ввода и вывода
|
||||||
|
отслеживать обновление окна ввода
|
||||||
|
задать настройки перевода
|
||||||
|
обновили окно ввода
|
||||||
|
перевести
|
||||||
Reference in New Issue
Block a user