亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jobfile.py

?? linux下基于c++的處理器仿真平臺。具有處理器流水線
?? PY
字號:
import sysclass ternary(object):    def __new__(cls, *args):        if len(args) > 1:            raise TypeError, \                  '%s() takes at most 1 argument (%d given)' % \                  (cls.__name__, len(args))        if args:            if not isinstance(args[0], (bool, ternary)):                raise TypeError, \                      '%s() argument must be True, False, or Any' % \                      cls.__name__            return args[0]        return super(ternary, cls).__new__(cls)    def __bool__(self):        return True    def __neg__(self):        return self    def __eq__(self, other):        return True        def __ne__(self, other):        return False    def __str__(self):        return 'Any'    def __repr__(self):        return 'Any'Any = ternary()    class Flags(dict):    def __init__(self, *args, **kwargs):        super(Flags, self).__init__()        self.update(*args, **kwargs)    def __getattr__(self, attr):        return self[attr]    def __setattr__(self, attr, value):        self[attr] = value    def __setitem__(self, item, value):        return super(Flags, self).__setitem__(item, ternary(value))    def __getitem__(self, item):        if item not in self:            return False        return super(Flags, self).__getitem__(item)    def update(self, *args, **kwargs):        for arg in args:            if isinstance(arg, Flags):                super(Flags, self).update(arg)            elif isinstance(arg, dict):                for key,val in kwargs.iteritems():                    self[key] = val            else:                raise AttributeError, \                      'flags not of type %s or %s, but %s' % \                      (Flags, dict, type(arg))        for key,val in kwargs.iteritems():            self[key] = val    def match(self, *args, **kwargs):        match = Flags(*args, **kwargs)        for key,value in match.iteritems():            if self[key] != value:                return False        return Truedef crossproduct(items):    if not isinstance(items, (list, tuple)):        raise AttributeError, 'crossproduct works only on sequences'    if not items:        yield None        return    current = items[0]    remainder = items[1:]    if not hasattr(current, '__iter__'):        current = [ current ]        for item in current:        for rem in crossproduct(remainder):            data = [ item ]            if rem:                data += rem            yield datadef flatten(items):    if not isinstance(items, (list, tuple)):        yield items        return    for item in items:        for flat in flatten(item):            yield flatclass Data(object):    def __init__(self, name, desc, **kwargs):        self.name = name        self.desc = desc        self.system = None        self.flags = Flags()        self.env = {}        for k,v in kwargs.iteritems():            setattr(self, k, v)    def update(self, obj):        if not isinstance(obj, Data):            raise AttributeError, "can only update from Data object"        self.env.update(obj.env)        self.flags.update(obj.flags)        if obj.system:            if self.system and self.system != obj.system:                raise AttributeError, \                      "conflicting values for system: '%s'/'%s'" % \                      (self.system, obj.system)            self.system = obj.system    def printinfo(self):        if self.name:            print 'name: %s' % self.name        if self.desc:            print 'desc: %s' % self.desc        if self.system:            print 'system: %s' % self.system    def printverbose(self):        print 'flags:'        keys = self.flags.keys()        keys.sort()        for key in keys:            print '    %s = %s' % (key, self.flags[key])        print 'env:'        keys = self.env.keys()        keys.sort()        for key in keys:            print '    %s = %s' % (key, self.env[key])        print    def __str__(self):        return self.nameclass Job(Data):    def __init__(self, options):        super(Job, self).__init__('', '')        self.setoptions(options)        self.checkpoint = False        opts = []        for opt in options:            cpt = opt.group.checkpoint            if not cpt:                self.checkpoint = True                continue            if isinstance(cpt, Option):                opt = cpt.clone(suboptions=False)            else:                opt = opt.clone(suboptions=False)            opts.append(opt)        if not opts:            self.checkpoint = False        if self.checkpoint:            self.checkpoint = Job(opts)    def clone(self):        return Job(self.options)    def __getattribute__(self, attr):        if attr == 'name':            names = [ ]            for opt in self.options:                if opt.name:                    names.append(opt.name)            return ':'.join(names)        if attr == 'desc':            descs = [ ]            for opt in self.options:                if opt.desc:                    descs.append(opt.desc)            return ', '.join(descs)        return super(Job, self).__getattribute__(attr)                def setoptions(self, options):        config = options[0].config        for opt in options:            if opt.config != config:                raise AttributeError, \                      "All options are not from the same Configuration"                    self.config = config        self.groups = [ opt.group for opt in options ]        self.options = options        self.update(self.config)        for group in self.groups:            self.update(group)                        for option in self.options:            self.update(option)            if option._suboption:                self.update(option._suboption)    def printinfo(self):        super(Job, self).printinfo()        if self.checkpoint:            print 'checkpoint: %s' % self.checkpoint.name        print 'config: %s' % self.config.name        print 'groups: %s' % [ g.name for g in self.groups ]        print 'options: %s' % [ o.name for o in self.options ]        super(Job, self).printverbose()class SubOption(Data):    def __init__(self, name, desc, **kwargs):        super(SubOption, self).__init__(name, desc, **kwargs)        self.number = Noneclass Option(Data):    def __init__(self, name, desc, **kwargs):        super(Option, self).__init__(name, desc, **kwargs)        self._suboptions = []        self._suboption = None        self.number = None    def __getattribute__(self, attr):        if attr == 'name':            name = self.__dict__[attr]            if self._suboption is not None:                name = '%s:%s' % (name, self._suboption.name)            return name        if attr == 'desc':            desc = self.__dict__[attr]            if self._suboption is not None:                desc = '%s, %s' % (desc, self._suboption.desc)            return desc        return super(Option, self).__getattribute__(attr)    def suboption(self, name, desc, **kwargs):        subo = SubOption(name, desc, **kwargs)        subo.config = self.config        subo.group = self.group        subo.option = self        subo.number = len(self._suboptions)        self._suboptions.append(subo)        return subo    def clone(self, suboptions=True):        option = Option(self.__dict__['name'], self.__dict__['desc'])        option.update(self)        option.group = self.group        option.config = self.config        option.number = self.number        if suboptions:            option._suboptions.extend(self._suboptions)            option._suboption = self._suboption        return option    def subopts(self):        if not self._suboptions:            return [ self ]        subopts = []        for subo in self._suboptions:            option = self.clone()            option._suboption = subo            subopts.append(option)        return subopts    def printinfo(self):        super(Option, self).printinfo()        print 'config: %s' % self.config.name        super(Option, self).printverbose()class Group(Data):     def __init__(self, name, desc, **kwargs):        super(Group, self).__init__(name, desc, **kwargs)        self._options = []        self.checkpoint = False        self.number = None    def option(self, name, desc, **kwargs):        opt = Option(name, desc, **kwargs)        opt.config = self.config        opt.group = self        opt.number = len(self._options)        self._options.append(opt)        return opt    def options(self):        return self._options    def subopts(self):        subopts = []        for opt in self._options:            for subo in opt.subopts():                subopts.append(subo)        return subopts    def printinfo(self):        super(Group, self).printinfo()        print 'config: %s' % self.config.name        print 'options: %s' % [ o.name for o in self._options ]        super(Group, self).printverbose()class Configuration(Data):    def __init__(self, name, desc, **kwargs):        super(Configuration, self).__init__(name, desc, **kwargs)        self._groups = []    def group(self, name, desc, **kwargs):        grp = Group(name, desc, **kwargs)        grp.config = self        grp.number = len(self._groups)        self._groups.append(grp)        return grp    def groups(self, flags=Flags(), sign=True):        if not flags:            return self._groups        return [ grp for grp in self._groups if sign ^ grp.flags.match(flags) ]    def checkchildren(self, kids):        for kid in kids:            if kid.config != self:                raise AttributeError, "child from the wrong configuration"    def sortgroups(self, groups):        groups = [ (grp.number, grp) for grp in groups ]        groups.sort()        return [ grp[1] for grp in groups ]        def options(self, groups = None, checkpoint = False):        if groups is None:            groups = self._groups        self.checkchildren(groups)        groups = self.sortgroups(groups)        if checkpoint:            groups = [ grp for grp in groups if grp.checkpoint ]            optgroups = [ g.options() for g in groups ]        else:            optgroups = [ g.subopts() for g in groups ]        for options in crossproduct(optgroups):            for opt in options:                cpt = opt.group.checkpoint                if not isinstance(cpt, bool) and cpt != opt:                    if checkpoint:                        break                    else:                        yield options            else:                if checkpoint:                    yield options    def checkpoints(self, groups = None):        for options in self.options(groups, True):            yield Job(options)    def jobs(self, groups = None):        for options in self.options(groups, False):            yield Job(options)    def alljobs(self, groups = None):        for options in self.options(groups, True):            yield Job(options)        for options in self.options(groups, False):            yield Job(options)    def find(self, jobname):        for job in self.alljobs():            if job.name == jobname:                return job        else:            raise AttributeError, "job '%s' not found" % jobname    def job(self, options):        self.checkchildren(options)        options = [ (opt.group.number, opt) for opt in options ]        options.sort()        options = [ opt[1] for opt in options ]        job = Job(options)        return job    def printinfo(self):        super(Configuration, self).printinfo()        print 'groups: %s' % [ g.name for g in self._grouips ]        super(Configuration, self).printverbose()def JobFile(jobfile):    from os.path import expanduser, isfile, join as joinpath    filename = expanduser(jobfile)    # Can't find filename in the current path, search sys.path    if not isfile(filename):        for path in sys.path:            testname = joinpath(path, filename)            if isfile(testname):                filename = testname                break        else:            raise AttributeError, \                  "Could not find file '%s'" % jobfile    data = {}    execfile(filename, data)    if 'conf' not in data:        raise ImportError, 'cannot import name conf from %s' % jobfile    conf = data['conf']    import jobfile    if not isinstance(conf, Configuration):        raise AttributeError, \              'conf in jobfile: %s (%s) is not type %s' % \              (jobfile, type(conf), Configuration)    return confif __name__ == '__main__':    from jobfile import *    import sys    usage = 'Usage: %s [-b] [-c] [-v] <jobfile>' % sys.argv[0]    try:        import getopt        opts, args = getopt.getopt(sys.argv[1:], '-bcv')    except getopt.GetoptError:        sys.exit(usage)    if len(args) != 1:        raise AttributeError, usage    both = False    checkpoint = False    verbose = False    for opt,arg in opts:        if opt == '-b':            both = True            checkpoint = True        if opt == '-c':            checkpoint = True        if opt == '-v':            verbose = True    jobfile = args[0]    conf = JobFile(jobfile)    if both:        gen = conf.alljobs()    elif checkpoint:        gen = conf.checkpoints()    else:        gen = conf.jobs()            for job in gen:        if not verbose:            cpt = ''            if job.checkpoint:                cpt = job.checkpoint.name            print job.name, cpt        else:            job.printinfo()

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区在线看| 亚洲影院免费观看| 国产一区二区三区在线观看精品| 91麻豆精品国产| 青青草91视频| 久久久久久久久久久久久夜| 国产福利91精品一区| 中文字幕第一区综合| 99视频一区二区| 午夜影院久久久| 日韩欧美高清在线| 国产精品中文有码| 欧美极品少妇xxxxⅹ高跟鞋| 国产成人无遮挡在线视频| 国产精品蜜臀av| 欧美性一二三区| 麻豆一区二区99久久久久| 国产欧美日韩精品a在线观看| 91毛片在线观看| 日本亚洲视频在线| 国产亚洲精品超碰| 色综合久久久久综合99| 天使萌一区二区三区免费观看| www一区二区| 日韩一级成人av| 国产高清久久久| 亚洲国产你懂的| 久久奇米777| 欧美日韩亚洲综合一区二区三区| 精品一区二区三区免费视频| 亚洲私人黄色宅男| 日韩欧美在线网站| 一本久久精品一区二区| 看片的网站亚洲| 一区二区三区 在线观看视频| 精品国产伦一区二区三区免费 | 国产在线播放一区二区三区| 中文字幕一区二区三区蜜月 | 中文字幕av一区二区三区| 欧洲国内综合视频| 粉嫩绯色av一区二区在线观看| 午夜精品久久久久久久99樱桃| 国产欧美一区二区三区在线老狼 | 91精品国产色综合久久不卡蜜臀 | 国产精品一区二区三区乱码| 一区二区视频在线看| www日韩大片| 69堂国产成人免费视频| 日韩精品一区二区三区swag| av一区二区久久| 精品亚洲porn| 热久久一区二区| 亚洲图片欧美视频| 亚洲三级电影全部在线观看高清| 久久人人爽爽爽人久久久| 这里只有精品视频在线观看| 一本到不卡免费一区二区| 国产成人午夜高潮毛片| 久久av老司机精品网站导航| 亚洲成人av一区| 亚洲小少妇裸体bbw| 亚洲六月丁香色婷婷综合久久| 久久一夜天堂av一区二区三区| 8x8x8国产精品| 欧美日韩精品三区| 色婷婷av一区二区三区gif| 波多野结衣中文字幕一区 | 欧美欧美午夜aⅴ在线观看| 91免费精品国自产拍在线不卡| 国产成人免费在线观看| 精品一区二区三区久久| 蜜臀av亚洲一区中文字幕| 婷婷国产在线综合| 一个色妞综合视频在线观看| 亚洲精品久久久久久国产精华液| 亚洲人亚洲人成电影网站色| 国产精品丝袜一区| 国产精品美女一区二区三区| 国产欧美视频一区二区| 国产精品区一区二区三| 婷婷久久综合九色国产成人| 欧美一区二区三区影视| 欧美系列在线观看| 欧美日韩另类一区| 欧美日韩中文字幕一区二区| 欧美视频一区在线| 欧美区一区二区三区| 91精品黄色片免费大全| 欧美欧美欧美欧美首页| 51午夜精品国产| 欧美大片顶级少妇| 国产日韩欧美电影| 国产精品夫妻自拍| 亚洲午夜久久久久中文字幕久| 亚洲bdsm女犯bdsm网站| 日本成人在线电影网| 韩国v欧美v日本v亚洲v| 成人一区二区三区中文字幕| 91丨九色丨国产丨porny| 在线视频一区二区三区| 91精品啪在线观看国产60岁| 亚洲精品在线三区| 中文字幕日韩精品一区| 亚洲一二三四在线观看| 久久精品国产99国产| 成人亚洲一区二区一| 色综合久久99| 欧美久久一二区| 久久久三级国产网站| 亚洲欧美日韩国产中文在线| 日韩不卡一区二区三区| 国产精品69毛片高清亚洲| 91小视频免费看| 日韩一区和二区| 国产精品久久久久婷婷二区次| 亚洲国产一区二区在线播放| 激情av综合网| 在线看国产日韩| 久久人人爽爽爽人久久久| 亚洲精品免费一二三区| 激情文学综合插| 在线看国产一区| ww亚洲ww在线观看国产| 亚洲激情图片小说视频| 国产在线播精品第三| 一本久久精品一区二区| 精品91自产拍在线观看一区| 亚洲一区在线观看免费 | 国产在线精品视频| 欧美综合在线视频| 国产精品水嫩水嫩| 奇米综合一区二区三区精品视频| 国产高清视频一区| 日韩小视频在线观看专区| 1000精品久久久久久久久| 免费成人在线观看视频| 在线免费不卡视频| 国产精品麻豆网站| 国产一区二区剧情av在线| 欧美精品高清视频| 亚洲九九爱视频| 成人精品国产福利| 精品久久久久av影院| 日日夜夜精品免费视频| 91美女在线看| 国产精品蜜臀av| 久久国产生活片100| 日本道精品一区二区三区| 国产精品免费看片| 国产成人在线观看| 精品播放一区二区| 免费在线观看一区二区三区| 欧美在线视频你懂得| 最新日韩在线视频| 午夜影院在线观看欧美| 人人狠狠综合久久亚洲| 在线观看国产91| 亚洲欧美另类综合偷拍| 国产成人欧美日韩在线电影| 精品国产第一区二区三区观看体验 | 秋霞午夜av一区二区三区| 欧美中文字幕一区| 玉米视频成人免费看| 色综合久久天天| 亚洲免费av在线| 在线精品视频一区二区三四| 亚洲欧美日韩成人高清在线一区| 94-欧美-setu| 一区二区三区四区亚洲| 色哟哟在线观看一区二区三区| 亚洲欧美一区二区久久| 99精品视频免费在线观看| 成人欧美一区二区三区黑人麻豆| 99久久精品免费观看| 最新日韩av在线| 99re在线视频这里只有精品| 国产精品麻豆久久久| av成人免费在线| 亚洲精品久久久蜜桃| 欧美日韩一区二区三区免费看 | 欧美一二三四区在线| 精品一区二区三区视频在线观看| 精品欧美久久久| 国产精品自拍毛片| 久久精品在这里| 99re6这里只有精品视频在线观看| 中文字幕一区二区三区四区不卡| 91成人国产精品| 午夜av一区二区三区| 精品日韩成人av| a美女胸又www黄视频久久| 1024精品合集| 欧美三级资源在线| 久久成人羞羞网站| 欧美激情一区二区三区全黄| 一本色道久久综合亚洲91| 无码av免费一区二区三区试看 | 午夜欧美在线一二页| 精品国产一区a| 91一区在线观看|