我们一起来读书吧 关注:159贴子:3,358
  • 0回复贴,共1
9.3.8 纯文本内容元素的处理
针对 <script>、<style>、<textarea> 这类特殊标签,解析器会切换至特殊模式,将其内部所有内容(包括类似 {{ }} 的字符)直接视为纯文本,不作任何解析,并创建静态AST节点。
9.3.9 使用栈维护DOM层级
解析器利用栈数据结构来管理标签的嵌套关系。遇到开始标签便创建节点并压栈,确立其与栈内前一个节点(即其父节点)的父子关系;遇到结束标签则弹出栈顶节点。这一机制确保了AST能正确反映模板的层级结构。
9.3.10 整体逻辑
HTML解析器是主控流程,通过循环截取字符串并判断起始字符,分别进入开始标签、结束标签、注释或文本等不同的解析分支,各分支协同工作,共同构建完整的AST
9.4 文本解析器
当HTML解析器截取到文本后,会调用文本解析器进行精细处理。其核心任务是识别插值表达式({{ }}),将文本(如 "Hello {{name}}")进行令牌化,并最终生成可供渲染函数使用的代码字符串(如 "Hello " + _s(name))。
9.5 总结
HTML解析器主导流程,配合栈结构管理层级,文本解析器专攻插值,最终共同完成从模板字符串到AST的转换,为后续的代码生成阶段奠定基础。


IP属地:北京1楼2025-10-27 17:15回复