| | 25 | |
| | 26 | #deffunc doc_analyze |
| | 27 | summary = "" |
| | 28 | inst = "" |
| | 29 | dprm_names = "" |
| | 30 | dprm_summaries = "" |
| | 31 | dprms_cnt = 0 |
| | 32 | hrefs = "" |
| | 33 | hrefs_cnt = 0 |
| | 34 | |
| | 35 | sdim tags,, TAG_MAX |
| | 36 | |
| | 37 | is_tag_started = 0 // @tag ���n�܂���� / @tag ���n�܂�Ă��������͎t���Ȃ� |
| | 38 | |
| | 39 | docptr = 0 |
| | 40 | repeat |
| | 41 | getstr dln, doc, docptr |
| | 42 | if strsize == 0 : break |
| | 43 | docptr += strsize |
| | 44 | dlnptr = 0 |
| | 45 | |
| | 46 | dlnptr += spnspace(dln, dlnptr) |
| | 47 | if peek(dln, dlnptr) == 0 : continue |
| | 48 | |
| | 49 | if is_tag_started == 0 & peek(dln, dlnptr) != '@' { |
| | 50 | // �O���X�y�[�X���Ă��܂��d�l���ƃX�N���v�g��������ɖ����H�i�X�y�[�X�ƃ^�u�̍��ʉ���������H�j |
| | 51 | astr = strmid(dln, dlnptr, 9999) |
| | 52 | stripstr astr |
| | 53 | if summary == "" { |
| | 54 | summary = astr |
| | 55 | } else { |
| | 56 | if inst == "" { |
| | 57 | inst = astr |
| | 58 | } else { |
| | 59 | inst += "\n" + astr |
| | 60 | } |
| | 61 | } |
| | 62 | continue |
| | 63 | } |
| | 64 | |
| | 65 | if peek(dln, dlnptr) != '@' : continue |
| | 66 | is_tag_started = 1 |
| | 67 | dlnptr ++ // '@' |
| | 68 | ;dlnptr += spnspace(dln, dlnptr) |
| | 69 | dlnptr += scanident(dln, dlnptr, tag) |
| | 70 | dlnptr += spnspace(dln, dlnptr) |
| | 71 | |
| | 72 | switch tag |
| | 73 | case "param" |
| | 74 | dlnptr += scanident(dln, dlnptr, dprm_names.dprms_cnt) |
| | 75 | dlnptr += spnspace(dln, dlnptr) |
| | 76 | dprm_summaries.dprms_cnt = strmid(dln, dlnptr, 9999) |
| | 77 | stripstr dprm_summaries.dprms_cnt |
| | 78 | dprms_cnt ++ |
| | 79 | swbreak |
| | 80 | case "href" |
| | 81 | hrefs.hrefs_cnt = strmid(dln, dlnptr, 9999) |
| | 82 | stripstr hrefs.hrefs_cnt |
| | 83 | hrefs_cnt ++ |
| | 84 | swbreak |
| | 85 | default |
| | 86 | i = -1 |
| | 87 | repeat TAG_MAX |
| | 88 | if tag_names.cnt == tag : i = cnt : break |
| | 89 | loop |
| | 90 | if i == -1 : swbreak |
| | 91 | tags.i = strmid(dln, dlnptr, 9999) |
| | 92 | swend |
| | 93 | loop |
| | 94 | return |
| 44 | | |
| 45 | | // �h�L�������g /** �` */�̎��o�� |
| 46 | | lnptr = spnspace(ln) |
| 47 | | if strmid(ln, lnptr, 3) != "/**" : continue |
| 48 | | lnptr += 3 |
| 49 | | |
| 50 | | sz = instr(src, srcptr+lnptr, "*/") |
| 51 | | if sz < 0 : break |
| 52 | | doc = strmid(src, srcptr+lnptr, sz) |
| 53 | | srcptr_n = srcptr + lnptr + sz + 2 // 2 == strlen("*/") |
| 54 | | srcptr_n += spnspace(src, srcptr_n) |
| 55 | | s = strmid(src, srcptr_n, 2) |
| 56 | | if s == "\n" { |
| 57 | | srcptr_n += 2 // strlen("\n") |
| 58 | | } else : if peek(s) != 0 { |
| 59 | | // '*/'�ƃX�y�[�X�̌����s���łȂ��� |
| 60 | | // �h�L�������g�Ƃ͔F�������s���܂Ŕ�� |
| 61 | | ins = instr(src, srcptr_n, "\n") |
| 62 | | if ins < 0 : break |
| 63 | | srcptr_n += ins + 2 // strlen("\n") |
| 64 | | continue |
| | 122 | lnptr = 0 |
| | 123 | logmes "status = " + status + ", ln = '" + ln +"'" |
| | 124 | |
| | 125 | if status == STATUS_DEFAULT | status == STATUS_DOC1 { |
| | 126 | lnptr += spnspace(ln, lnptr) |
| | 127 | if peek(ln, lnptr) != ';' { |
| | 128 | status = STATUS_DEFAULT |
| | 129 | } else { |
| | 130 | lnptr ++ |
| | 131 | lnptr += spnspace(ln, lnptr) |
| | 132 | if status == STATUS_DOC1 { |
| | 133 | if strmid(ln, lnptr, 14) == "==/hspmodule==" { |
| | 134 | status = STATUS_DOCEND |
| | 135 | continue |
| | 136 | } |
| | 137 | doc += strmid(ln, lnptr, 9999) + "\n" |
| | 138 | continue |
| | 139 | } |
| | 140 | logmes "strmid(ln, "+lnptr+", 13) = '"+strmid(ln, lnptr, 13) |
| | 141 | if strmid(ln, lnptr, 13) == "==hspmodule==" { |
| | 142 | doc = "" |
| | 143 | doc_start_lineno = cnt |
| | 144 | status = STATUS_DOC1 |
| | 145 | continue |
| | 146 | } |
| | 147 | } |
| | 149 | if status == STATUS_DEFAULT | status == STATUS_DOC2 { |
| | 150 | lnptr += spnspace(ln, lnptr) |
| | 151 | if status == STATUS_DOC2 { |
| | 152 | if strmid(ln, lnptr, 2) == "*/" { |
| | 153 | status = STATUS_DOCEND |
| | 154 | continue |
| | 155 | } |
| | 156 | if peek(ln, lnptr) == '*' { |
| | 157 | lnptr ++ |
| | 158 | lnptr += spnspace(ln, lnptr) |
| | 159 | } |
| | 160 | doc += strmid(ln, lnptr, 9999) + "\n" |
| | 161 | continue |
| | 162 | } |
| | 163 | if strmid(ln, lnptr, 3) == "/**" { |
| | 164 | doc = "" |
| | 165 | doc_start_lineno = cnt |
| | 166 | status = STATUS_DOC2 |
| | 167 | continue |
| | 168 | } |
| | 169 | } |
| | 170 | if status == STATUS_DEFAULT : continue |
| 68 | | summary = "" |
| 69 | | inst = "" |
| 70 | | dprm_names = "" |
| 71 | | dprm_summaries = "" |
| 72 | | dprms_cnt = 0 |
| 73 | | hrefs = "" |
| 74 | | hrefs_cnt = 0 |
| 75 | | |
| 76 | | sdim tags,, TAG_MAX |
| 77 | | |
| 78 | | is_tag_started = 0 // @tag ���n�܂���� / @tag ���n�܂�Ă��������͎t���Ȃ� |
| 79 | | |
| 80 | | docptr = 0 |
| 81 | | repeat |
| 82 | | getstr dln, doc, docptr |
| 83 | | if strsize == 0 : break |
| 84 | | docptr += strsize |
| 85 | | dlnptr = 0 |
| 86 | | |
| 87 | | dlnptr += spnspace(dln, dlnptr) |
| 88 | | if peek(dln, dlnptr) == '*' { |
| 89 | | // �e�s�擪��* �͂Ƃ肠�������Ă����Ȃ��Ă����d�l�� |
| 90 | | dlnptr ++ |
| 91 | | dlnptr += spnspace(dln, dlnptr) |
| 92 | | } |
| 93 | | if peek(dln, dlnptr) == 0 : continue |
| 94 | | |
| 95 | | if is_tag_started == 0 & peek(dln, dlnptr) != '@' { |
| 96 | | // �O���X�y�[�X���Ă��܂��d�l���ƃX�N���v�g��������ɖ����H�i�X�y�[�X�ƃ^�u�̍��ʉ���������H�j |
| 97 | | astr = strmid(dln, dlnptr, 9999) |
| 98 | | stripstr astr |
| 99 | | if summary == "" { |
| 100 | | summary = astr |
| 101 | | } else { |
| 102 | | if inst == "" { |
| 103 | | inst = astr |
| 104 | | } else { |
| 105 | | inst += "\n" + astr |
| 106 | | } |
| 107 | | } |
| 108 | | continue |
| 109 | | } |
| 110 | | |
| 111 | | if peek(dln, dlnptr) != '@' : continue |
| 112 | | is_tag_started = 1 |
| 113 | | dlnptr ++ // '@' |
| 114 | | ;dlnptr += spnspace(dln, dlnptr) |
| 115 | | dlnptr += scanident(dln, dlnptr, tag) |
| 116 | | dlnptr += spnspace(dln, dlnptr) |
| 117 | | |
| 118 | | switch tag |
| 119 | | case "param" |
| 120 | | dlnptr += scanident(dln, dlnptr, dprm_names.dprms_cnt) |
| 121 | | dlnptr += spnspace(dln, dlnptr) |
| 122 | | dprm_summaries.dprms_cnt = strmid(dln, dlnptr, 9999) |
| 123 | | stripstr dprm_summaries.dprms_cnt |
| 124 | | dprms_cnt ++ |
| 125 | | swbreak |
| 126 | | case "href" |
| 127 | | hrefs.hrefs_cnt = strmid(dln, dlnptr, 9999) |
| 128 | | stripstr hrefs.hrefs_cnt |
| 129 | | hrefs_cnt ++ |
| 130 | | swbreak |
| 131 | | default |
| 132 | | logmes "tag = "+tag |
| 133 | | i = -1 |
| 134 | | repeat TAG_MAX |
| 135 | | if tag_names.cnt == tag : i = cnt : break |
| 136 | | loop |
| 137 | | if i == -1 : swbreak |
| 138 | | tags.i = strmid(dln, dlnptr, 9999) |
| 139 | | logmes "tags."+i+" = "+tags.i |
| 140 | | swend |
| 141 | | loop |
| | 173 | if status != STATUS_DOCEND : continue |
| | 174 | doc_analyze |
| | 175 | status = STATUS_DEFAULT |