我正在嘗試在Java中編寫一個類似於Latex的簡單語言的解析器,即它包含大量的非結構化文本,並帶有一些\ commands {with} {some} {parameters}在之間。 \ \等逃逸序列也必須考慮在內。在Java中解析latex-like語言
我試着爲JavaCC生成一個解析器,但它看起來好像JavaCC這樣的編譯器編譯器只適用於高度結構化的代碼(典型用於通用編程語言),而不適用於凌亂的乳膠樣標記。到目前爲止,似乎我必須走低層次,編寫自己的有限狀態機。
所以我的問題是,什麼是最簡單的方法來解析大多數非結構化的輸入,只有少數類似Latex的命令?
編輯:由於Latex命令可以嵌套,例如使用有限狀態機,所以很困難。 \ cmd1 {\ cmd2 {\ cmd3 {...}}}
的規範資源[學習寫一個編譯器(HTTP: //stackoverflow.com/questions/1669/learning-to-write-a-compiler)。你的問題可能很小,以至於手工遞歸下降方法是有意義的。另外,我認爲你可能會混淆lexing和解析,這可能會使它看起來比它更難。 – dmckee 2010-08-16 16:33:35