如何为 TEX 创建解析器?

2024-01-11

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

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

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


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

如果您确实想创建自己的 TeX 解析器,则必须在原始 TeX 的基础上构建。源代码不仅可用,而且被编写为识字计划 http://en.wikipedia.org/wiki/Literate_programming使用 Knuth 巧妙的 WEB 工具。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 TEX 创建解析器? 的相关文章

随机推荐

  • underlineColorAndroid 无法在 android 中工作

    react native cli 2 0 1 react native 0 52 2 在我的 ios 设备中 表单看起来不错 但在 Android 设备中 它在 TextInput 上显示底部边框 class Input extends C
  • 如果要调用多个成员函数,对象编辑器是一个好方法吗?

    我经常对这样的类成员函数的顺序调用感到恼火 忽略新用法 它是针对 Qt 的 但它与 Qt 并不严格相关 A a new A a gt fun1 one a gt fun2 1 2 a gt fun10 end 我总觉得这样的代码应该写成简单
  • 对不确定数量的 Pandas 系列进行逐元素逻辑与

    假设我有一个 n 的列表 可迭代 其中 n 对于函数来说是未知的 Pandas Series 表示逻辑布尔索引 我想对所有这些元素进行 AND 并使用生成的 Series 来索引 DataFrame 目前我正在使用np logical an
  • 如何在Android Studio/IntelliJ中导入Maven依赖?

    我使用 Android Studio 中的默认向导创建了一个新的 Android 项目 编译并将应用程序部署到我的设备上 一切都很好 现在我想导入 Maven 上可用的外部库 http square github io picasso ht
  • 无法连接到 Windows Azure VM (Server 2012 R2) Web 部署服务

    我似乎无法将站点部署到在 Azure VM 中运行 IIS 和 Web 部署的 Windows Server 2012 r2 我已验证端口是否打开 凭据是否正确以及站点名称是否正确 我尝试使用 http 和 https 也尝试 使用 msd
  • 386+ 处理器中的复位向量

    维基百科页面为重置向量 http en wikipedia org wiki Reset vector说 对于 386 处理器 复位时 CS 寄存器选择器部分的值为 F000h CS 寄存器基址部分的值为 FFFF0000h 复位时 IP
  • Django 和 SaaS。如何为每个 Django 站点使用单独的数据库?

    我正在使用 Django 创建一个 SaaS 项目 我决定使用django saas kit https github com zhaque django saas kit对于用户订阅和多帐户部分 理想情况下 我希望能够为每个用户创建一个新
  • C++ 和完全动态函数

    我有走弯路的问题 众所周知 Detours 只能在 5 个字节的空间之间移动 即 jmp 调用和 4 个字节的地址 因此 类 方法 中不可能有 hook 函数 您无法提供 this 指针 因为根本没有足够的空间 here s https s
  • Flask 应用程序无法在 heroku 服务器上启动

    我正在尝试使用 Heroku 部署 Flask 应用程序 这是简单的 API 与 foreman 一起在本地工作得很好 但在 heroku 上启动时出现错误 日志如下 这是我的应用程序代码 我知道它只是在一个块中查找 但我在将其拆分为文件时
  • VB.Net 损坏的字符串 - IDE 错误地将字符串解释为代码

    今天我打开了一个 Visual Basic 项目 其中有几行声明了一些字符串 其中包含逗号分隔的数据 我修改了其中一根字符串 重建并关闭了该项目 当我来测试时 出现了错误 当我查看代码时 我发现我修改的那一行之后的字符串也发生了变化 它们在
  • 使用 URLClassLoader 动态加载 JAR?

    我有一个程序需要能够在运行时动态加载 JAR 环顾四周后我相信它使用了 URLClassLoader 但我不确定如何让它工作 JAR openup jar 与程序位于同一目录中 Ideally我希望能够加载这个 JAR 而不必指定其中的每个
  • 在 Linux 上将 MSword 转换为 XML/HTML

    我需要将 MSWord 文件转换为 XML 或 HTML 同时保留文件的结构 主要是表格 我偶然发现了tika 它在从MSword文件 和任何文件 中提取文本方面非常强大 如下 curl www vit org downloads doc
  • TFS 2017 不构建 Fakes 目标

    我有一个安装了 VS 2017 Enterprise 的 TFS 2017 Update 2 本地服务器 我们的构建包含一个单元测试项目 其中包含一个 Fakes 程序集并在开发计算机上本地工作 在 TFS 上构建时 构建失败并显示 命名空
  • 动态插入 iframe 中的 jQuery .ready

    我们正在使用 jQuerythickbox http jquery com demo thickbox 当有人点击图片时动态显示 iframe 在此 iframe 中 我们使用galleria http devkick com lab ga
  • 更改总计和tax_total Woocommerce

    我使用自定义计算创建自定义结帐页面 我如何无法通过 Ajax 更改总计和tax total 或根据需要刷新页面 我为 ajax 请求创建自定义页面并设置此代码 ss new WC Session Handler ss gt set tax
  • 在 Hibernate 中使用惰性属性

    hibernate 中属性标签的惰性属性允许按照链接延迟加载属性 http docs jboss org hibernate orm 3 3 reference en US html mapping html mapping declara
  • 在 git 命令中的开关之前放置 - 和 -​- [重复]

    这个问题在这里已经有答案了 为什么我们把 在 git 中进行一些切换之前 在其他人之前 有没有任何经验法则可以帮助您记住使用哪一个 这实际上是一个通用的类 Unix 系统功能 在 GNU 应用程序中变得很常见 单破折号选项是 短 选项 双破
  • 使用 lapply 根据旧列创建新列

    我的数据如下 DF lt structure list No Adjusted Gross Income c 183454 241199 249506 NoR from 1 to 5000 c 1035373 4272260 1124098
  • 在 VS 2005 中增量构建

    我们在 VS 2005 中有 50 个项目的解决方案 如果没有任何改变 有什么方法可以进行增量构建吗 它有点像现在就这样做 但它执行每个项目的所有预构建和构建后事件 有什么办法可以预防吗 看看构建活动标签 请注意底部的下拉菜单 上面写着运行
  • 如何为 TEX 创建解析器?

    我正在寻求开发一个 TEX 解析器 现在的问题是没有上下文无关语法 也不可能有 因为它不是上下文无关语言 我听说它是 某种宏语言并且是建立在自己的基础上的 所以现在我需要指导这种宏语言具有什么样的语法以及如何在 C 中构建任何内容 我将编写