@aaswe/codebase-ai
Version:
AI-Assisted Software Engineering (AASWE) - Rich codebase context for IDE LLMs
48 lines • 2.21 kB
TypeScript
/**
* 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