Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Narrative JavaScript (https://javascript.ru/forum/misc/7308-narrative-javascript.html)

mycoding 26.01.2010 21:23

Цитата:

Сообщение от Kolyaj (Сообщение 42194)
По трансляции вам что-то вроде этого http://ermak.cs.nstu.ru/trans/

Мне не то, что бы сама трансляция непотна, а непонятно, как это можно сделать в js, чем это можно сделать?
Я как понял, трансляция, это просто берём, код дальше его видо изменяем,
(как то ) и запускаем.
т.е. например пускай
Изначальный код
cout->('Привет');

Потом трасляция, получаем
alert('Привет');

Kolyaj 26.01.2010 21:44

mycoding,
если новый язык будет просто макро-языком для JavaScript, но можно будет обойтись регулярными выражениями. Если полноценный язык со своим синтаксисом и семантикой, то без, соответственно, синтаксического и семантического анализа не обойтись.

mycoding 26.01.2010 22:16

А как сделано вот здесь http://www.neilmix.com/narrativejs/doc/ ?
Мне бы просто пример что бы переделывало
код из cout->('Привет'); в alert('Привет');
А дальше я разберусь

Мне сейчас одну ссылочку дали вот эту http://is.gd/76ds2
это просто нечто........................................ ...................

Kolyaj 27.01.2010 09:02

Цитата:

Сообщение от mycoding
Мне бы просто пример что бы переделывало
код из cout->('Привет'); в alert('Привет');

var str = 'cout->(\'Hello\');\ncout->(\'World\');'
var code = str.replace(/cout->\('([^']*)'\);/g, 'alert(\'$1\');');
eval(code);

mycoding 27.01.2010 09:34

Цитата:

Сообщение от Kolyaj (Сообщение 42245)
var str = 'cout->(\'Hello\');\ncout->(\'World\');'
var code = str.replace(/cout->\('([^']*)'\);/g, 'alert(\'$1\');');
eval(code);

Так это переделывает из строки, а нужно чтобы переделывало сам код.
Ну ладно, я понял, что это тема хотя и давнишняя, но мало кто знает, у меня друг спец по вебу, был вчера очень удивлён, что такое вообще есть.

Gvozd 27.01.2010 09:44

mycoding,
что вы тут развели за емае?
Цитата:

Сообщение от http://www.neilmix.com/narrativejs/doc/
Narrative JavaScript consists of a compiler and a runtime library. You write your code code as linear Narrative JavaScript (using the yielding operator) and the compiler will parse and translate the code into normal (asynchronous) JavaScript. You then deploy the compiled code along with a runtime library.


Kolyaj 27.01.2010 09:50

Цитата:

Сообщение от mycoding
Так это переделывает из строки, а нужно чтобы переделывало сам код.

А код это не строка? Или вы хотите написать какой-то бред в <script type="text/javascript"> и чтобы он выполнился? Чудес не бывает. Можете писать код в <script type="text/mycoolscript"> потом выдирать его оттуда, транслировать и выполнять.

mycoding 27.01.2010 10:57

Я хочу понять как вот здесь сделано http://www.neilmix.com/narrativejs/doc/
И сделать свой такое же.

Kolyaj 27.01.2010 11:03

Там всё написано.
NjsCompiler.load("moveButton.njs");
Компилятор загружает код и транслирует его в нативный JS.

mycoding 27.01.2010 11:15

Наверное я просто не доганяю, что такое Narative Javascript.
Ну ладно, потом как-нибудь разберу.


Часовой пояс GMT +3, время: 13:37.