Пример #1
0
def parseInvocations(referencesFileName, accessDict, invokeableEntityDict, \
                        typedefDict, transIncludeDict, transInhDict,scope, \
                        referenceLinesRecognizedAsAccesses):
    resolver = AlternativeInvocationResolver(scope, transInhDict, typedefDict, \
                                            invokeableEntityDict, accessDict)
    lineNr = 0

    nrOfLinesProcessed = 0
    for line in open(referencesFileName, "r"):
        if not(lineNr in referenceLinesRecognizedAsAccesses) and isPotentialInvocation(line):
            nrOfLinesProcessed += 1
            inv = InvocationEntity(line, invokeableEntityDict)
            inv.decomposeData()
            #print "------"
            #print line,
            #print inv.dst_class+"|"+inv.dst_name+"|"+inv.dst_type+"|"+inv.actualDstParams+"|"+inv.sourceFile+"|"+inv.start
            #print inv.src_class+"|"+inv.src_name+"|"+inv.src_type+"|"+inv.actualSrcParams+"|"+inv.sourceFile+"|"+inv.start
            #print "-------"
            resolver.resolve(inv)

            if ( inv.isCompletelyResolved() ):
                aCommandList = RuleChecker.checkMethInvEntity(inv)
                RuleChecker.generateMethodInvocationInfo(aCommandList, inv)
            else:
                inv.getReport().logIfFlawed()

        lineNr += 1

    return nrOfLinesProcessed