编译原理从零到一 写一个 JSON parser
最近在做 Chrome 插件的高级功能,突然想要试试可视化选择 key 的路径,再一想,咦,这不就是个编译原理的典型例题吗?
于是我就开始着手学编译原理了,主要参考 dalao 的以下两篇文章:
编译原理一共分为四个部分:词法分析,语法(文法)分析,语义分析,代码生成。
词法分析,就是逐个解析之后加上词性,语法分析则是将词法分析后的结果解析为抽象语法树,语义分析是在语法分析时针对具体的实例加上额外的动作解释。具体的可以见上面的链接。
在 JSON 的首页有非常完整的词法和语法分析的 token 列表甚至是流程图,所以可以省去了一些劳动。