IMF-basic.py

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

你可能感兴趣的:(IMF-basic.py)