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
JavaScript
/**
* @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;