从JavaScript转换为Python代码?

36 javascript python code-translation

是否有一个相对快速的程序来完成至少这个基础知识?只有几个正则表达式?我愿意做一些手动转换,但这是一个非常大的脚本集.

Pio*_*ski 23

您可以使用Js2Py将JavaScript翻译为Python .它支持整个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
Run Code Online (Sandbox Code Playgroud)

这就是翻译函数在内部的样子(它相当难看):

>>> 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)
Run Code Online (Sandbox Code Playgroud)


Lyn*_*ite 12

更新

现在几(4)年后(几乎可以肯定)可以完成; 虽然肯定没有RegEx.我建议未来的读者关注@Piotr Dabkowski的回答..或者其他一些答案.(我不知道没试过)


原始答案

嗯,这是一个艰难的.编译器的定义从较高级语言转换为较低级语言.例如python到机器代码.或java到javascript(谷歌在这个地方有一个相当着名的编译器 - 它'使谷歌doc更容易制作的东西)Python到javascript编译器比比皆是.技术上javascript to python将是一个反编译器.(据我所知)

我在这里找到了一些关于javascript-python转换器的猜测:按照步骤进行操作.它主要讲的是如何做起来并不难.我找不到任何东西,但这并不意味着它不在那里.

正则表达式不适用,正则表达式仅适用于常规语言.编程语言通常不是常规语言.看到这个

  • @AlekhyaSatya 我不知道。请不要在评论中提问(有一个“提问”按钮:-)) (2认同)

egg*_*ert 7

这个答案可能晚了2年左右,但js - > coffeescript - > python怎么样?如果您使用类似http://js2coffee.org/的内容转换为cs,那么缩进和列表等内容已经为您完成.

  • 这就是为什么我建议使用js2coffee (12认同)