2010-03-29 31 views
9

我一直在使用ANTLR爲帶Java標記的標記語言生成一個解析器+樹語法,它工作正常。現在我正試圖讓JavaScript中的目標在我的Web瀏覽器中使用它。ANTLR JavaScript目標

但是,我還沒有找到任何有關如何去做這件事的好文檔。我在ANTLR IDE中使用eclipse,當我將JavaScript語言指定爲語言時,出現以下錯誤。

在這條線

  • (10)多標記:內部錯誤:組的JavaScript不滿足接口ANTLRCore:錯配的參數對這些模板[treeParser(語法,名稱,範圍,代幣,tokenNames,globalAction ,規則,numRules,位集,labelType,ASTLabelType,超類,成員,FILTERMODE)]

  • (10):內部錯誤:java.util.NoSuchElementException:沒有這樣的屬性:在FILTERMODE模板上下文[treeParser]

如果任何人都可以幫我解決這個問題,或者指出一些我可以用ANTLR閱讀關於JavaScript目標的資料,那就太好了。

感謝

+1

我實際上現在能夠在JavaScript中生成解析器,它可以很好地識別事物。但是當我嘗試在JavaScript目標中生成樹步行者時,它無法實現。我認爲主要原因是上面列出的錯誤2。 – Gunner4Life 2010-03-29 21:21:33

+0

我不確定你嘗試使用的是哪個版本的ANTLR版本,但是我看到了與我嘗試使用的官方版本相同的錯誤。我剛剛從perforce服務器獲得了ANTLR tar,並用maven構建了它,而javascript的東西似乎適用於我 - 至少我用無可爭議的語法來說明了這一點。 – 2010-05-17 19:20:16

+0

我想出了錯誤是什麼。 JavaScript的目標在ANTLR的最新版本中被打破了,導致了這個問題。解決方案是構建源代碼或使用較早的版本。 – Gunner4Life 2010-05-19 19:06:51

回答

0

看起來好像JavaScript目標在3.4發行版中被再次破壞。 3.3雖然對我來說很好。

0

我一直在努力得到這個工作,並且纔剛剛設法生成.js文件成功地看完這個:

http://www.antlr3.org/pipermail/antlr-interest/2011-August/042417.html

從帖子:

這裏是如何開始與ANTLR和JavaScript後端:

  1. 下載ANTLRWorks 1.2.2:< http://antlr.org/download/antlrworks-1.2.2.jar>。 JavaScript目標 僅在IDE生成詞法分析器和解析器代碼時有效(請參閱< http://antlr.1301665.n2.nabble.com/maven-plugin-and-javascript-target-td3647109.html>)。 如果您嘗試從命令行運行ANTLR v3.1,您將看到錯誤 消息「錯誤(10):內部錯誤:組JavaScript不符合 接口ANTLRCore」。
  2. 下載JS運行時間分佈: http://antlr.org/download/antlr-javascript-runtime-3.1.zip

From then on you can use ANTLRWorks 1.2.2 to generate the lexer and parser code by selecting "Generate Code" from the "Generate" menu. ANTLRWorks will place the generated files into an output directory in the folder in which the grammar file resides.

注意,如果在生成過程中出現錯誤,然後由於某種原因 「生成代碼」操作不再起作用。只需關閉語法,然後從「打開最近」菜單重新打開它。

3

沒有爲ANTLR4一個新的JS朗目標所張貼的GitHub的近3個月前:

antlr/antlr4-javascript

它沒有集成到正式發佈,但你可能只扔到最新的ANTLR4代碼庫並自行重新編譯ANTLR。

+0

antlr4-javascript項目現在具有基於瀏覽器的測試,並且更加充實。在JavaScriptTarget的源代碼中,似乎預期的發佈目標是ANTLR 4.5。 – jhyry 2014-12-10 19:25:29

+4

鏈接無法正常工作 – 2016-04-12 23:43:35

+0

下面是更新的鏈接及更新信息:https://github.com/antlr/antlr4/blob/master/doc/javascript-target.md – 2016-08-10 00:01:38