subscriptIdentifier(state, name),
subscriptIdentifier(state, (char*) name),
constant_declaration(TreeState *state){    /*     * The C++ header XPIDL module only allows for shorts and longs (ints)     * to be constants, so we will follow the same convention     */    struct _IDL_CONST_DCL *declaration = &IDL_CONST_DCL(state->tree);    const char *name = IDL_IDENT(declaration->ident).str;    gboolean success;    gboolean isshort = FALSE;    GSList *doc_comments = IDL_IDENT(declaration->ident).comments;    /*     * Consts must be in an interface     */    if (!IDL_NODE_UP(IDL_NODE_UP(state->tree)) ||        IDL_NODE_TYPE(IDL_NODE_UP(IDL_NODE_UP(state->tree))) !=         IDLN_INTERFACE) {        XPIDL_WARNING((state->tree, IDL_WARNING1,                       "A constant \"%s\" was declared outside an interface."                       "  It was ignored.", name));        return TRUE;    }    /*     * Make sure this is a numeric short or long constant.     */    success = (IDLN_TYPE_INTEGER == IDL_NODE_TYPE(declaration->const_type));    if (success) {        /*         * We aren't successful yet, we know it's an integer, but what *kind*         * of integer?         */        switch(IDL_TYPE_INTEGER(declaration->const_type).f_type) {        case IDL_INTEGER_TYPE_SHORT:            /*             * We're OK             */            isshort = TRUE;            break;        case IDL_INTEGER_TYPE_LONG:            /*             * We're OK             */                        break;                    default:            /*             * Whoops, it's some other kind of number             */                        success = FALSE;        }	    } else {            IDL_tree_error(state->tree,                           "const declaration \'%s\' must be of type short or long",                           name);            return FALSE;    }    if (doc_comments != NULL) {        fputs("    ", FILENAME(state));        printlist(FILENAME(state), doc_comments);    }    if (success) {        fputc('\n', FILENAME(state));        write_comment(state);        fprintf(FILENAME(state), "    public static final %s %s = %d;\n",                (isshort ? "short" : "int"),                subscriptIdentifier(state, name),                (int) IDL_INTEGER(declaration->const_exp).value);    } else {        XPIDL_WARNING((state->tree, IDL_WARNING1,                       "A constant \"%s\" was not of type short or long."                       "  It was ignored.", name));	    }    return TRUE;}