我正在尋找開發一個TEX解析器,現在問題是沒有上下文無關語法,並且不能有一個,因爲它沒有上下文無關的語言,我聽說它是某種宏語言,並建立在它自己的語言。如何爲TEX創建解析器?
所以,現在我需要這個宏語言有什麼樣的語法方向以及如何在c#中構建任何東西。
我將編寫標記器和解析器,但是我需要一些宏的規則,這些規則很難找到,其他地方都有關於如何使用TEX宏的文檔。
我正在尋找開發一個TEX解析器,現在問題是沒有上下文無關語法,並且不能有一個,因爲它沒有上下文無關的語言,我聽說它是某種宏語言,並建立在它自己的語言。如何爲TEX創建解析器?
所以,現在我需要這個宏語言有什麼樣的語法方向以及如何在c#中構建任何東西。
我將編寫標記器和解析器,但是我需要一些宏的規則,這些規則很難找到,其他地方都有關於如何使用TEX宏的文檔。
TeX作爲一種編程語言可能是有史以來用最多的「保留字」創建的最複雜(非深奧)的語言。當處理器讀取每個字符時,您可以重新映射每個字符的含義,並且通常可以處理解析語言時通常不會遇到的問題。
如果你真的想創建自己的TeX解析器,你將不得不建立在原來的TeX上。源代碼不僅可用,而且它使用Knuth的巧妙WEB工具編寫爲literate program。
使問題變得更加複雜,您總是在TeX中使用宏包。默認包是Plain,最着名的是LaTeX。宏包中包含了一小部分代碼,您需要合併才能解析要解析的TeX的特定「方言」。
謝謝,它對我來說很複雜,但我會嘗試一下,我只是想要實現一點TeX,比如用粗體斜體和符號等來編寫小型富文本。就像wiki與html相比,我更喜歡TeX,因爲它可以很好地代表數學。 – 2010-09-28 17:08:57
這取決於您實際需要實施多少TeX。 LaTeX2HTML是一個將LaTex轉換爲HTML的perl項目。也有MathJax它將TeX數學轉換爲HTML或MathML。如果您想了解一些非TeX程序如何解析TeX,請看這些程序。
我只對數學方程感興趣,但我沒有得到完整的語法來實現一個例如x^2是x的平方,其中(x + 2)^ 2是x + 2的平方,但是x^24是x的24次冪,其中x^2 4被一個使x^2和4作爲單獨表達式的空間隔開。所以我沒有關於所有用作標記和表達的具體規則。 – 2011-01-16 10:07:01
你的意思是[「TeX」](http://en.wikipedia.org/wiki/TeX)?如果你這樣做,那麼源代碼可供你翻譯。此外,代碼由[計算機和排版]卷B(http://en.wikipedia.org/wiki/Computers_and_Typesetting)的B卷全面記錄。 – Richard 2010-09-28 16:20:06