UNPKG

@aaswe/codebase-ai

Version:

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

95 lines 2.84 kB
import { BaseAnalyzer } from './BaseAnalyzer'; import { ASTNode, CodeFunction, CodeClass, ImportDeclaration, ExportDeclaration, AnalysisContext, ComplexityMetrics } from './types'; /** * C++ AST Analyzer * Analyzes C++ source code using regex-based parsing * Handles C++ specific constructs like classes, namespaces, templates, and preprocessor directives */ export declare class CppAnalyzer extends BaseAnalyzer { constructor(); /** * Parse C++ source code (regex-based approach) */ protected parseAST(content: string, context: AnalysisContext): Promise<any>; /** * Extract AST nodes from C++ code */ protected extractNodes(ast: any, context: AnalysisContext): Promise<ASTNode[]>; /** * Extract functions from C++ code */ protected extractFunctions(ast: any, context: AnalysisContext): Promise<CodeFunction[]>; /** * Extract classes from C++ code */ protected extractClasses(ast: any, context: AnalysisContext): Promise<CodeClass[]>; /** * Extract imports (#include directives) from C++ code */ protected extractImports(ast: any, context: AnalysisContext): Promise<ImportDeclaration[]>; /** * Extract exports from C++ code */ protected extractExports(ast: any, context: AnalysisContext): Promise<ExportDeclaration[]>; /** * Extract dependencies from C++ code */ protected extractDependencies(ast: any, _context: AnalysisContext): Promise<string[]>; /** * Calculate complexity metrics for C++ code */ protected calculateComplexity(ast: any, _context: AnalysisContext): Promise<ComplexityMetrics>; /** * Get parser configuration for C++ */ protected getParserConfig(): any; /** * Get line number from character index */ private getLineNumber; /** * Find the end of a code block */ private findBlockEnd; /** * Parse C++ namespaces */ private parseNamespaces; /** * Parse preprocessor directives */ private parsePreprocessorDirectives; /** * Parse type declarations (typedef, using) */ private parseTypeDeclarations; /** * Parse global variables */ private parseGlobalVariables; /** * Parse C++ function parameters */ private parseCppParameters; /** * Parse class methods */ private parseClassMethods; /** * Parse class properties */ private parseClassProperties; /** * Check if class is abstract (has pure virtual functions) */ private isAbstractClass; /** * Extract function calls from code */ private extractFunctionCalls; /** * Calculate complexity for a single function */ private calculateFunctionComplexity; } //# sourceMappingURL=CppAnalyzer.d.ts.map