python判断C语言是否被#if 0注掉

来源:互联网 发布:windows怎么激活 编辑:程序博客网 时间:2024/05/01 20:35
def getValidBlockIndex(indexList):    startPos = 0    endPos = -1    count = 0    zeroFlag = 1    validBlockIndex = []    for element in indexList:        count += element[0]        if (count == 1 and zeroFlag == 1):            endPos = element[1]            validBlockIndex.append([startPos, endPos])            zeroFlag = 0        if (count == 0):            startPos = element[1]            zeroFlag = 1    validBlockIndex.append([startPos, -1])    return validBlockIndexdef getValidBlockList(string):    index = 0    pos = 0    indexList = []    while(True):        index = string.find('#if 0', pos)        if (index == -1):            break        else:            pos = index + len('#if 0')            indexList.append([1, index])    pos = 0    index = 0    while(True):        index = string.find('#endif', pos)        if (index == -1):            break        else:            pos = index + len('#endif')            indexList.append([-1, pos])    indexList = sorted(indexList, key = lambda x:x[1])    validBlockIndex = getValidBlockIndex(indexList)    print validBlockIndex    validBlockList = []    for element in validBlockIndex:        if element[1] == -1:            validBlockList.append(string[element[0]:])        else:            validBlockList.append(string[element[0]:element[1]])    return validBlockListif __name__ == "__main__":    string = "#if 0xxx#if 0yyyy#endifwwww#if 0zzz#endifuuuu#endif"    validBlockList = getValidBlockList(string)    print validBlockList

0 0
原创粉丝点击