- 4
- 0
- 约6.88千字
- 约 6页
- 2023-08-14 发布于上海
- 举报
⾼⼿教您编写简单的JSON解析器
编写JSON解析器是熟悉解析技术的最简单⽅法之⼀。格式⾮常简单。它是递归定义的,所以与解析Brainfuck相⽐,你会遇到轻微的挑战 ;
你可能已经使⽤JSON。除了最后⼀点之外,解析 Scheme的S表达式可能是更简单的任务。
解析通常分为两个阶段:词法分析和句法分析。词法分析将源输⼊分解为称为“令牌”的语⾔中最简单的可分解元素。句法分析(通常称为“解
析”)会接收到令牌列表,并尝试查找其中的模式以符合要解析的语⾔。
解析不能确定输⼊源的语义可⾏性。输⼊源的语义可⾏性可能包括变量是否在使⽤之前定义,是否使⽤正确的参数调⽤函数,或者是否可以
在某个范围内第⼆次声明变量。
当然,⼈们选择解析和应⽤语义规则的⽅式总是有所不同,但我正在假设⼀种“传统”⽅法来解释核⼼概念。
JSON库的接⼝
最终,应该有⼀个from_string⽅法接受⼀个JSON编码的字符串并返回等效的Python字典。
例如:
assert_equal(from_string({foo: 1}),
{foo: 1})
词汇分析
词法分析将输⼊字符串分解为令牌。注释和空⽩在词法分析过程中经常被丢弃,因此您只需输⼊⼀个简单的输⼊即可在语法分析过程中搜索
语法匹配。
假设⼀个简单的词法分析器
原创力文档

文档评论(0)