python2igcse
Version:
Convert Python code to IGCSE Pseudocode format
81 lines • 2.07 kB
TypeScript
import { IR } from '../types/ir';
import { EmitResult, EmitterOptions } from '../types/emitter';
/**
* Emitter utility class
*/
export declare class EmitterUtils {
/**
* Get IR tree statistics
*/
static getIRStats(ir: IR): {
totalNodes: number;
maxDepth: number;
nodeTypes: Record<string, number>;
hasComments: boolean;
hasFunctions: boolean;
hasLoops: boolean;
hasConditionals: boolean;
};
/**
* Traverse IR tree
*/
static traverseIR(ir: IR, callback: (node: IR, depth: number) => void, depth?: number): void;
/**
* Validate emit result
*/
static validateEmitResult(result: EmitResult): {
isValid: boolean;
issues: string[];
suggestions: string[];
};
/**
* Analyze code quality
*/
static analyzeCodeQuality(code: string): {
score: number;
metrics: {
readability: number;
structure: number;
consistency: number;
completeness: number;
};
recommendations: string[];
};
/**
* Evaluate readability
*/
private static evaluateReadability;
/**
* Evaluate structure
*/
private static evaluateStructure;
/**
* Evaluate consistency
*/
private static evaluateConsistency;
/**
* Evaluate completeness
*/
private static evaluateCompleteness;
/**
* Check control structure balance
*/
private static checkStructureBalance;
/**
* Calculate code complexity
*/
static calculateComplexity(ir: IR): {
cyclomaticComplexity: number;
cognitiveComplexity: number;
nestingDepth: number;
};
/**
* 最適化の提案
*/
static suggestOptimizations(ir: IR): string[];
/**
* エミッターオプションの最適化
*/
static optimizeEmitterOptions(ir: IR, targetFormat: import('../types/emitter').OutputFormat): Partial<EmitterOptions>;
}
//# sourceMappingURL=utils.d.ts.map