我正在寻找开发一个TEX解析器,现在问题是没有Context Free Grammar而且不可能有一个,因为它不是上下文无关语言,我听说它是某种宏语言并且建立在它的基础上自己的。
所以现在我需要指明这种宏语言有什么样的语法,以及如何在c#中构建任何东西。
我将编写标记器和解析器,但我需要TEX中的一些宏规则很难找到,其他地方都有关于如何使用TEX宏的文档。
答案 0 :(得分:7)
如果您真的想要创建自己的TeX解析器,则必须在原始TeX上构建。源代码不仅可用,而且使用Knuth的巧妙WEB工具编写为literate program。
为了使问题更加复杂,您总是使用带有TeX的宏包。默认包是Plain,最着名的是LaTeX。宏包中包含一些非常重要的代码,您必须合并这些代码才能解析要解析的TeX的特定“方言”。
答案 1 :(得分:3)
这取决于您实际想要实施多少TeX。 LaTeX2HTML是一个将LaTex转换为HTML的perl项目。还有MathJax将TeX数学转换为HTML或MathML。如果你想看看一些非TeX程序如何解析TeX,请看这些。