def __init__(self): CSVProcessor.__init__(self) self.functionIndex = NameToListMap() self.callIndex = NameToListMap() self.declarationIndex = NameToListMap() self.conditionIndex = NameToListMap() # self.typeIndex = dict() self.handlers['func'] = self.functionHandler self.handlers['call'] = self.callHandler self.handlers['decl'] = self.declHandler self.handlers['cond'] = self.condHandler
def __init__(self, projectRoot): CSVProcessor.__init__(self) self.projectRoot = projectRoot if self.projectRoot[-1] != '/': self.projectRoot += '/' self.functionIndex = NameToListMap() self.callIndex = NameToListMap() self.declarationIndex = NameToListMap() self.conditionIndex = NameToListMap() self.handlers[FUNCTION_NAME] = self.functionHandler self.handlers[CALLEE] = self.callHandler
class CodeIndexCreator(CSVProcessor): def __init__(self): CSVProcessor.__init__(self) self.functionIndex = NameToListMap() self.callIndex = NameToListMap() self.declarationIndex = NameToListMap() self.conditionIndex = NameToListMap() # self.typeIndex = dict() self.handlers['func'] = self.functionHandler self.handlers['call'] = self.callHandler self.handlers['decl'] = self.declHandler self.handlers['cond'] = self.condHandler def registerFunction(self, row): functionName = row[5] self.currentFunctionName = functionName self.functionIndex.add((row, self.currentFile), functionName) def registerCall(self, row): callDstName = row[4] self.callIndex.add((row, self.currentFile), callDstName) def registerDecl(self, row): typeName = row[4] self.declarationIndex.add((row, self.currentFile), typeName) def registerCond(self, row): cond = row[4] self.conditionIndex.add((row, self.currentFile), cond) def functionHandler(self, row): self.registerFunction(row) def callHandler(self, row): self.registerCall(row) def declHandler(self, row): self.registerDecl(row) def condHandler(self, row): self.registerCond(row) def saveResults(self, projectRoot): if projectRoot[-1] == '/': projectRoot = projectRoot[:-1] outputDir = projectRoot + '/' self.functionIndex.save(outputDir + 'functionIndex.pickl') self.callIndex.save(outputDir + 'callIndex.pickl') self.declarationIndex.save(outputDir + 'declarationIndex.pickl') self.conditionIndex.save(outputDir + 'conditionIndex.pickl')
class CodeIndexCreator(CSVProcessor): def __init__(self, projectRoot): CSVProcessor.__init__(self) self.projectRoot = projectRoot if self.projectRoot[-1] != '/': self.projectRoot += '/' self.functionIndex = NameToListMap() self.callIndex = NameToListMap() self.declarationIndex = NameToListMap() self.conditionIndex = NameToListMap() self.handlers[FUNCTION_NAME] = self.functionHandler self.handlers[CALLEE] = self.callHandler # self.handlers['VAR_DECL'] = self.declHandler # self.handlers['cond'] = self.condHandler def registerFunction(self, row): funcDir = self.getDirForFilename(self.currentFile) functionName = row[4] self.currentFunctionName = functionName self.functionIndex.add((row, funcDir), functionName) def registerCall(self, row): funcDir = self.getDirForFilename(self.currentFile) callDstName = row[4] self.callIndex.add((row, funcDir), callDstName) def registerDecl(self, row): funcDir = self.getDirForFilename(self.currentFile) typeName = row[4] self.declarationIndex.add((row, funcDir), typeName) def registerCond(self, row): funcDir = self.getDirForFilename(self.currentFile) cond = row[4] self.conditionIndex.add((row, funcDir), cond) def functionHandler(self, row): self.registerFunction(row) def callHandler(self, row): self.registerCall(row) def declHandler(self, row): self.registerDecl(row) def condHandler(self, row): self.registerCond(row) def getDirForFilename(self, filename): retval = '/'.join(filename.split('/')[:-1])[len(self.projectRoot):] return retval def saveResults(self): outputDir = self.projectRoot self.functionIndex.save(outputDir + 'functionIndex.pickl') self.callIndex.save(outputDir + 'callIndex.pickl') self.declarationIndex.save(outputDir + 'declarationIndex.pickl') self.conditionIndex.save(outputDir + 'conditionIndex.pickl')