parser

package
v0.0.0-...-a9b89ad Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2025 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseExtractor

type BaseExtractor struct{}

BaseExtractor 基础提取器,提供通用功能

type CExtractor

type CExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

CExtractor C语言提取器

func NewCExtractor

func NewCExtractor() *CExtractor

NewCExtractor 创建C语言提取器

func (*CExtractor) ExtractComments

func (c *CExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取C注释

func (*CExtractor) ExtractMethods

func (c *CExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取C方法(C语言没有类,所以返回空)

func (*CExtractor) ExtractPrototype

func (c *CExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取C函数原型

func (*CExtractor) GetQueries

func (c *CExtractor) GetQueries() []string

GetQueries 获取C语言的Tree-sitter查询规则

func (*CExtractor) IsClassNode

func (c *CExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*CExtractor) IsFunctionBodyNode

func (c *CExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*CExtractor) IsInsideClass

func (c *CExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type CSharpExtractor

type CSharpExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

CSharpExtractor C#语言提取器

func NewCSharpExtractor

func NewCSharpExtractor() *CSharpExtractor

NewCSharpExtractor 创建C#语言提取器

func (*CSharpExtractor) ExtractComments

func (c *CSharpExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取C#注释

func (*CSharpExtractor) ExtractMethods

func (c *CSharpExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取C#类内部的方法或命名空间内部的类

func (*CSharpExtractor) ExtractPrototype

func (c *CSharpExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取C#类原型

func (*CSharpExtractor) GetQueries

func (c *CSharpExtractor) GetQueries() []string

GetQueries 获取C#语言的Tree-sitter查询规则

func (*CSharpExtractor) IsClassNode

func (c *CSharpExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点或命名空间节点

func (*CSharpExtractor) IsFunctionBodyNode

func (c *CSharpExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*CSharpExtractor) IsInsideClass

func (c *CSharpExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type CppExtractor

type CppExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

CppExtractor C++语言提取器

func NewCppExtractor

func NewCppExtractor() *CppExtractor

NewCppExtractor 创建C++语言提取器

func (*CppExtractor) ExtractComments

func (c *CppExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取C++注释

func (*CppExtractor) ExtractMethods

func (c *CppExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取C++类内部的方法或命名空间内部的类

func (*CppExtractor) ExtractPrototype

func (c *CppExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取C++类原型

func (*CppExtractor) GetQueries

func (c *CppExtractor) GetQueries() []string

GetQueries 获取C++语言的Tree-sitter查询规则

func (*CppExtractor) IsClassNode

func (c *CppExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点或命名空间节点

func (*CppExtractor) IsFunctionBodyNode

func (c *CppExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*CppExtractor) IsInsideClass

func (c *CppExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type ExtractorFactory

type ExtractorFactory struct{}

ExtractorFactory 提取器工厂

func NewExtractorFactory

func NewExtractorFactory() *ExtractorFactory

NewExtractorFactory 创建提取器工厂

func (*ExtractorFactory) GetExtractor

func (f *ExtractorFactory) GetExtractor(language string) LanguageExtractor

GetExtractor 根据语言获取对应的提取器

type GoExtractor

type GoExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

GoExtractor Go语言提取器

func NewGoExtractor

func NewGoExtractor() *GoExtractor

NewGoExtractor 创建Go语言提取器

func (*GoExtractor) ExtractComments

func (g *GoExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取Go注释

func (*GoExtractor) ExtractMethods

func (g *GoExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取Go方法(Go没有类,方法通过receiver关联)

func (*GoExtractor) ExtractPrototype

func (g *GoExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取Go函数/类型原型

func (*GoExtractor) GetQueries

func (g *GoExtractor) GetQueries() []string

GetQueries 获取Go语言的Tree-sitter查询规则

func (*GoExtractor) IsClassNode

func (g *GoExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*GoExtractor) IsFunctionBodyNode

func (g *GoExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*GoExtractor) IsInsideClass

func (g *GoExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type JSExtractor

type JSExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

JSExtractor JavaScript/TypeScript语言提取器

func NewJSExtractor

func NewJSExtractor() *JSExtractor

NewJSExtractor 创建JavaScript/TypeScript语言提取器

func (*JSExtractor) ExtractComments

func (j *JSExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取JS/TS注释

func (*JSExtractor) ExtractMethods

func (j *JSExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取JS/TS类内部的方法

func (*JSExtractor) ExtractPrototype

func (j *JSExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取JS/TS函数/类原型

func (*JSExtractor) GetQueries

func (j *JSExtractor) GetQueries() []string

GetQueries 获取JavaScript/TypeScript语言的Tree-sitter查询规则

func (*JSExtractor) IsClassNode

func (j *JSExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*JSExtractor) IsFunctionBodyNode

func (j *JSExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*JSExtractor) IsInsideClass

func (j *JSExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type JavaExtractor

type JavaExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

JavaExtractor Java语言提取器

func NewJavaExtractor

func NewJavaExtractor() *JavaExtractor

NewJavaExtractor 创建Java语言提取器

func (*JavaExtractor) ExtractComments

func (j *JavaExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取Java注释

func (*JavaExtractor) ExtractMethods

func (j *JavaExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取Java类内部的方法

func (*JavaExtractor) ExtractPrototype

func (j *JavaExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取Java类原型

func (*JavaExtractor) GetQueries

func (j *JavaExtractor) GetQueries() []string

GetQueries 获取Java语言的Tree-sitter查询规则

func (*JavaExtractor) IsClassNode

func (j *JavaExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*JavaExtractor) IsFunctionBodyNode

func (j *JavaExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*JavaExtractor) IsInsideClass

func (j *JavaExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type LanguageExtractor

type LanguageExtractor interface {
	// GetQueries 获取Tree-sitter查询规则
	GetQueries() []string

	// ExtractPrototype 提取函数/类原型(不包含函数体/类体)
	ExtractPrototype(node *sitter.Node, content []byte) string

	// ExtractMethods 提取类内部的方法
	ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

	// IsClassNode 检查是否是类节点
	IsClassNode(nodeType string) bool

	// IsFunctionBodyNode 检查是否是函数体节点
	IsFunctionBodyNode(nodeType string) bool

	// IsInsideClass 检查节点是否在类内部
	IsInsideClass(node *sitter.Node) bool

	// ExtractComments 提取注释
	ExtractComments(node *sitter.Node, content []byte) string
}

LanguageExtractor 语言提取器接口

type PythonExtractor

type PythonExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

PythonExtractor Python语言提取器

func NewPythonExtractor

func NewPythonExtractor() *PythonExtractor

NewPythonExtractor 创建Python语言提取器

func (*PythonExtractor) ExtractComments

func (p *PythonExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取Python注释

func (*PythonExtractor) ExtractMethods

func (p *PythonExtractor) ExtractMethods(classNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取Python类内部的方法

func (*PythonExtractor) ExtractPrototype

func (p *PythonExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取Python函数/类原型

func (*PythonExtractor) GetQueries

func (p *PythonExtractor) GetQueries() []string

GetQueries 获取Python语言的Tree-sitter查询规则

func (*PythonExtractor) IsClassNode

func (p *PythonExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*PythonExtractor) IsFunctionBodyNode

func (p *PythonExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*PythonExtractor) IsInsideClass

func (p *PythonExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type RustExtractor

type RustExtractor struct {
	BaseExtractor
	// contains filtered or unexported fields
}

RustExtractor Rust语言提取器

func NewRustExtractor

func NewRustExtractor() *RustExtractor

NewRustExtractor 创建Rust语言提取器

func (*RustExtractor) ExtractComments

func (r *RustExtractor) ExtractComments(node *sitter.Node, content []byte) string

ExtractComments 提取Rust注释

func (*RustExtractor) ExtractMethods

func (r *RustExtractor) ExtractMethods(implNode *sitter.Node, content []byte) []models.Symbol

ExtractMethods 提取Rust impl块内部的方法

func (*RustExtractor) ExtractPrototype

func (r *RustExtractor) ExtractPrototype(node *sitter.Node, content []byte) string

ExtractPrototype 提取Rust函数/结构体原型

func (*RustExtractor) GetQueries

func (r *RustExtractor) GetQueries() []string

GetQueries 获取Rust语言的Tree-sitter查询规则

func (*RustExtractor) IsClassNode

func (r *RustExtractor) IsClassNode(nodeType string) bool

IsClassNode 检查是否是类节点

func (*RustExtractor) IsFunctionBodyNode

func (r *RustExtractor) IsFunctionBodyNode(nodeType string) bool

IsFunctionBodyNode 检查是否是函数体节点

func (*RustExtractor) IsInsideClass

func (r *RustExtractor) IsInsideClass(node *sitter.Node) bool

IsInsideClass 检查节点是否在类内部

type TreeSitterParser

type TreeSitterParser struct {
	// contains filtered or unexported fields
}

TreeSitterParser Tree-sitter 解析器

func NewTreeSitterParser

func NewTreeSitterParser(languagesConfig models.LanguagesConfig) (*TreeSitterParser, error)

NewTreeSitterParser 创建新的 Tree-sitter 解析器

func (*TreeSitterParser) ParseFile

func (p *TreeSitterParser) ParseFile(filePath string) (*models.FileInfo, error)

ParseFile 解析单个文件

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL