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