예제 #1
0
def GetFunctionList():
    FuncObjList = []
    for FuncDef in FileProfile.FunctionDefinitionList:
        ParamIdList = []
        DeclText = FuncDef.Declarator.strip()
        while DeclText.startswith('*'):
            FuncDef.Modifier += '*'
            DeclText = DeclText.lstrip('*').strip()

        FuncDef.Declarator = FuncDef.Declarator.lstrip('*')
        DeclSplitList = FuncDef.Declarator.split('(')
        if len(DeclSplitList) < 2:
            continue

        FuncName = DeclSplitList[0]
        FuncNamePartList = FuncName.split()
        if len(FuncNamePartList) > 1:
            FuncName = FuncNamePartList[-1]
            Index = 0
            while Index < len(FuncNamePartList) - 1:
                FuncDef.Modifier += ' ' + FuncNamePartList[Index]
                Index += 1

        FuncObj = DataClass.FunctionClass(
            -1, FuncDef.Declarator, FuncDef.Modifier, FuncName.strip(), '',
            FuncDef.StartPos[0], FuncDef.StartPos[1], FuncDef.EndPos[0],
            FuncDef.EndPos[1], FuncDef.LeftBracePos[0],
            FuncDef.LeftBracePos[1], -1, ParamIdList, [])
        FuncObjList.append(FuncObj)

    return FuncObjList
예제 #2
0
    Db.InitDatabase()
    Db.QueryTable(Db.TblDataModel)

    identifier1 = DataClass.IdentifierClass(-1, '', '', "i''1", 'aaa',
                                            DataClass.MODEL_IDENTIFIER_COMMENT,
                                            1, -1, 32, 43, 54, 43)
    identifier2 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa',
                                            DataClass.MODEL_IDENTIFIER_COMMENT,
                                            1, -1, 15, 43, 20, 43)
    identifier3 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa',
                                            DataClass.MODEL_IDENTIFIER_COMMENT,
                                            1, -1, 55, 43, 58, 43)
    identifier4 = DataClass.IdentifierClass(-1, '', '', "i1'", 'aaa',
                                            DataClass.MODEL_IDENTIFIER_COMMENT,
                                            1, -1, 77, 43, 88, 43)
    fun1 = DataClass.FunctionClass(-1, '', '', 'fun1', '', 21, 2, 60, 45, 1,
                                   23, 0, [], [])
    file = DataClass.FileClass(
        -1, 'F1', 'c', 'C:\\', 'C:\\F1.exe', DataClass.MODEL_FILE_C,
        '2007-12-28', [fun1],
        [identifier1, identifier2, identifier3, identifier4], [])
    Db.InsertOneFile(file)
    Db.UpdateIdentifierBelongsToFunction()

    Db.QueryTable(Db.TblFile)
    Db.QueryTable(Db.TblFunction)
    Db.QueryTable(Db.TblPcd)
    Db.QueryTable(Db.TblIdentifier)

    Db.Close()
    EdkLogger.verbose("End at " + time.strftime('%H:%M:%S', time.localtime()))