MCPcopy Create free account
hub / github.com/CloverHackyColor/CloverBootloader / GetParamList

Function GetParamList

BaseTools/Source/Python/Ecc/c.py:274–401  ·  view source on GitHub ↗
(FuncDeclarator, FuncNameLine=0, FuncNameOffset=0)

Source from the content-addressed store, hash-verified

272 return StrippedStr
273
274def GetParamList(FuncDeclarator, FuncNameLine=0, FuncNameOffset=0):
275 FuncDeclarator = StripComments(FuncDeclarator)
276 ParamIdList = []
277 #DeclSplitList = FuncDeclarator.split('(')
278 LBPos = FuncDeclarator.find('(')
279 #if len(DeclSplitList) < 2:
280 if LBPos == -1:
281 return ParamIdList
282 #FuncName = DeclSplitList[0]
283 FuncName = FuncDeclarator[0:LBPos]
284 #ParamStr = DeclSplitList[1].rstrip(')')
285 ParamStr = FuncDeclarator[LBPos + 1:].rstrip(')')
286 LineSkipped = 0
287 OffsetSkipped = 0
288 TailChar = FuncName[-1]
289 while not TailChar.isalpha() and TailChar != '_':
290
291 if TailChar == '\n':
292 FuncName = FuncName.rstrip('\r\n').rstrip('\n')
293 LineSkipped += 1
294 OffsetSkipped = 0
295 elif TailChar == '\r':
296 FuncName = FuncName.rstrip('\r')
297 LineSkipped += 1
298 OffsetSkipped = 0
299 elif TailChar == ' ':
300 FuncName = FuncName.rstrip(' ')
301 OffsetSkipped += 1
302 elif TailChar == '\t':
303 FuncName = FuncName.rstrip('\t')
304 OffsetSkipped += 8
305 else:
306 FuncName = FuncName[:-1]
307 TailChar = FuncName[-1]
308
309 OffsetSkipped += 1 #skip '('
310
311 for p in ParamStr.split(','):
312 ListP = p.split()
313 if len(ListP) == 0:
314 continue
315 ParamName = ListP[-1]
316 DeclText = ParamName.strip()
317 RightSpacePos = p.rfind(ParamName)
318 ParamModifier = p[0:RightSpacePos]
319 if ParamName == 'OPTIONAL':
320 if ParamModifier == '':
321 ParamModifier += ' ' + 'OPTIONAL'
322 DeclText = ''
323 else:
324 ParamName = ListP[-2]
325 DeclText = ParamName.strip()
326 RightSpacePos = p.rfind(ParamName)
327 ParamModifier = p[0:RightSpacePos]
328 ParamModifier += 'OPTIONAL'
329 while DeclText.startswith('*'):
330 ParamModifier += ' ' + '*'
331 DeclText = DeclText.lstrip('*').strip()

Callers 5

GetVarInfoFunction · 0.70
CheckFuncLayoutNameFunction · 0.70
CheckFuncLayoutPrototypeFunction · 0.70
CheckDeclNoUseCTypeFunction · 0.70

Calls 3

lenFunction · 0.85
StripNonAlnumCharsFunction · 0.85
StripCommentsFunction · 0.70

Tested by

no test coverage detected