Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
    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
Esempio n. 4
0
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')
        
Esempio n. 5
0
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')
Esempio n. 6
0
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')