Преобразование из JavaScript в код Python? [закрытый]

есть ли относительно быстрая программа, чтобы выполнить, по крайней мере, основы этого? Всего несколько регексов? Я готов выполнить ручное преобразование, но это довольно большой набор сценариев.

5 ответов


Обновлено

теперь несколько (4) лет спустя это (почти наверняка) можно сделать; хотя, конечно, не с регулярным выражением. Я предлагаю читателям посмотреть на ответ @ Piotr Dabkowski.. Или другие ответы. (Я не знаю, не пробовал их)


Оригинальный Ответ

Hm это трудно. Определение компилятора переводится с языка более высокого уровня на язык более низкого уровня. например, Python для машинного кода. или Java для javascript (у google есть довольно известный компилятор для этого где - то-его " что делает Google doc проще сделать) Компиляторы Python для javascript изобилуют. технически javascript для python будет декомпилятором. (афаик)

Я нашел некоторые предположения о JavaScript-python converter здесь: следуйте по протектору. это в основном говорит о том, что это было бы не слишком сложно сделать. Я ничего не могу найти , но это не значит, что там никого нет.

regex не подходит, regex подходит только для обычных языков. языки программирования обычно не являются обычными языками. см.этой


вы можете перевести JavaScript на Python, используя Js2Py. Он поддерживает весь JavaScript, и вы можете использовать его для перевода больших модулей JavaScript, таких как esprima.js (синтаксический анализатор JavaScript 6).


короткое демо:
>>> import js2py
>>> f = js2py.eval_js( "function $(a) {return a + arguments[1]}" )
>>> f
function $(a) { [python code] }
>>> f(1, 2, 3)
3

вот как выглядит переведенная функция внутренне (это довольно уродливо):

>>> print js2py.translate_js( "function $(a) {return a + arguments[1]}" )
from js2py.pyjs import *
var = Scope( JS_BUILTINS )
set_global_object(var)
# Code follows:
var.registers([u'$'])
@Js
def PyJsHoistedNonPyName(a, this, arguments, var=var):
    var = Scope({u'a':a, u'this':this, u'arguments':arguments}, var)
    var.registers([u'a'])
    return (var.get(u'a')+var.get(u'arguments').get(u'1'))
PyJsHoistedNonPyName.func_name = u'$'
var.put(u'$', PyJsHoistedNonPyName)

этот ответ может быть примерно на 2 года позже, но как насчет js - > coffeescript - > python? Если вы используете что-то вродеhttp://js2coffee.org/ чтобы преобразовать в cs, тогда такие вещи, как отступы и списки, уже сделаны для вас.


есть несколько других инструментов, которые могут перевести исходный код JavaScript в Python. Например, Jiphy можно перевести исходный код JavaScript в Python и наоборот.


Если вы просите преобразовать несколько регулярных выражений в javascript в эквивалент Python, основы регулярных выражений в основном довольно стандартны. проверьте Python re module doc. Посмотрите, задокументировано ли то, что вы используете. Также представляет интерес для вас этой страница.

Если вы говорите о преобразовании кода javascript в эквивалент Python, лучшим конвертером является вы. Узнайте о Python, а затем конвертируйте их вручную. там нет ничего лучше человека. Конструкции программирования, такие как циклы, переменные, массивы, довольно распространены и стандартны, вы сразу узнаете, как их использовать.