use cz/vars cz_processes(): for_vec(lines, functions, vec*): cstr proto = *(cstr*)v(*lines, 0) boolean is_proc = cstr_begins_with(proto, "proc ") != NULL if is_proc: cz_processes__proc(proto, *lines) else: cz_processes__func(proto, *lines) cz_processes__func(cstr proto, vec *lines): use(proto) # In normal functions, remove any "state" prefix from variable decl. # This is so macros can use "state" decl and work in both procs and funcs. cstr *end = (cstr*)vecend(lines) cstr *lp = (cstr*)v(lines, 1) while lp != end cstr l = *lp char *p = strstr(l, "\tstate ") if p: p++ else: p = strstr(l, "\tfor state ") if p: p += 5 if p: *lp = tofree(Format("%.*s%s", p-l, l, p+6)) # 6 == strlen("state ") ++lp cz_processes__proc(cstr proto, vec *lines): use(proto) use(lines) # TODO