解析与DOM树构建之解析规则

本文深入探讨浏览器解析文档的规则,解析将文档内容转化为可理解的结构——解析树。解析分为词法分析和句法分析两个阶段,通过匹配语法规则生成节点。以自上而下和自下而上两种方式解析表达式,并介绍了解析生成器如Flex和Bison在构建解析器中的应用。
摘要由CSDN通过智能技术生成

因为解析是渲染引擎中一个非常重要的过程,所以我觉得有必要更加深入的了解一下解析过程。首先来介绍一下浏览器解析的规则。
所谓解析文档其实就是将文档内容转化为代码可以理解和使用的结构。解析的结果通常是一个呈现文档结构的节点树,一般称之为解析树或句法树。
例如,对表达式“2+3-1” 的解析会得到以下树结构
这里写图片描述
解析语法规则
解析过程是基于文档内容所遵从的语法规则的,也就是以某种语言或格式写成的内容。
解析可以被分解为两个子过程-词法分析(lexical)与句法(syntax)分析。
词法分析过程就是将数据拆分成一些标记,即所使用的语言词汇。举例来说,人类语言就是由字典中的词汇所构成的。
句法分析则是语言语法规则的应用。具体解析过程如下图
这里写图片描述
解析是一个可迭代的过程,解析器通常会先从词法器获取一个新的标记然后使用语法规则之一匹配对应的标记,如果该语法规则匹配成功,就会生成一个与标记对应 的节点,节点添加到解析树后解析器再重新获取另一个标记。
通常情况下解析树并不是最后的所得结果,解析只是用来将开发者输入的文档转化为另一种格式,典型的如程序的编译过程。编译器将源代码编译成机器码,第一步就是就是构造解析树然后将其转化为机器码文档,如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值