Skip to main content

Module language

Module language 

Source
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 Tsx for 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: