个人简介

Echo Blog


江湖无名 安心练剑
  • Tree-sitter 文档-09-运算符(Operators)
    运算符(Operators) 捕获节点(Capturing Nodes) 在匹配模式时,你可能希望处理模式中的特定节点。 捕获(Capture) 允许你为模式中的特定节点关联名称,从而在后续处理中通过该名称引用这些节点。 捕获名称写在所引用节点之后,并以 @ 字符开头。 例如,以下模式将匹配把一个 function 赋值给某个 identifier 的语句,并将该标识符命名为 t...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-08-查询语法
    查询语法 一个查询由一个或多个模式组成,其中每个模式都是一个 S 表达式,用于匹配语法树中的一组节点。 用于匹配某个节点的表达式由一对括号构成,其中包含两部分内容:节点类型,以及(可选的)一系列用于匹配该节点子节点的其他 S 表达式。 例如,以下模式将匹配任意一个 binary_expression 节点,并且其两个子节点均为 number_literal 节点: (binary_e...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-07-使用查询进行模式匹配
    使用查询进行模式匹配 代码分析通常需要在源代码中查找特定的模式。Tree-sitter 为此提供了一种简单的模式匹配语言,其方式类似于其单元测试系统中所使用的语言。这使你能够表达并搜索代码结构,而无需编写复杂的解析逻辑。 参考资料 使用查询进行模式匹配 参考资料
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-06-遍历语法树(Walking Trees)
    遍历语法树(Walking Trees) 使用 Tree Cursor 遍历语法树 虽然可以使用前面介绍的 TSNode API 访问语法树中的每一个节点,但当需要访问大量节点时,最高效的方法是使用 Tree Cursor(树游标)。 Tree Cursor 是一个 有状态对象,用于以最高效率遍历语法树。 (Tree-sitter) Cursor 的作用范围 创建 Curs...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-05-高级解析(Advanced Parsing)
    高级解析(Advanced Parsing) 编辑(Editing) 在文本编辑器等应用中,当源代码发生变化后,通常需要重新解析文件。 Tree-sitter 专门针对这种场景进行了高效设计。 该过程需要两个步骤。 第一步:编辑语法树 首先,需要编辑已有的语法树,使节点的范围与修改后的源码保持同步。 typedef struct { uint32_t start_byt...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-04-基础解析(Basic Parsing)
    基础解析(Basic Parsing) 提供源代码(Providing the Code) 在上一章节的示例中,我们使用 ts_parser_parse_string 函数解析存储在普通字符串中的源代码: TSTree *ts_parser_parse_string( TSParser *self, const TSTree *old_tree, const char ...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-03-入门(Getting Started)
    ps 这里可以跳过,因为很多项目存在编译好的包。 入门(Getting Started) 构建库(Building the Library) 在 POSIX 系统上构建 Tree-sitter 库,只需在 Tree-sitter 目录中运行: make 该命令将生成: 一个静态库 libtree-sitter.a 以及对应的动态库文件 或者,你也可以将该库集...
    2026-01-05 13:01:55 | AST
  • Tree-sitter 文档-02-使用解析器(Using Parsers)
    Tree-sitter 使用解析器(Using Parsers) 本指南介绍 Tree-sitter 的核心使用概念,这些概念适用于所有编程语言。 虽然本文档包含一些仅与 C 语言相关的细节(这些内容对于直接使用 C API 或创建新的语言绑定非常重要),但其核心思想在所有语言绑定中都是一致的。 解析功能的实现方式 Tree-sitter 的解析功能通过 C API 提供。 ...
    2026-01-05 13:01:55 | AST