func doEnum(_data) fvar(arr,t) arr = event("Array", "@perm@" & '') if(count(arr) = 4 and arr[0] = 1 and arr[2] = 1) fvar(a_count, a_read) a_read = "@read@" & '' a_read[1] = i a_count = "@count@" & '' a_count = event("Array", a_count) a_read = event("Array", a_read) println('for(int ' + i + ' = 0; ' + i + ' < ' + a_count + '; ' + i + '++) {') block.inclvl() if(linked(Item)) lang(it) t = sub(a_read)[0] lng.decl_loc_var(it, lng.get_type_name(t)) sub(it, t) println(it, ' = ', a_read, ';') event(onEnum, it) else event(onEnum, a_read) end block.declvl() println('}') event(onEndEnum) else error('This array can not be enumerated') end end func doStop(_data) println('break;') end func Item() return(it) end func Index() return(i) end