如何为TEX创建解析器?

我正在寻找开发一个TEX解析器,现在的问题是没有Context Free Grammar并且不能有一个,因为它不是上下文自由语言,我听说它是​​某种宏语言,并且它自己构建。

所以现在我需要指导这种宏语言具有什么样的语法以及如何在c#中构建任何东西。

我将编写标记器和解析器,但我需要TEX中的一些宏规则很难找到,其他地方都有关于如何使用TEX宏的文档。

TeX作为一种编程语言可能是有史以来创造的最复杂(非深奥)语言的大量“保留字”。 您可以重新映射处理器读取的每个字符的含义,并且通常会在解析语言时执行您通常不会遇到的事情。

如果您真的想要创建自己的TeX解析器,则必须在原始TeX上构建。 源代码不仅可用,而且使用Knuth巧妙的WEB工具编写为有文化的程序 。

更复杂的是,您总是使用带有TeX的宏包。 默认包是Plain,最着名的是LaTeX。 宏包中包含一些非常重要的代码,您必须合并这些代码才能解析要解析的TeX的特定“方言”。

这取决于您实际想要实施多少TeX。 LaTeX2HTML是一个将LaTex转换为HTML的perl项目。 还有MathJax将TeX数学转换为HTML或MathML。 如果你想看看一些非TeX程序如何解析TeX看看那些。