Browse Source

Изменения от Издателя ГитЖС | Changes of GitJS Publisher

master
Издатель | Publisher 3 years ago
parent
commit
3cc9f0f9fd
2 changed files with 187 additions and 1 deletions
  1. +182
    -1
      пуск|run.js
  2. +5
    -0
      пуск|run.череда

+ 182
- 1
пуск|run.js View File

@@ -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");
};


+ 5
- 0
пуск|run.череда View File

@@ -1,2 +1,7 @@
пуск
вывести приветствие от Remove Typhoon
создать окна ввода и вывода
отслеживать обновление окна ввода
задать настройки перевода
обновили окно ввода
перевести

Loading…
Cancel
Save