Conversion de JavaScript en code Python? [fermé]
Est-il assez rapide programme pour accomplir au moins les bases de ce? Juste quelques regexes? Je suis prêt à faire un peu de conversion manuelle, mais c'est un assez grand ensemble de scripts.
5 réponses
mise à Jour
maintenant plusieurs (4) années plus tard cela peut être fait (presque certainement); mais certainement pas avec RegEx. Je suggère futurs lecteurs de la réponse de@Piotr Dabkowski.. Ou certaines autres réponses. (Je ne sais pas n'ayant pas essayé)
Réponse Originale
Hm c'est un dur. La définition d'un compilateur se traduit d'une langue de niveau supérieur à une langue de niveau inférieur. par exemple python à machine-code. ou java à javascript (google a un compilateur assez célèbre pour ce quelque part-son " ce qui rend google doc plus facile à faire) Les compilateurs Python to javascript abondent. techniquement, javascript en python serait un décompiler. (autant que je sache)
j'ai trouvé des spéculations sur un convertisseur javascript-python ici: suivez la bande de roulement à travers. ça parle surtout de comment ça ne serait pas trop difficile à faire. Je ne trouve rien, mais ça ne veut pas dire qu'il n'y a rien dehors.
Regex est ne convient pas, regex est adapté uniquement pour les langues régulières. les langages de programmation ne sont normalement pas des langages réguliers. voir
vous pouvez traduire JavaScript en Python en utilisant Js2Py. Il prend en charge tout JavaScript et vous pouvez l'utiliser pour traduire de grands modules JavaScript comme esprima.js
(un analyseur JavaScript 6).
démo:
>>> import js2py
>>> f = js2py.eval_js( "function $(a) {return a + arguments[1]}" )
>>> f
function $(a) { [python code] }
>>> f(1, 2, 3)
3
voici à quoi ressemble la fonction traduite en interne (c'est assez laid):
>>> 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)
cette réponse pourrait avoir environ 2 ans de retard mais que diriez-vous DE JS - > coffeescript - > python? Si vous utilisez quelque chose comme http://js2coffee.org/ pour convertir en cs, alors des choses comme l'indentation et les listes sont déjà faites pour vous.
il existe plusieurs autres outils qui peuvent traduire le code source JavaScript en Python. Par exemple, Jiphy peut traduire le code source JavaScript en Python et vice-versa.
si ce que vous demandez est de convertir quelques regex en équivalent javascript en Python, les bases des expressions régulières sont généralement assez standard. découvrez Python module re doc. Voir si ce que vous utilisez est documenté. Également de l'intérêt pour vous est page.
si vous parlez de convertir le code javascript en équivalent Python, le meilleur convertisseur est vous. Apprenez à propos de Python, puis convertissez-les manuellement. il est rien d'autre de mieux que de l'être humain. Programmer des constructions comme des boucles, des variables, des tableaux sont assez communs et standard vous reconnaîtrez instantanément comment les utiliser tout de suite.