ir_pvt.h   [plain text]


/*
 * 
 * (c) Copyright 1991 OPEN SOFTWARE FOUNDATION, INC.
 * (c) Copyright 1991 HEWLETT-PACKARD COMPANY
 * (c) Copyright 1991 DIGITAL EQUIPMENT CORPORATION
 * To anyone who acknowledges that this file is provided "AS IS"
 * without any express or implied warranty:
 *                 permission to use, copy, modify, and distribute this
 * file for any purpose is hereby granted without fee, provided that
 * the above copyright notices and this notice appears in all source
 * code copies, and that none of the names of Open Software
 * Foundation, Inc., Hewlett-Packard Company, or Digital Equipment
 * Corporation be used in advertising or publicity pertaining to
 * distribution of the software without specific, written prior
 * permission.  Neither Open Software Foundation, Inc., Hewlett-
 * Packard Company, nor Digital Equipment Corporation makes any
 * representations about the suitability of this software for any
 * purpose.
 * 
 */
/*
**
**  NAME:
**
**      ir_pvt.h
**
**  FACILITY:
**
**      Interface Definition Language (IDL) Compiler
**
**  ABSTRACT:
**
**  Header file containing defining intermediate-rep private data structures
**  for data that is kept in the IR_info_t field of some AST nodes.
**
**  %a%private_begin
**
**
**  %a%private_end  
*/

#ifndef IR_PVTH_INCL
#define IR_PVTH_INCL

typedef struct IR_info_n_t {
    /*
     * Pointer to last created tuple in a parameter or type node's tuple list.
     */
    struct IR_tup_n_t   *cur_tup_p;
    /*
     * For a field, field number.  For other nodes, available for any use.
     */
    long                id_num;
    /*
     * On a param, T => requires server side preallocation of [ref] pointee(s).
     * On a type, T => same if reference is not under a full or unique pointer.
     */
    boolean             allocate_ref;
} IR_info_n_t;

typedef IR_info_n_t *IR_info_t;

/*
 * Data structure used to help sort the case labels of a union.
 */
typedef struct IR_case_info_n_t {
    struct AST_arm_n_t          *arm_p;     /* Ptr to union arm node */
    struct AST_case_label_n_t   *label_p;   /* Ptr to case label node */
    unsigned long               value;      /* Normallized case label value */
} IR_case_info_n_t;

#endif