| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > JavaScript to XML и обратно |
| Автор: Се ля ви 1.2.2010, 20:50 |
| Нужен какой-то способ парсить JavaScript-код и трансформировать его в какой-либо XML-документ. Желательно при этом ничего не терять для того, что бы было возможно обратное преобразование (желательно иметь XSLT-таблицу или иной способ обратного преобразования, хотя это не обязательно - можно и самому написать). Как ни искал - не нашёл ничего похожего. Сейчас копаюсь в исходниках Rhino, пытаясь использовать их парсер для формирования такого документа, но думаю, может есть способ по-проще? Сфер применения для этого - колоссальное количество. Можно писать на XSLT оптимизатор кода, можно - добавлять поддержку новых конструкций в язык (указывая в XSLT их реализацию и удобно скрывая её от пользователя), можно вносить дополнительные конструкции, ориентируясь на JSDoc-комментарии (проверку типов параметров в начале функции, например), можно автоматически вставлять хаки для браузеров, не полностью поддерживающих стандарты W3C и ECMA - и т.д. Нужен только представление JS-кода в виде удобного XML-формата. P.S. В принципе, можно было бы и вручную чё-то наваять, но уж очень пугает необязательность символа ";" в конце выполняемой конструкции - фактически, алгоритм разбора из-за этого становится многократно сложнее: как в общем случае определять конец конструкции - не совсем ясно... |
| Автор: IDVsbruck 1.2.2010, 21:59 |
| Ха! Разрыв строки имеет больший приоритет в js, чем точка с запятой. При любом парсировании выявить его не составит труда. Заодно валидацию в виде той же точки с запятой можно осуществить. |
| Автор: gcc 2.2.2010, 20:19 |
| валидатора нету? можно же регулярным выражением попробовать... если не очень сильно запутано... вот есть встроенный JavaScript я видел http://search.cpan.org/~claesjac/JavaScript-1.15/lib/JavaScript.pm |
| Автор: Се ля ви 3.2.2010, 17:28 | ||
Насколько я могу судить, для Perl`а это то же самое, что и Rhino - для Java или SpiderMonkey для С++. Но штука-то не в этом. Мне на выходе нужен XML-документ, а не интерпретирование этого кода. |