def check(cls, arg):
     if not isinstance(arg, program.curr_tape.Register):
         raise ArgumentError(arg, 'Invalid register argument')
     if arg.program != program.curr_tape:
         raise ArgumentError(arg, 'Register from other tape, trace: %s' % \
                                 util.format_trace(arg.caller))
     if arg.reg_type != cls.reg_type:
         raise ArgumentError(arg, "Wrong register type '%s', expected '%s'" % \
                                 (arg.reg_type, cls.reg_type))
 def check(cls, arg):
     if not isinstance(arg, program.curr_tape.Register):
         raise ArgumentError(arg, 'Invalid register argument')
     if arg.i > REG_MAX:
         raise ArgumentError(arg, 'Register index too large')
     if arg.program != program.curr_tape:
         raise ArgumentError(arg, 'Register from other tape, trace: %s' % \
                                 util.format_trace(arg.caller))
     if arg.reg_type != cls.reg_type:
         raise ArgumentError(arg, "Wrong register type '%s', expected '%s'" % \
                                 (arg.reg_type, cls.reg_type))