UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

44 lines (36 loc) 1.28 kB
/** * @file Analyze differences between duplicate blocks * @description Single responsibility: Identify variations in duplicate code */ function analyzeDifferences(blocks) { const differences = { variables: new Set(), literals: new Set(), functionCalls: new Set(), patterns: [] }; // Simple heuristic: compare code strings to find differences if (blocks.length < 2) return differences; const baseCode = blocks[0].code; blocks.slice(1).forEach(block => { const currentCode = block.code; // Find differing parts (simplified) // In a real implementation, this would use AST comparison const baseTokens = baseCode.split(/\s+/); const currentTokens = currentCode.split(/\s+/); baseTokens.forEach((token, index) => { if (currentTokens[index] && token !== currentTokens[index]) { // Track different values if (/^['"'].*['"']$/.test(token)) { differences.literals.add(token); differences.literals.add(currentTokens[index]); } else if (/^[a-zA-Z_]\w*$/.test(token)) { differences.variables.add(token); differences.variables.add(currentTokens[index]); } } }); }); return differences; } module.exports = analyzeDifferences;