我应该阅读 json 和 html 解析器来自己构建一个解析器?

What should I read on json and html parsers to build one myself?

我想创建一个 json 和 html 解析器来加深我对它们的了解(我不想像你想象的那样将其重新发明为 "more efficient") . 我应该阅读什么才能成功?

P.S:我知道解析法则,但在 json 上找不到。

P.P.S: C++ 实现是我的目标。

JSON 在 RFC 8259 (using EBNF) and ECMA-404 中指定(使用铁路图)。由于它们都定义了相同的语法,因此您使用两者中的哪一个并不重要;找一个你更轻松的。

JSON 解析非常简单。另一方面,HTML 是一个庞大的项目,由于缺乏版本化的权威标准而变得更加复杂,这使得它有点像一个移动的目标。

HTML 当前由 "living standard" 定义的解析是一个可能无法封装在上下文无关语法中的过程。没有真正尝试在标准中使用语法描述,尽管如果您忽略处理词汇错误的部分,至少可以提取词汇语法。

当然,您可以为行为良好的子集编写解析器,但该解析器可能无法很好地处理您要处理的许多“HTML”文档。就个人而言,出于学习目的,我建议您尝试一下 XML. (Also see XML Namespaces]。