2011-05-13 7 views
8

Je cherche une implémentation de l'analyseur de code source Java écrit en langage JavaScript. En connaissez-vous?Analyseur Java écrit en JavaScript

+2

Dans quel but? Interpréter le code et l'exécuter? Colorisation en HTML? Le mapper dans un objet JSON? – Jeff

+2

Qu'essayez-vous exactement de faire? –

+0

@Jeff Dans le résultat, je voudrais avoir une sorte d'arbre de syntaxe abstraite. –

Répondre

9

Jetez un oeil à ANTLR qui peut avoir Javascript comme cible, avec la grammaire Java 1.5 à http://www.antlr.org/grammar/1152141644268/Java.g

Edit: lien cessé de travailler - essayez https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)

+0

Hm ... Bonne idée! Merci, Chris.Mais, je ne suis pas sûr que la performance d'un tel analyseur serait suffisante pour analyser de grandes quantités de codes sources. –

+1

ok. Ce n'est pas la solution à laquelle je m'attendais, mais actuellement c'est seulement la solution qui résout ce problème. –

+0

@Eliah: "... pas sûr ... de grandes quantités de codes sources" ANTLR produit des analyseurs très efficaces en général. (Mon pari personnel serait pour cela, plutôt que contre.) Je soupçonne que la seule façon de vraiment découvrir est de produire un tel analyseur et de l'essayer. Et si vous êtes concerné, pourquoi ne pas le faire en Java ou en C++? –

-3

Essayez le Rhino moteur?

+3

Le PO cherche l'inverse. –

+4

Rhino résout le problème inverse: il analyse JavaScript dans un environnement Java. –

3

Je ne sais pas d'un analyseur de Java en tant que tel, mais voici quelques générateurs d'analyseur pour Javascript:

Si est l'un d'entre eux est prêt pour le prime time, vous devriez être en mesure de traduire la grammaire pour Java sous la forme requise, puis utiliser les années PGS pour générer un analyseur Java Javascript

Bien sûr, cela ne vous donnera qu'un analyseur. Si vous voulez faire une analyse de type (comme votre commentaire semble le dire), ce n'est pas ce que fait un analyseur.

+0

Merci pour votre réponse, Stephen. Je travaillais avec certains de ces générateurs de parseurs. Je pense que ses performances ne sont pas assez bonnes pour analyser de grandes quantités de code avec une syntaxe similaire à C++ (comme Java), malheureusement. –

+2

@Eliah - Cela peut sembler contre-intuitif, mais les parseurs générés ont tendance à être plus rapides que les parsers écrits à la main, surtout si le SGP est mature. –

+1

J'ai remarqué que ANTLR va aussi générer des parsers en Javascript. –