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
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()))