関数一覧2
パラメータタイプの一覧と関数の場合はカッコを出すようにできた。
#include "d3m.hsp" mref hspctx, 68 dupptr hsphed, hspctx.0, 96 // hspctx.hsphed / sizeof HSPHED ds_ptr = lpeek( hspctx, 12 ) // hspctx.mem_mds max_ds = lpeek( hsphed, 28 ) // hsphed.max_ds dupptr ds, ds_ptr, max_ds linfo_ptr = lpeek( hspctx, 832 ) // hspctx.mem_linfo max_linfo = lpeek( hsphed, 52 ) // hsphed.max_linfo dupptr linfo, linfo_ptr, max_linfo finfo_ptr = lpeek( hspctx, 840 ) // hspctx.mem_finfo max_finfo = lpeek( hsphed, 60 ) // hsphed.max_finfo dupptr finfo, finfo_ptr, max_finfo minfo_ptr = lpeek( hspctx, 836 ) // hspctx.mem_minfo max_minfo = lpeek( hsphed, 68 ) // hsphed.max_minfo dupptr minfo, minfo_ptr, max_minfo mes "* LINFO" for i, 0, max_linfo, 16 // sizeof LIBDAT == 16 flag = lpeek( linfo, i + 0 ) nameidx = lpeek( linfo, i + 4 ) hlib = lpeek( linfo, i + 8 ) clsid = lpeek( linfo, i + 12 ) ;mes "flag = " + flag mes strf( "name = %s", ds_ptr + nameidx ) ;mes "hlib = " + hlib ;mes "clsid = " + clsid next mes "* FINFO" for i, 0, max_finfo, 28 // sizeof STRUCTDAT == 28 index = wpeek( finfo, i + 0 ) subid = wpeek( finfo, i + 2 ) prmindex = lpeek( finfo, i + 4 ) prmmax = lpeek( finfo, i + 8 ) nameidx = lpeek( finfo, i + 12 ) size = lpeek( finfo, i + 16 ) otindex = lpeek( finfo, i + 20 ) proc = lpeek( finfo, i + 24 ) funcflag = proc out = strf( "%s", ds_ptr + nameidx ) is_ctype = index == 0xfffe if funcflag { is_ctype = ( otindex & 4 ) != 0 } if is_ctype : out += "(" : else : out += " " repeat prmmax if cnt : out += ", " mptype = wpeek( minfo, ( prmindex + cnt ) * 8 + 0 ) gosub *gettypename out += refstr loop if is_ctype : out += ")" mes out next ;mes "* MINFO" for i, 0, max_minfo, 8 // sizeof STRUCTPRM == 8 mptype = wpeek( minfo, i + 0 ) subid = wpeek( minfo, i + 2 ) offset = lpeek( minfo, i + 4 ) ;mes "mptype = " + mptype ;mes "subid = " + subid ;mes "offset = " + offset next stop *gettypename switch mptype case 0 return "none" case 1 return "var" case 2 return "str" case 3 return "double" case 4 return "int" case 5 return "struct" case 7 return "label" case 0xffff return "local" case 0xfffe return "array" case 0xfffd return "var" case 0xfffc return "float" case 0xfffb return "structtag" case 0xfffa return "str" swend return "unknown"