用 PEG 替代正则:Lisp 解析 Org 转 HTML

Parsing Expression Grammar vs. Regexes: Building Org Parser in Lisp, Export HTML

用 PEG 替代正则:Lisp 解析 Org 转 HTML

我曾尝试用正则表达式解析 Org mode,但很快发现面对嵌套列表和复杂标记时,这种方法简直是在描述解析器的 bug 历史。于是,我转向了 Parsing Expression Grammars (PEG),利用 Guile Scheme 中的 (ice-9 peg) 模块开发了 OrgWebAlchemy。这个项目不仅能将 Org 文档解析为 AST 并渲染为 HTML,更重要的是,它让语法定义本身成为了文档,摆脱了对 Emacs 的依赖。通过 SXML 构建 HTML 树,我实现了一个轻量、可定制且完全开源的解析器,让 Lisp 程序员能更优雅地处理文本转换。

这不再是在描述一种语言,而是在描述你的解析器 bug 的历史。

同日更多故事

2026-09-26