search_dir(dir){
// dirȉ̃tH_
@@file_list = empty;
@@recursive = 2;
@@tfiles = empty; // ׂt@C̃Xg

recursive_loop:
@@if recursive < 0 goto recursive_next;

@@getfiles(dir,files); // filesɃt@CXgifull pathj擾
@@foreach file of files {
@@@@file{recursive} = recursive;@// perl̘AzL
@@@@// ċAxt@CXg̊et@CƂďł܂I
@@}

@@addtfile(tfiles,files); // ׂXg\ɓo^I

recursive_next:
@@while (tfile = shift tfiles) { // tfiles݂ԃ[vB
@@// shiftɂAtfiles̐擪̗vf؂otfileɓBicf.Perlj

@@@@if (tfile == directory) {
@@@@@@recursive = tfile{recursive} - 1;
@@@@@@dir = tfile;
@@@@@@goto recursive_loop;
@@@@}
@@@@if (tfile == bmsfile) addlist(filelist,tfile);
@@}
}

