主要观点:正在为 Sql 编写分析工具sqleibniz,用于 sqlite 方言,包括静态分析(语法检查、表等是否存在检查等),结合嵌入式 sqlite 运行时和在其中断言条件,提供良好开发体验,还能展示带上下文等的高质量错误消息,项目包括词法分析、语法解析等阶段,之后计划写 lsp 服务器;
关键信息:
sqleibniz工具针对 sqlite 方言,能进行静态分析等操作。- 用宏实现代码重复和抽象语法树节点定义等,如
node!宏。 - 有词法分析和语法解析的测试,包括通过和失败的测试用例,用不同宏实现。
- 匹配字符用
matches!宏,匹配令牌用match语句,在词法分析和语法解析中都有应用。 - 展示了错误显示方式,如缺少分号的错误。
- 介绍了 Rust 的一些特性,如
Option相关操作(is_some_and、map、map_or)、迭代器(过滤字符、检查字符等)。
重要细节: - 宏在 Rust 中的使用细节,如宏参数定义、重复定义等。
- 词法分析和语法解析的具体实现代码和逻辑,如各种函数的功能和执行流程。
- 不同测试用例的具体内容和预期结果。
sqleibniz中错误处理和显示的相关代码和示例。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。