是否有一个相对快速的程序可以至少完成这个基础?只有几个正则表达式?我愿意做一些手动转换,但这是一组相当大的脚本。
4 回答
您可以使用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
这就是翻译后的函数在内部的样子(相当难看):
>>> 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)
更新
现在几(4)年后,这(几乎可以肯定)可以做到;虽然肯定不是 RegEx。我建议未来的读者看看@Piotr Dabkowski 的回答。. 或者其他一些答案。(我不知道有没有尝试过)
原始答案
嗯,这很难。编译器的定义是从高级语言翻译为低级语言。例如 python 到机器码。或 java 到 javascript(谷歌在某个地方有一个相当著名的编译器——它让 google doc 更容易制作)Python 到 javascript 编译器比比皆是。从技术上讲,javascript 到 python 将是一个反编译器。(AFAIK)
我在这里发现了一些关于 javascript-python 转换器的猜测:跟随步骤。它主要是说它不会太难做。我找不到任何东西,但这并不意味着它不存在。
正则表达式不适合,正则表达式仅适用于常规语言。编程语言通常不是常规语言。看到这个
这个答案可能晚了大约 2 年,但是 js -> CoffeeScript -> python 怎么样?如果您使用http://js2.coffee/ 之类的东西来转换为 cs,那么缩进和列表之类的东西已经为您完成了。
如果您要问的是将 javascript 中的一些正则表达式转换为 Python 等效项,那么正则表达式的基础知识大多是相当标准的。查看Python re 模块文档。查看您使用的内容是否已记录在案。你也感兴趣的是这个页面。
如果您正在谈论将 javascript 代码转换为 Python 等效代码,那么最好的转换器就是您。了解 Python,然后手动转换它们。没有什么比人类更好的了。循环、变量、数组等编程结构非常常见且标准,您将立即了解如何立即使用它们。