def r2c
      case @typecode
      when BOOL
        [ proc { |expr| "( #{expr} ) != Qfalse" } ]
      when BYTE, UBYTE, SINT, USINT, INT, UINT
        [ proc { |expr| "NUM2INT( #{expr} )" } ]
      when SFLOAT, DFLOAT
        [ proc { |expr| "NUM2DBL( #{expr} )" } ]
      else
        if @typecode < Pointer_
          [ proc { |expr| "(#{identifier})mallocToPtr( #{expr} )" } ]
        elsif @typecode < Composite
          GCCType.new( @typecode.element_type ).r2c * @typecode.num_elements
        else
          raise "No conversion available for #{@typecode.inspect}"
        end
      end
    end
def r2c
      case @typecode
      when BOOL
        [ proc { |expr| "( #{expr} ) != Qfalse" } ]
      when BYTE, UBYTE, SINT, USINT, INT, UINT
        [ proc { |expr| "NUM2INT( #{expr} )" } ]
      when SFLOAT, DFLOAT
        [ proc { |expr| "NUM2DBL( #{expr} )" } ]
      else
        if @typecode < Pointer_
          [ proc { |expr| "(#{identifier})mallocToPtr( #{expr} )" } ]
        elsif @typecode < Composite
          GCCType.new( @typecode.element_type ).r2c * @typecode.num_elements
        else
          raise "No conversion available for #{@typecode.inspect}"
        end
      end
    end
Get code for converting Ruby VALUE to C value

 This method returns a nameless function. The nameless function is used for
 getting the code to convert a given parameter to a C value of this type.

 @return [Proc] Nameless function accepting a C expression to be converted.

 @private