def handle_vector(args, converter, kargs): global anon_vecs length = 0 if isinstance(args[0], cpp_ast.CNumber): length = args[0].num else: raise TypeError("vector: invalid length argument: %s" % ars[0]) tp = None if type(args[1]) == cpp_ast.CName: try: tp = RobustType(args[1].name) except KeyError: raise TypeError("vector: invalid data type argument: %s" % args[1]) else: raise TypeError("vector: invalid data type argument: %s" % args[1]) name = "_blb_anon_vec%d" % anon_vecs anon_vecs += 1 model = DataModel(tp, [length], None, name) model._declare = True converter.data_model[name] = model return cpp_ast.CName(name)
def get_register( self, dtype, dim ): """ Returns a pair of name, index representing a register. """ idx = -1 if not (dtype, dim) in self.registers: self.registers[(dtype,dim)] = [] reglist = self.registers[(dtype,dim)] for i in range( len( reglist ) ): if reglist[i]: reglist[i] = False idx = i break if idx < 0: reglist.append( False ) idx = len( reglist ) - 1 regname = register_from_spec( dtype, dim, idx ) try: return self.get_or_create_model( cpp_ast.CName( regname ) ), idx except ValueError: register = DataModel( dtype, [dim], name = regname ) self.data_model[ regname ] = register register._declare = True return register, idx
def get_register(self, dtype, dim): """ Returns a pair of name, index representing a register. """ idx = -1 if not (dtype, dim) in self.registers: self.registers[(dtype, dim)] = [] reglist = self.registers[(dtype, dim)] for i in range(len(reglist)): if reglist[i]: reglist[i] = False idx = i break if idx < 0: reglist.append(False) idx = len(reglist) - 1 regname = register_from_spec(dtype, dim, idx) try: return self.get_or_create_model(cpp_ast.CName(regname)), idx except ValueError: register = DataModel(dtype, [dim], name=regname) self.data_model[regname] = register register._declare = True return register, idx
def handle_vector( args, converter, kargs ): global anon_vecs length = 0 if isinstance( args[0], cpp_ast.CNumber ): length = args[0].num else: raise TypeError( "vector: invalid length argument: %s" % ars[0] ) tp = None if type( args[1] ) == cpp_ast.CName: try: tp = RobustType( args[1].name ) except KeyError: raise TypeError( "vector: invalid data type argument: %s" % args[1] ) else: raise TypeError( "vector: invalid data type argument: %s" % args[1] ) name = "_blb_anon_vec%d" % anon_vecs anon_vecs += 1 model = DataModel( tp, [length], None, name ) model._declare = True converter.data_model[ name ] = model return cpp_ast.CName( name )