c# - 如何为 TEX 创建解析器?

标签 c# parsing tex

我想开发一个 TEX 解析器,现在的问题是没有上下文无关文法而且也不可能有,因为它不是上下文无关语言,我听说它是​​某种宏语言并且建立在它的基础上拥有。

所以现在我需要了解这种宏语言具有什么样的语法以及如何在 C# 中构建任何内容。

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

最佳答案

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

如果您真的想创建自己的 TeX 解析器,则必须在原始 TeX 的基础上进行构建。源代码不仅可用,而且写成 literate program使用 Knuth 巧妙的 WEB 工具。

更复杂的是,您总是在 TeX 中使用宏包。默认包是 Plain,最著名的是 LaTeX。宏包包含大量代码,您必须合并这些代码才能解析您要解析的 TeX 的特定“方言”。

关于c# - 如何为 TEX 创建解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3814825/

相关文章:

c# - 序列化代码的最佳位置。正在序列化的类的内部,还是按格式的外部类?

Ruby StringScanner 用于词法分析 : how to get the line number?

java - 使用 dom 解析 gdata xml

python - 在 matplotlib 字幕中偏移一个字符

MATLAB TeX 字符表?

latex - 在 LaTeX 中双倍行距 ACM session 论文

c# - 从与应用程序二进制目录不同的位置加载 WPF app.config/MyApp.exe.config

c# - 获取 html 作为响应而不是从 asmx 服务返回的对象

c# - DynamoDB 和 .NET 对象持久性模型,使用 'ADD' 值而不是覆盖

c++ - 为您的程序添加类似 C/C++ 的预处理能力