2011-09-06 57 views
0

我想爲JavaScript編寫解析器。如何在java中編寫JavaScript解析器

我發現我需要用某種方式掃描每個字符,只要我與任何{進行交互,我必須跟蹤下一個}(右花括號)。 爲了高效使用,我可以使用堆棧。 任何人都可以建議我一些更好的想法或方法來構建與Java的JavaScript解析器?

+0

這將對一個簡單的解析器有所幫助,但是如果您希望它有效且快速,它應該使用更智能的方法。在大學裏我記得一門叫做「編譯器和彙編」的課程,都在討論這些東西。 – medopal

+0

我不想那些現在的書,然後我可以遵循什麼算法 –

+0

然後這個簡單的方法現在應該做,並且也考慮正則表達式和模式匹配。 – medopal

回答

1

已經有一個完整的JavaScript引擎用Java編寫的,名稱Rhino。顯然它必須包含一個解析器,它是開源的,所以你可以看看它是如何完成的。

我懷疑你會發現解析JavaScript等語言要比你想象的複雜得多。

2

您可能想要使用ANTLR進行研究 - 它是一種工具,它允許您根據您編寫的語法文件,使用Java或其他語言生成解析器類。您可能會在線查找JavaScript的語法(或至少是部分語法)。

與教程ANTLR的主頁 - http://www.antlr.org/

如果你不熟悉,你可能需要對他們和編譯閱讀了語法的概念;一個良好的第一啓動很可能是維基:http://en.wikipedia.org/wiki/Formal_grammar

1

ANTLR是構建解析器事實上的標準(不僅是在Java中),並且也很容易使用(包括Eclipse plugin)。似乎有一些易於獲得的用於JavaScript的grammars