UNPKG

@aaswe/codebase-ai

Version:

AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs

48 lines 2.21 kB
/** * Base AST Analyzer * Abstract base class for language-specific AST analyzers */ import { AnalysisResult, AnalysisContext, AnalysisOptions, SupportedLanguage, ASTNode, CodeFunction, CodeClass, ImportDeclaration, ExportDeclaration, ComplexityMetrics, DependencyGraph } from './types'; export declare abstract class BaseAnalyzer { protected language: SupportedLanguage; protected defaultOptions: AnalysisOptions; constructor(language: SupportedLanguage); /** * Analyze a single file */ analyzeFile(filePath: string, options?: Partial<AnalysisOptions>): Promise<AnalysisResult>; /** * Analyze multiple files */ analyzeFiles(filePaths: string[], options?: Partial<AnalysisOptions>): Promise<AnalysisResult[]>; /** * Build dependency graph from analysis results */ buildDependencyGraph(results: AnalysisResult[]): DependencyGraph; /** * Create analysis context */ protected createContext(filePath: string, options?: Partial<AnalysisOptions>): AnalysisContext; /** * Detect language from file path */ private detectLanguageFromPath; /** * Generate unique ID */ protected generateId(): string; /** * Get default complexity metrics */ protected getDefaultComplexity(): ComplexityMetrics; protected abstract parseAST(content: string, context: AnalysisContext): Promise<any>; protected abstract extractNodes(ast: any, context: AnalysisContext): Promise<ASTNode[]>; protected abstract extractFunctions(ast: any, context: AnalysisContext): Promise<CodeFunction[]>; protected abstract extractClasses(ast: any, context: AnalysisContext): Promise<CodeClass[]>; protected abstract extractImports(ast: any, context: AnalysisContext): Promise<ImportDeclaration[]>; protected abstract extractExports(ast: any, context: AnalysisContext): Promise<ExportDeclaration[]>; protected abstract extractDependencies(ast: any, context: AnalysisContext): Promise<string[]>; protected abstract calculateComplexity(ast: any, context: AnalysisContext): Promise<ComplexityMetrics>; protected abstract getParserConfig(): any; } //# sourceMappingURL=BaseAnalyzer.d.ts.map