Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JavaScript to XML и обратно 
:(
    Опции темы
Се ля ви
Дата 1.2.2010, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Нужен какой-то способ парсить JavaScript-код и трансформировать его в какой-либо XML-документ. Желательно при этом ничего не терять для того, что бы было возможно обратное преобразование (желательно иметь XSLT-таблицу или иной способ обратного преобразования, хотя это не обязательно - можно и самому написать).

Как ни искал - не нашёл ничего похожего.

Сейчас копаюсь в исходниках Rhino, пытаясь использовать их парсер для формирования такого документа, но думаю, может есть способ по-проще?

Сфер применения для этого - колоссальное количество. Можно писать на XSLT оптимизатор кода, можно - добавлять поддержку новых конструкций в язык (указывая в XSLT их реализацию и удобно скрывая её от пользователя), можно вносить дополнительные конструкции, ориентируясь на JSDoc-комментарии (проверку типов параметров в начале функции, например), можно автоматически вставлять хаки для браузеров, не полностью поддерживающих стандарты W3C и ECMA - и т.д.

Нужен только представление JS-кода в виде удобного XML-формата.

P.S. В принципе, можно было бы и вручную чё-то наваять, но уж очень пугает необязательность символа ";" в конце выполняемой конструкции - фактически, алгоритм разбора из-за этого становится многократно сложнее: как в общем случае определять конец конструкции - не совсем ясно...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
IDVsbruck
Дата 1.2.2010, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 8
Всего: 22



Ха! Разрыв строки имеет больший приоритет в js, чем точка с запятой. При любом парсировании выявить его не составит труда.
Заодно валидацию в виде той же точки с запятой можно осуществить.
PM MAIL   Вверх
Се ля ви
Дата 2.2.2010, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Цитата(IDVsbruck @  1.2.2010,  21:59 Найти цитируемый пост)
Разрыв строки имеет больший приоритет в js, чем точка с запятой. При любом парсировании выявить его не составит труда.

Код
return
true;

Будет интерпретировано не так, как 
Код
return true;
, а так, как 
Код
return;
true;

А 
Код
break
outerloop;
 - не так, как 
Код
break outerloop;


Можно придумать и более сложные случаи.

Суть преобразования, насколько я понимаю, в том, что если выражение до символа переноса строки может быть интерпретировано как завершённое, то считается, что там стоит ";", если нет - символ конца строки не учитывается интерпретатором.

Но для того, что бы в общем случае это учесть, нужно встраивать интерпретатор JavaScript в программу и проверять каждую строку методом eval. Мне это не представляется рациональным...


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
gcc
Дата 2.2.2010, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



валидатора нету? можно же регулярным выражением попробовать... если не очень сильно запутано...

вот есть встроенный JavaScript я видел http://search.cpan.org/~claesjac/JavaScrip...b/JavaScript.pm



Это сообщение отредактировал(а) gcc - 2.2.2010, 20:20
PM WWW ICQ Skype GTalk Jabber   Вверх
Се ля ви
Дата 3.2.2010, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



Цитата(gcc @  2.2.2010,  20:19 Найти цитируемый пост)
вот есть встроенный JavaScript я видел http://search.cpan.org/~claesjac/JavaScrip...b/JavaScript.pm

Насколько я могу судить, для Perl`а это то же самое, что и Rhino - для Java или SpiderMonkey для С++. Но штука-то не в этом. Мне на выходе нужен XML-документ, а не интерпретирование этого кода.


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0597 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.