root/lang/hsp/misc/hsp2hs/mod_strutils.hsp @ 13371

Revision 13371, 1.8 kB (checked in by fujidig, 5 years ago)

インデントをタブに統一

  • Property svn:executable set to *
Line 
1/**
2 * mod_strutils
3 * ��������[�e�B���e�B���W���[��
4 * @author fujidig
5 * @date 2008/06/03
6 * @ver 1.0.0
7 */
8
9#ifndef mod_strutils
10#module mod_strutils
11
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�̑�����
18 */
19#defcfunc spnspace var s, int p
20        repeat
21                c = peek(s, p + cnt)
22                if c != ' ' & c != '\t' {
23                        i = cnt
24                        break
25                }
26        loop
27        return i
28
29/**
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)
37 */
38#defcfunc scanident var s, int p, var d
39        // TODO : �S�p������ �ȂǂɑΉ�
40        c = peek(s, p)
41        if (c < 'A' | c > 'Z') & c != '_' & (c < 'a' | c > 'z') {
42                d = ""
43                return 0
44        }
45        repeat ,1
46                c = peek(s, p + cnt)
47                if (c < '0' | c > '9') & (c < 'A' | c > 'Z') & c != '_' & (c < 'a' | c > 'z') {
48                        i = cnt
49                        break
50                }
51        loop
52        d = strmid(s, p, i)
53        return i
54
55/**
56 * �����񂩂����X�y�[�X���u�A�������
57 * ������ϐ� s �̑O���X�y�[�X�ނ�����܂��B
58 * @param s ������ϐ�
59 */
60#deffunc stripstr var s
61        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
64        repeat l, 1
65                knt = l - cnt
66                c = peek(s, knt)
67                if c != ' ' & c != '\t' & c != 13 & c != 10 {
68                        break
69                }
70        loop
71        l = knt+1
72        poke s, l
73        // �擪�̃X�y�[�X
74        repeat
75                c = peek(s, cnt)
76                if c != ' ' & c != '\t' & c != 13 & c != 10 {
77                        i = cnt
78                        break
79                }
80        loop
81        if i : memcpy s, s, l-i+1, 0, i
82        return
83
84#global
85#endif
Note: See TracBrowser for help on using the browser.