Expand description
§Language Abstraction for AST Parsing
This module defines the Language trait, which abstracts over language-specific details for AST parsing and pattern matching.
§Purpose
- Meta-variable Handling: Configure how meta-variables (e.g.,
$A) are recognized and processed for different languages. - Pattern Preprocessing: Normalize pattern code before matching, adapting to language-specific quirks.
- Tree-sitter Integration: Map node kinds and fields to tree-sitter IDs for efficient AST traversal.
- Extensibility: Support custom language implementations (see
Tsxfor TypeScript/TSX).
§Key Components
Language: Core trait for language-specific AST operations.Tsx: Example implementation for TypeScript/TSX.- Meta-variable extraction and normalization utilities.
§Example
use thread_ast_engine::language::Language;
let lang = Tsx {};
let pattern = lang.pre_process_pattern("var $A = $B");
let meta_var = lang.extract_meta_var("$A");Traits§
- Language
- Trait to abstract ts-language usage in ast-grep, which includes: