IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:解析器

共 2 篇相关文章

IT 累计浏览 5,693

Hive源码解析-之-语法解析器

这篇讲的是Hive SQL引擎中语法解析器的具体实现。作者从上次分析的词法分析成果出发,揭示了语法解析器如何以生成的语法树为基础,承担起将Token流转化为具体查询结构的重任。 文章的核心在于剖析其设计:解析器根据遇到的语法Token情况,具体实现了五种不同的解析器。这种设计巧妙地应对了Hive SQL语法的多样性和复杂性。通过深入源码,文章清晰地展示了每种解析器所对应的具体语法结构(如DDL、DML、事务语句等)以及它们的分工逻辑。 对于想理解SQL引擎内部工作机制或Hive源码的同学,这篇文章提供了一个清晰的切入口,展现了如何将语法理论具体化为模块化的工程代码。

IT 累计浏览 1,471

使用Narcissus解析JavaScript代码

作者在开发一个JavaScript实验项目时,需要在客户端直接将JavaScript代码解析成语法树——也就是说,用JavaScript实现一个JavaScript解析器。这类工具其实不少,像yacc、lex、bison都有对应的JavaScript版本,用ANTLR生成JavaScript目标代码也是一种选择。不过作者希望快速投入实验核心,不想在解析器构建上耗费太多时间,于是把目光投向了现成的方案。 经过权衡,作者最终选择了Narcissus。这是一款由Mozilla开发者编写的JavaScript解析器,完全用JavaScript实现,可以直接将源码转换为抽象语法树(AST)。它的轻量和现成可用的特点,正好满足了作者“避免重复造轮子”的需求。文章从实际的开发痛点出发,对比了多种解析方案的优劣,并给出了明确的技术选型依据。对于同样需要在浏览器或Node.js环境中处理JavaScript代码结构的开发者来说,Narcissus提供了一个现成且高效的起点。