2009-09-10 33 views

回答

0

爲什麼不給ANTLR一下 - 它看起來像它具有ECMAScript中做了一個語法:

http://www.antlr.org/grammar/list

ANTLR的顯然得到了一個C#運行時爲好,即使我只從Java中使用它。

2

我認爲你必須自己建造它,但有一些提示。

完整的JavaScript語法應該在某處可用;快速搜索顯示我JavaScript LL(1) Grammar。 (在RPA Toolkit: Parse JavaScript還有一個適用於JavaScript的BNF模式。)

由於您只是要求解析器,因此我假設您已經有一個詞法分析器。

將該語法轉換爲Yacc文件確實看起來並不可怕。作爲一個例子,有一個C grammar for Yacc

+1

你真的*做過*這個嗎?構建* working *解析器比尋找真正的語言更難。人們似乎認爲,輕鬆地將語法融合在一起就可以了。祝你好運。 (是的,我已經完成了這項工作,有幾種完整的語言)。 – 2011-12-15 18:51:50

0

你是否真的需要從頭開始實施它?一些圖書館如Jint可以做同樣的工作,速度更快,更安全。 Jint是.NET中的一個javascript解釋器 - 得到了我自己的認可。

0

我用COCO/R編寫我的解析器,用於C#http://ssw.jku.at/coco/,因爲它只是在不需要配置的情況下工作。但是,它不是與Yacc,Flex,Bison等源代碼兼容。但是,它的語法更簡單。此外,COCO/R支持一些與C#不同的.NET語言。 ANTLR爲C#工作有更多的功能,但它需要更多的時間在文檔閱讀和工具設置上。