* sym = Symbol.new(addr, type = nil, name = nil)
#   * creates the Symbol object sym with the type type if type is not nil. addr
#     is the address where the function is allocated. If type is nil, it returns
#     a DataPtr object.

  * type  nil Ǥʤʤ  type  Symbol ֥ sym 롣
    ؿƤƤʤ addr ϤΥɥ쥹type  nil ʤ
    DataPtr ֥Ȥ֤

* Symbol::char2type(char)
#   * takes a character char that represents a type and returns the type
#     specifier of the C language.
  * ʸ char ꡢC η֤

* str = Symbol#proto()
#   * returns the function prototype.
  * ؿΥץȥפ֤

* str = Symbol#name()
#   * Returns the function name.
  * ؿ֤̾

* str = Symbol#cproto(),
  str = Symbol#to_s()
#   * returns the prototype of the C language.
  * C Υץȥפ֤

* str = Symbol#inspect()
#   * returns the inspectable string.
  * ʹ֤ɤߤ䤹ʸ֤(:)

* r,rs = Symbol#call(arg1,arg2,...,argN),
  r,rs = Symbol#[](arg1,arg2,...,argN)
#   * calls the function with parameters arg1, arg2, ..., argN. and the result
#     consists of the return value r and parameters rs. rs is an array.
  * ѥ᡼ arg1, arg2, ... argN ǴؿƤӽФ̤ϡ r 
    ѥ᡼rs ʤ롣rs 

* ptr = Symbol#to_ptr
#   * returns the corresponding PtrData object ptr.
  * б PtrData ֥ ptr ֤