所谓 parser,一般是指把某种格式的文本(字符串)转换成某种数据结构的过程。最常见的 parser,是把程序文本转换成编译器内部的

一种叫做“抽象语法树”(AST)的数据结构。也有简单一些的 parser,用于处理 CSV,JSON,XML 之类的格式。

举个例子,一个处理算数表达式的 parser,可以把“1+2”这样的,含有 1,+,2 三个字符的字符串,转换成一个对象(object)。这

个对象就像 new BinaryExpression(ADD, new Number(1), new Number(2)) 这样的 Java 构造函数调用生成出来的那样。

之所以需要做这种从字符串到数据结构的转换,是因为编译器是无法直接操作“1+2”这样的字符串的。实际上,代码的本质根本就不是

字符串,它本来就是一个具有复杂拓扑的数据结构,就像电路一样。“1+2”这个字符串只是对这种数据结构的一种“编码”,就像 ZIP 

或者 JPEG 只是对它们压缩的数据的编码一样。

这种编码可以方便你把代码存到磁盘上,方便你用文本编辑器来修改它们,然而你必须知道,文本并不是代码本身。所以从磁盘读取了文

本之后,你必须先“解码”,才能方便地操作代码的数据结构。比如,如果上面的 Java 代码生成的 AST 节点叫 node,你就可以用

node.operator 来访问 ADD,用 node.left 来访问 1,node.right 来访问 2。这是很方便的。

对于程序语言,这种解码的动作就叫做 parsing,用于解码的那段代码就叫做 parser。

来源:PY学习网:原文地址:https://www.py.cn/article.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Python中的parser是什么