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