Changeset 21387 for lang/hsp/misc

Show
Ignore:
Timestamp:
10/15/08 23:00:20 (3 months ago)
Author:
fujidig
Message:

Tracでみたとき文字化けしないようにsvn:mime-typeを設定

Location:
lang/hsp/misc
Files:
4 modified

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  
    11/** 
    22 * mod_hsp2hs 
    3  * HSP �X�N���v�g�����ߍ��݃h�L�������g����s �t�@�C���𐶐����郂�W���[�� 
     3 * HSP スクリプト内の埋め込みドキュメントから hs ファイルを生成するモジュール 
    44 * @author fujidig 
    55 * @date 2008/06/08 
     
    2828 
    2929*init 
    30         if inited == 0 { // ����                inited = 1 
     30        if inited == 0 { // 初期化 
     31                inited = 1 
    3132                tag_names = "author", "date", "ver", "href", "url", "note", "type", "group", "port", "portinf", "sample" 
    3233        } 
     
    4243        sdim tags,, TAG_MAX 
    4344 
    44         is_tag_started = 0 // @tag ���n�܂���� / @tag ���n�܂�Ă��������͎󂯕t���Ȃ� 
     45        is_tag_started = 0 // @tag が始まったか / @tag が始まってからは説明文は受け付けない 
    4546        tag = "" 
    4647 
     
    107108 
    108109/** 
    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���֕ϊ����܂��B 
    111  * hs �t�@�C���̓��͕ϐ� dest �Ɋi�[���܂��B 
    112  * @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 ファイルの内容を格納する変数 
    114115 */ 
    115116#deffunc hsp2hs var src, var dest 
     
    119120         
    120121#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�����g 
    125 #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 // 複数行文字列リテラル 
    126127 
    127128        status = STATUS_DEFAULT 
     
    187188                                continue 
    188189                        } 
    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 
    190192                                doc = "" 
    191193                                doc_start_lineno = cnt 
     
    207209                        ins = instr(ln, lnptr, "\"}") 
    208210                        if ins >= 0 { 
    209                                 // ins �̒l��̂܂܎g��Ă̓G�X�P�[�v�V�[�N�G���X�ł��������Ȃ� {"\"}"} �Ƃ� �j 
     211                                // ins の値をそのまま使ってはエスケープシークエンスでおかしくなる( {"\"}"} とか ) 
    210212                                i = -1 
    211213                                repeat strlen(ln)-lnptr 
     
    225227                } 
    226228                if status == STATUS_DEFAULT { 
    227                         // �ꕶ�����“ǂ����ăR�����g�Ƃ������񃊃e�����Ƃ��F������               i = 0 
     229                        // 一文字ずつ読んでいってコメントとか文字列リテラルとか認識する 
     230                        i = 0 
    228231                        repeat strlen(ln)-lnptr, lnptr 
    229232                                c = peek(ln, cnt) 
     
    257260                } 
    258261 
    259                 // �h�L�������g��� 
     262                // ドキュメントを解析 
    260263                if status != STATUS_DOCEND : continue 
    261264                doc_analyze 
    262265                status = STATUS_DEFAULT 
    263266 
    264                 // ����� 
     267                // 定義を取得 
    265268 
    266269                if doc_start_lineno == 0 { 
    267                         // �t�@�C���擪 
     270                        // ファイル先頭 
    268271                        dest += "%dll\n" 
    269272                        dest += summary + "\n" 
     
    289292                lnptr += spnspace(ln, lnptr) 
    290293 
    291                 // �����X�g��� 
     294                // 仮引数リストを取得 
    292295                prm_types = "" 
    293296                prm_names = "" 
     
    314317                loop 
    315318 
    316                 // TODO : �h�L�������g�̃p�����[�^���Ǝ�ۂ̉����X�g��r���Ĉ����ȂLjႦ�Όx�� 
     319                // TODO : ドキュメントのパラメータ説明と実際の仮引数リストを比較して引数の数など違えば警告 
    317320 
    318321                prm = "" 
  • lang/hsp/misc/hsp2hs/mod_strutils.hsp

    • Property svn:mime-type set to text/plain; charset=Shift_JIS
    r13489 r21387  
    11/** 
    22 * mod_strutils 
    3  * ��������[�e�B���e�B���W���[�� 
     3 * 文字列のユーティリティモジュール 
    44 * @author fujidig 
    55 * @date 2008/06/08 
     
    1111 
    1212/** 
    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 空白とタブの続く回数 
    1819 */ 
    1920#defcfunc spnspace var s, int p 
     
    2829 
    2930/** 
    30  * �����񂩂环�ʎq����� 
    31  * �������̃C���f�b�N�X p ���环�ʎq������܂��B 
    32  * ���o�������ʎq��� d �Ɋi�[���A���̒�������܂��B 
    33  * @param s ������ϐ� 
    34  * @param p ������C���f�b�N�X 
    35  * @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) 
    3738 */ 
    3839#defcfunc scanident var s, int p, var d 
    39         // TODO : �S�p������ �ȂǂɑΉ� 
     40        // TODO : 全角文字や @ などに対応 
    4041        c = peek(s, p) 
    4142        if (c < 'A' | c > 'Z') & c != '_' & (c < 'a' | c > 'z') { 
     
    5455 
    5556/** 
    56  * �����񂩂����X�y�[�X���u�A������� 
    57  * ������ϐ� s �̑O���X�y�[�X�ނ�����܂��B 
    58  * @param s ������ϐ� 
     57 * 文字列から前後のスペースやタブ、改行を取っ払う 
     58 * 文字列型変数 s の前後のスペース類を削除します。 
     59 * @param s 文字列型変数 
    5960 */ 
    6061#deffunc stripstr var s 
    6162        l = strlen(s) 
    62         // ����X�y�[�X 
    63         // TODO : 2 �o�C�g������2 �o�C�g�ڂ��X�y�[�X���u�A������R�[�h�ɂȂ邱�Ƃ͂��肦�Ȃ����m�F 
     63        // 末尾のスペース 
     64        // TODO : 2 バイト文字の 2 バイト目がスペースやタブ、改行の文字コードになることはありえないか確認 
    6465        repeat l, 1 
    6566                knt = l - cnt 
     
    7172        l = knt+1 
    7273        poke s, l 
    73         // �擪�̃X�y�[�X 
     74        // 先頭のスペース 
    7475        repeat 
    7576                c = peek(s, cnt) 
     
    8384 
    8485/** 
    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 文字列型変数 
    8991 */ 
    9092#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  
    11// 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 は デバッグ情報が付加されていないので。 
    67 
    78// TODO: 
    8 // - DLL �̖��߂⃆�[�U�[�����߂ŕϐ�����Ă����Ƃ�������悤�ɂ��悤���ȁ[�H 
     9// - DLL の命令やユーザー定義命令で変数を渡しているのとかを拾わないようにしようかなー? 
    910 
    1011#include "hspcmp.as" 
     
    4142#define global TYPE_USERDEF 18 
    4243 
    43 // �u�p�����[�^�̕ϐ��ɑ����閽�߁v�idim�Ȃǁj������郂�W���[�� 
     44// 「パラメータの変数に代入する命令」(dimなど)を管理するモジュール 
    4445#module mod_var_cmd t 
    4546#modinit 
     
    6768#define define define_var_cmd 
    6869        dimtype table, 5, 18 
    69         // �p�����[�^�̕ϐ��ɑ����閽�߈ꗗ 
     70        // パラメータの変数に代入する命令一覧 
    7071        define TYPE_INTCMD,  0x015, 1 // dirlist 
    7172;       define TYPE_INTCMD,  0x016, 2 // bload 
     
    111112        pos 640 - 50 - 50, 0 
    112113        objsize 50 
    113         button gosub "�Q��..", *open_dialog 
     114        button gosub "参照...", *open_dialog 
    114115        pos 640 - 50, 0 
    115         button gosub "��s", *start 
     116        button gosub "実行", *start 
    116117        result = "" 
    117118        pos 0 
     
    152153                hsc_comp 1, 0 
    153154                if stat { 
    154                         result += "�R���p�C���Ɏ��s���܂���\n" 
     155                        result += "コンパイルに失敗しました\n" 
    155156                        hsc3_messize size 
    156157                        sdim error_message, size + 1 
     
    164165        exist obj_path 
    165166        if strsize < 0 { 
    166                 result += "�I�u�W�F�N�g�t�@�C�������݂��܂��� 
     167                result += "オブジェクトファイルが存在しません\n" 
    167168                return 
    168169        } 
     
    170171        bload obj_path, ax 
    171172        if lpeek(ax) != 0x33505348 { // header magic number check 
    172                 result += "�s���ȃI�u�W�F�N�g�t�@�C���ł�\n" 
     173                result += "不正なオブジェクトファイルです\n" 
    173174                return 
    174175        } 
    175176        gosub *list_unused_variables 
    176177        if unused_variables_count { 
    177                 result += "���g�p�ϐ���+ unused_variables_count + " �Œ��‚��܂���\n" 
     178                result += "未使用変数を " + unused_variables_count + " 個見つけました\n" 
    178179        } else { 
    179                 result += "���g�p�ϐ��͌��‚����������\n" 
     180                result += "未使用変数は見つかりませんでした\n" 
    180181        } 
    181182        repeat unused_variables_count 
     
    221222 
    222223        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     // 変数を参照している行番号 
    225226 
    226227        dinfo_pos = 0