basic.py定义了两个类和一个函数
class Api
def __init__(self, data):
把data[0]赋值给self.rtype,self.name
self.args = []
self.rval是一个Arg类,self.rval = Arg((self.rtype, const.RVAL, {}))
遍历data[1]:
用类Arg存储每一个arg并存入args
def get(self, v):
如果v在sefl.__dict__里:
返回self.__dict__[v]
报错:Api get error
def is_void(self):
如果self.rtype为void,则返回1,否则返回0
class Arg
def __init__(self, arg):
self.type, self.name, self.opt = arg,传入的arg参数是三个值
def get(self, v):
如果v在self.__dict__里:
返回self.__dict__[v]
报错:Arg get error
def get_opt(self, v):
如果v在self.opt里:
返回self.opt[v]
如果v为‘cnt’:
返回const.DCNT
如果v为'size':
返回const.DSIZE
报错:get_opt error
def is_input(self):判断这个arg是否是input
如果'IO'在self.opt里:
返回'I'是否在self.opt['IO']里
return True
def is_output(self):判断这个arg是否是output
如果'IO'在self.opt里:
返回'O'是否在self.opt['IO']里
return False
def is_ptr(self):判断这个arg是否是指针
'*'在self.type里 且 'char'不在self.type里 则返回1,否则返回0
函数load_apis()
def load_apis():
apis = {}
遍历const.API_DEFS:
每个api用Api类存储
存到dict apis里,key是api的名字,value是Api类
返回apis