fputs("typedef ", state->file);
do_typedef(TreeState *state){    IDL_tree type = IDL_TYPE_DCL(state->tree).type_spec,        dcls = IDL_TYPE_DCL(state->tree).dcls,        complex;    if (IDL_NODE_TYPE(type) == IDLN_TYPE_SEQUENCE) {        IDL_tree_warning(state->tree, IDL_WARNING1,                         "sequences not supported, ignored");    } else {        state->tree = type;        if (!xpcom_type(state))            return FALSE;        fputs("typedef ", state->file);        fputs(" ", state->file);        if (IDL_NODE_TYPE(complex = IDL_LIST(dcls).data) == IDLN_TYPE_ARRAY) {            fprintf(state->file, "%s[%ld]",                    IDL_IDENT(IDL_TYPE_ARRAY(complex).ident).str,                 (long)IDL_INTEGER(IDL_LIST(IDL_TYPE_ARRAY(complex).size_list).                                data).value);        } else {            fputs(" ", state->file);            fputs(IDL_IDENT(IDL_LIST(dcls).data).str, state->file);        }        fputs(";\n", state->file);    }    return TRUE;}