2011-05-13 80 views
8

我正在尋找用JavaScript語言編寫的Java源代碼解析器的實現。你知道任何?用JavaScript編寫的Java解析器

+2

爲了什麼目的?解釋代碼並運行它?用HTML着色它?將其映射到JSON對象? – Jeff 2011-05-13 14:57:54

+2

你究竟想要做什麼? – 2011-05-13 14:58:00

+0

@Jeff在結果中,我希望有某種抽象語法樹。 – 2011-05-13 15:03:04

回答

9

看一看ANTLR可以了Javascript爲目標,與Java 1.5的語法在http://www.antlr.org/grammar/1152141644268/Java.g

編輯:鏈接停止工作 - 嘗試https://github.com/antlr/grammars-v4/blob/master/java/Java.g4 :)

+0

嗯......好主意!謝謝你,克里斯。但是,我不確定這種解析器的性能足以解析大量的源代碼。 – 2011-05-13 15:38:28

+1

好的。這不是我所期望的解決方案,但目前它只是解決這個問題的解決方案。 – 2011-05-13 16:47:39

+0

@Eliah:「......不確定......大量的源代碼」ANTLR總體上產生了非常高效的解析器。 (我個人的選擇是爲了它,而不是反對它。)我懷疑唯一能找到的方法是生成這樣一個解析器並嘗試它。如果你擔心,爲什麼不使用Java或C++來做到這一點? – 2015-09-08 08:19:05

-3

試試Rhino引擎?

+3

OP正在尋找其他方法。 – 2011-05-13 15:01:01

+4

Rhino解決了相反的問題:它在Java環境中解析JavaScript。 – 2011-05-13 15:11:44

3

我不知道一個Java解析器本身的,但這裏有一些Java腳本解析器生成:

如果其中一個準備黃金時間,您應該能夠將Java語法翻譯成必需的形式,然後使用PGS生成Java解析器的JavaScript。

當然,這隻會給你一個解析器。如果你想做類型分析(正如你的評論似乎在說),那不是解析器所做的。

+0

謝謝您的回覆,斯蒂芬。我正在使用其中一些解析器生成器。我認爲它的性能不足以用C++語法(比如Java)解析大量的代碼,不幸的是。 – 2011-05-13 15:25:58

+2

@Eliah - 這看起來可能與直覺相反,但生成的解析器往往比手寫解析器更快,特別是在PGS成熟的情況下。 – 2011-05-13 15:35:11

+1

我注意到ANTLR也會在Javascript中生成解析器。 – 2011-05-13 16:10:07