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
Tree-sitter 文档-01-Tree-sitter 简介(Introduction)
Tree-sitter 简介(Introduction)
Tree-sitter 是一个 解析器生成工具(parser generator) 与 增量解析库(incremental parsing library)。
它能够:
为源代码文件构建 具体语法树(Concrete Syntax Tree,CST)
并在源代码被编辑时,高效地更新语法树
Tree-sitter 的...
2026-01-05 13:01:55 |
AST
tree-sitter 常用的查询表达式汇总 取自 gitnexus 库
核心参考
tree-sitter-queries.ts 参考这个文件
import { SupportedLanguages } from '../../config/supported-languages.js';
/*
* Tree-sitter queries for extracting code definitions.
*
* Note: Different gr...
2026-01-05 13:01:55 |
AI
tree-sitter-java S-expression 表达式查询的例子
maven 引入
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocati...
2026-01-05 13:01:55 |
AI
AI 时代为什么还是需要理解语法树?
Tree Sitter NG
Next generation Tree Sitter Java binding.
Getting started
Add dependencies to your build.gradle or pom.xml.
// Gradle
dependencies {
// add tree sitter
implementation 'i...
2026-01-05 13:01:55 |
AI