Changeset 21387 for lang/hsp/misc
- Timestamp:
- 10/15/08 23:00:20 (3 months ago)
- Location:
- lang/hsp/misc
- Files:
-
- 4 modified
-
hsp2hs/main.hsp (modified) (1 prop)
-
hsp2hs/mod_hsp2hs.hsp (modified) (11 diffs, 1 prop)
-
hsp2hs/mod_strutils.hsp (modified) (6 diffs, 1 prop)
-
unused_variable_lister/unused_variable_lister.hsp (modified) (8 diffs, 1 prop)
Legend:
- Unmodified
- Added
- Removed
-
lang/hsp/misc/hsp2hs/main.hsp
- Property svn:mime-type set to text/plain; charset=Shift_JIS
-
lang/hsp/misc/hsp2hs/mod_hsp2hs.hsp
- Property svn:mime-type set to text/plain; charset=Shift_JIS
r13489 r21387 1 1 /** 2 2 * mod_hsp2hs 3 * HSP �X�N���v�g�����ߍ��݃h�L�������g����s �t�@�C�������郂�W���[��3 * HSP スクリプト内の埋め込みドキュメントから hs ファイルを生成するモジュール 4 4 * @author fujidig 5 5 * @date 2008/06/08 … … 28 28 29 29 *init 30 if inited == 0 { // ���� inited = 1 30 if inited == 0 { // 初期化 31 inited = 1 31 32 tag_names = "author", "date", "ver", "href", "url", "note", "type", "group", "port", "portinf", "sample" 32 33 } … … 42 43 sdim tags,, TAG_MAX 43 44 44 is_tag_started = 0 // @tag ���n�܂���� / @tag ���n�܂�Ă��������͎t���Ȃ�45 is_tag_started = 0 // @tag が始まったか / @tag が始まってからは説明文は受け付けない 45 46 tag = "" 46 47 … … 107 108 108 109 /** 109 * HSP �X�N���v�g�����ߍ��݃h�L�������g����s �t�@�C����110 * �ϐ� src �Ɋi�[���ꂽ HSP �X�N���v�g�̕����疄�ߍ��݃h�L�������g����A hs �t�@�C���֕ϊ����܂��B111 * hs �t�@�C���̓��͕ϐ� dest �Ɋi�[���܂��B112 * @params src HSP �X�N���v�g�̕�����ϐ�113 * @params dest ���ʂ�hs �t�@�C���̓���[������110 * HSP スクリプト内の埋め込みドキュメントから hs ファイルを生成 111 * 変数 src に格納された HSP スクリプトの文字列から埋め込みドキュメントを探し、 hs ファイルへ変換します。 112 * hs ファイルの内容は変数 dest に格納します。 113 * @params src HSP スクリプトの文字列型変数 114 * @params dest 結果の hs ファイルの内容を格納する変数 114 115 */ 115 116 #deffunc hsp2hs var src, var dest … … 119 120 120 121 #enum STATUS_DEFAULT = 1 121 #enum STATUS_DOC1 // ; ==hspmodule== �`; ==/hspmodule==122 #enum STATUS_DOC2 // /** �`*/123 #enum STATUS_DOCEND // �h�L�������g�I��124 #enum STATUS_COMMENT // �����s�R�����g125 #enum STATUS_STR_LITERAL // �����s�����e����122 #enum STATUS_DOC1 // ; ==hspmodule== 〜 ; ==/hspmodule== 123 #enum STATUS_DOC2 // /** 〜 */ 124 #enum STATUS_DOCEND // ドキュメント終了 125 #enum STATUS_COMMENT // 複数行コメント 126 #enum STATUS_STR_LITERAL // 複数行文字列リテラル 126 127 127 128 status = STATUS_DEFAULT … … 187 188 continue 188 189 } 189 if strmid(ln, lnptr, 3) == "/**" : if peek(ln, lnptr+3) != '/' { // /**/ �ɂ͈��������悤�� lnptr += 3 190 if strmid(ln, lnptr, 3) == "/**" : if peek(ln, lnptr+3) != '/' { // /**/ には引っかからないように 191 lnptr += 3 190 192 doc = "" 191 193 doc_start_lineno = cnt … … 207 209 ins = instr(ln, lnptr, "\"}") 208 210 if ins >= 0 { 209 // ins �̒l��̂܂g��Ă̓G�X�P�[�v�V�[�N�G���X�ł��������Ȃ� {"\"}"} �Ƃ� �j211 // ins の値をそのまま使ってはエスケープシークエンスでおかしくなる( {"\"}"} とか ) 210 212 i = -1 211 213 repeat strlen(ln)-lnptr … … 225 227 } 226 228 if status == STATUS_DEFAULT { 227 // �ꕶ�����ǂ����ăR�����g�Ƃ������e�����Ƃ��F������ i = 0 229 // 一文字ずつ読んでいってコメントとか文字列リテラルとか認識する 230 i = 0 228 231 repeat strlen(ln)-lnptr, lnptr 229 232 c = peek(ln, cnt) … … 257 260 } 258 261 259 // �h�L�������g���262 // ドキュメントを解析 260 263 if status != STATUS_DOCEND : continue 261 264 doc_analyze 262 265 status = STATUS_DEFAULT 263 266 264 // �����267 // 定義を取得 265 268 266 269 if doc_start_lineno == 0 { 267 // �t�@�C���擪270 // ファイル先頭 268 271 dest += "%dll\n" 269 272 dest += summary + "\n" … … 289 292 lnptr += spnspace(ln, lnptr) 290 293 291 // �����X�g���294 // 仮引数リストを取得 292 295 prm_types = "" 293 296 prm_names = "" … … 314 317 loop 315 318 316 // TODO : �h�L�������g�̃p�����[�^���Ǝ�ۂ̉����X�g��r���Ĉ����ȂLjႦ�Όx��319 // TODO : ドキュメントのパラメータ説明と実際の仮引数リストを比較して引数の数など違えば警告 317 320 318 321 prm = "" -
lang/hsp/misc/hsp2hs/mod_strutils.hsp
- Property svn:mime-type set to text/plain; charset=Shift_JIS
r13489 r21387 1 1 /** 2 2 * mod_strutils 3 * ��������[�e�B���e�B���W���[��3 * 文字列のユーティリティモジュール 4 4 * @author fujidig 5 5 * @date 2008/06/08 … … 11 11 12 12 /** 13 * ������w���u�������ƃ^�u�̑����𐔂��� * �������̃C���f�b�N�X p �������ƃ^�u�̑����𐔂��܂��B 14 * ����������܂��B 15 * @param s ������ϐ� 16 * @param p ������C���f�b�N�X 17 * @return �ƃ^�u�̑����� 13 * 文字列の指定位置から空白とタブの続く回数を数える 14 * 文字列 s のインデックス p から空白とタブの続く回数を数えます。 15 * 数えた回数を返します。 16 * @param s 文字列型変数 17 * @param p 文字列のインデックス 18 * @return 空白とタブの続く回数 18 19 */ 19 20 #defcfunc spnspace var s, int p … … 28 29 29 30 /** 30 * �����环�ʎq�����31 * �������̃C���f�b�N�X p ���环�ʎq������܂��B32 * ���o�������ʎq��� d �Ɋi�[���A���̒�������܂��B33 * @param s ������ϐ�34 * @param p ������C���f�b�N�X35 * @param d ���ʎq�̕�����i�[������36 * @return ���ʎq�̒���(bytes)31 * 文字列から識別子を取り出す 32 * 文字列 s のインデックス p から識別子を取り出します。 33 * 取り出した識別子を変数 d に格納し、その長さを返します。 34 * @param s 文字列型変数 35 * @param p 文字列のインデックス 36 * @param d 識別子の文字列を格納する変数 37 * @return 識別子の長さ(bytes) 37 38 */ 38 39 #defcfunc scanident var s, int p, var d 39 // TODO : �S�p������ �ȂǂɑΉ�40 // TODO : 全角文字や @ などに対応 40 41 c = peek(s, p) 41 42 if (c < 'A' | c > 'Z') & c != '_' & (c < 'a' | c > 'z') { … … 54 55 55 56 /** 56 * ���������X�y�[�X���u�A�������57 * ������ϐ� s �̑O���X�y�[�X�ނ�����܂��B58 * @param s ������ϐ�57 * 文字列から前後のスペースやタブ、改行を取っ払う 58 * 文字列型変数 s の前後のスペース類を削除します。 59 * @param s 文字列型変数 59 60 */ 60 61 #deffunc stripstr var s 61 62 l = strlen(s) 62 // ����X�y�[�X63 // TODO : 2 �o�C�g������2 �o�C�g�ڂ��X�y�[�X���u�A������R�[�h�ɂȂ邱�Ƃ͂��肦�Ȃ����m�F63 // 末尾のスペース 64 // TODO : 2 バイト文字の 2 バイト目がスペースやタブ、改行の文字コードになることはありえないか確認 64 65 repeat l, 1 65 66 knt = l - cnt … … 71 72 l = knt+1 72 73 poke s, l 73 // �擪�̃X�y�[�X74 // 先頭のスペース 74 75 repeat 75 76 c = peek(s, cnt) … … 83 84 84 85 /** 85 * ������w���u�Ƃ����̕�����擪���瓯�����̑����o�C�g���𐔂���* ������ϐ� a �̃C���f�b�N�X p �ƕ�����ϐ� b �̐擪���瓯�����̑����o�C�g���𐔂��܂��B 86 * @param a ������ϐ� 87 * @param p a �̃C���f�b�N�X 88 * @param b ������ϐ� 86 * 文字列の指定位置ともう一方の文字列の先頭から同じ内容の続くバイト数を数える 87 * 文字列型変数 a のインデックス p と文字列型変数 b の先頭から同じ内容の続くバイト数を数えます。 88 * @param a 文字列型変数 89 * @param p a のインデックス 90 * @param b 文字列型変数 89 91 */ 90 92 #defcfunc spnstr var a, int p, var b -
lang/hsp/misc/unused_variable_lister/unused_variable_lister.hsp
- Property svn:mime-type set to text/plain; charset=Shift_JIS
r18359 r21387 1 1 // Unused Variable Lister 2 // �����Ă��Ȃ��ÓI�ϐ�������� 3 // �t�@�C���I��C�A���O��HSP �̃I�u�W�F�N�g�t�@�C��(obj)���X�N���v�g�t�@�C��(*.hsp)��肵�Ă������� 4 // �I�u�W�F�N�g�t�@�C����start.ax �ł͂Ȃ� obj ��肵�Ă��������B 5 // start.ax ���f�o�b�O�����t��������Ȃ��̂ŁB 2 // 代入していない静的変数を列挙する 3 4 // ファイル選択ダイアログで HSP のオブジェクトファイル(obj)かスクリプトファイル(*.hsp)を指定してください 5 // オブジェクトファイルは start.ax ではなく obj を指定してください。 6 // start.ax は デバッグ情報が付加されていないので。 6 7 7 8 // TODO: 8 // - DLL �̖��߂�[�U�[�����߂ŕϐ�����Ă����Ƃ�������悤�ɂ��悤���ȁ[�H9 // - DLL の命令やユーザー定義命令で変数を渡しているのとかを拾わないようにしようかなー? 9 10 10 11 #include "hspcmp.as" … … 41 42 #define global TYPE_USERDEF 18 42 43 43 // �u�p�����[�^�̕ϐ��ɑ����閽�߁v�idim�Ȃǁj������郂�W���[��44 // 「パラメータの変数に代入する命令」(dimなど)を管理するモジュール 44 45 #module mod_var_cmd t 45 46 #modinit … … 67 68 #define define define_var_cmd 68 69 dimtype table, 5, 18 69 // �p�����[�^�̕ϐ��ɑ����閽�߈ꗗ70 // パラメータの変数に代入する命令一覧 70 71 define TYPE_INTCMD, 0x015, 1 // dirlist 71 72 ; define TYPE_INTCMD, 0x016, 2 // bload … … 111 112 pos 640 - 50 - 50, 0 112 113 objsize 50 113 button gosub " �Q��..", *open_dialog114 button gosub "参照...", *open_dialog 114 115 pos 640 - 50, 0 115 button gosub " ��s", *start116 button gosub "実行", *start 116 117 result = "" 117 118 pos 0 … … 152 153 hsc_comp 1, 0 153 154 if stat { 154 result += " �R���p�C���Ɏ��s���܂���\n"155 result += "コンパイルに失敗しました\n" 155 156 hsc3_messize size 156 157 sdim error_message, size + 1 … … 164 165 exist obj_path 165 166 if strsize < 0 { 166 result += " �I�u�W�F�N�g�t�@�C�������݂��܂���167 result += "オブジェクトファイルが存在しません\n" 167 168 return 168 169 } … … 170 171 bload obj_path, ax 171 172 if lpeek(ax) != 0x33505348 { // header magic number check 172 result += " �s���ȃI�u�W�F�N�g�t�@�C���ł�\n"173 result += "不正なオブジェクトファイルです\n" 173 174 return 174 175 } 175 176 gosub *list_unused_variables 176 177 if unused_variables_count { 177 result += " ���g�p�ϐ���+ unused_variables_count + " �����܂���\n"178 result += "未使用変数を " + unused_variables_count + " 個見つけました\n" 178 179 } else { 179 result += " ���g�p�ϐ��͌������������\n"180 result += "未使用変数は見つかりませんでした\n" 180 181 } 181 182 repeat unused_variables_count … … 221 222 222 223 dim var_used_flags, max_val 223 sdim var_ref_filename,, max_val // �ϐ���Ƃ��Ă����@�C����224 dim var_ref_lineno, max_val // �ϐ���Ƃ��Ă����ԍ�224 sdim var_ref_filename,, max_val // 変数を参照しているファイル名 225 dim var_ref_lineno, max_val // 変数を参照している行番号 225 226 226 227 dinfo_pos = 0
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)