2011-05-13 8 views
8

JavaScript言語で書かれたJavaソースコードパーサの実装を探しています。何でも知ってますか?JavaScriptで書かれたJavaパーサ

+2

どのような目的のために?コードを解釈して実行していますか?それをHTMLで色分けしますか?それをJSONオブジェクトにマッピングしますか? – Jeff

+2

あなたは正確に何をしようとしていますか? –

+0

@Jeffその結果、私は何らかの抽象構文木を持っていたいと思います。 –

答えて

9

http://www.antlr.org/grammar/1152141644268/Java.g

編集でのJava 1.5の文法で、ターゲットとしてJavascriptを持つことができますANTLRを見てください:リンクが動作を停止 - ここ:) https://github.com/antlr/grammars-v4/blob/master/java/Java.g4を試してみてください

+0

うーん...いいアイデア!ありがとう、クリス。しかし、私はそのようなパーサーのパフォーマンスが大量のソースコードを解析するのに十分であるとは確信していません。 –

+1

ok。これは私が期待した解決策ではありませんが、現在のところ、この問題を解決する唯一の解決策です。 –

+0

@Eliah: "...確かに...多量のソースコード" ANTLRは一般的に非常に効率的なパーサを生成します。私の実際の賭けは、そのようなパーサーを作り出して試してみる唯一の方法だと思う。そしてあなたが懸念している場合は、なぜJavaやC++を使ってこれをしないのですか? –

-3

Rhinoエンジンを試してみませんか?

+3

OPは逆の方法を探しています。 –

+4

Rhinoは反対の問題を解決します:Java環境でJavaScriptを解析します。 –

3

私は、それ自体がJavaのパーサを知りませんが、ここではJavascriptのためのいくつかのパーサジェネレータは、以下のとおりです。

これらのうちの1つがプライムタイムの準備が整っている場合は、Java用の文法を必要な形式に変換してから、PGSを使用してJavaパーサーを生成する必要があります。 Javascript。

もちろん、これはパーサーだけを提供します。型分析(あなたのコメントが言っているように思われる)をしたいのであれば、それはパーサーが行うものではありません。

+0

返事ありがとう、スティーヴン。私はこれらのパーサジェネレータのいくつかを使って作業していました。私はその性能が、C++のような構文(Javaのような)で大量のコードを解析するのに十分ではないと思いますが、残念です。 –

+2

@Eliah - 直感的ではないように見えるかもしれませんが、生成されたパーサーは手書きパーサよりも高速になる傾向があります。特にPGSが成熟している場合は特にそうです。 –

+1

私はANTLRもJavascriptでパーサを生成することに気付きました。 –

関連する問題