解析器组合子:比正则更好用的解析方式 — Hacker News 中文摘要
来源:t3.at — 152 分
📋 概述
作者从最小的单位讲起:一个“部分解析器”就是任意函数,它决定在输入字符串哪里下刀,返回(解析出的东西,剩余字符串)这个二元组,内部照样可以用正则。把多个部分解析器首尾相接,就能一段段吃掉整个输入;真正好用的一步是把这条链重新封装成一个新的解析器,再用 pSeq 之类的函数把组合本身泛化。
🔑 核心要点
- 最小单位是部分解析器:输入字符串,返回 (token, 剩余字符串)。
- 解析器可以是任何函数,内部用正则也没问题,例如 pInteger 只匹配开头的数字。
- 链式组合把上一个解析器剩下的输入喂给下一个,直到输入被吃空。
- 把整条链封装成新的解析器后,就可以继续和其它解析器组合。
- 进一步抽象出 pSeq,把“把剩余输入递下去”这件事本身变成函数。
💡 金句
Not many people know about them, so allow me to show you!
👍 0
👎 0
← 返回 Hacker News 首页