2011-11-20 34 views
25

示例問題:我想編寫一個Haskell腳本,它將突出顯示(例如,使用\fbox)文檔中第一次出現的數學符號。希望這會幫助我確保我已經介紹了一切。是否有混合(部分結構,部分未修改的文本)解析和重寫的任何Haskell技術?

  • 正則表達式的是不合適的,因爲他們不知道什麼是在數學模式等,並沒有算對事物的邏輯,或者知道,從下一個\section一個變量實際上是一個新的變量。

  • 我也不想爲所有的LaTeX編寫解析器。看來錯誤的概率很高,我真的只想寫一個腳本,而不是一個商業程序。

我寫了一個混合解析器 - 一個得到了一些結構,並保持其餘的文字,在這裏一個問題的答覆。 [How do you use parsec in a greedy fashion?]。但是,我的方法很麻煩。有更好更正式的方法嗎?

+1

不要太急於打折正則表達式 - 記住正則表達式幾乎總是嵌入在一個完整的編程語言(如Haskell在這種情況下),可以計數,執行選擇等。正如我在另一個問題中提到的,你是什麼尋找是「孤島解析」,但Haskell沒有這方面的工具,如果你嘗試用常規的「解析」而不是正則表達式匹配來做到這一點,那麼你立即會遇到識別開始和結束符號以進入和離開解析島的問題。 –

回答

2

您可能需要查看Pandoc library on Hackage來解析Latex。它可以讓你解析,修改和漂亮的打印乳膠以及其他一些格式。

相關問題