|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Motif
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* Copyright (c) 1987-2012, The Open Group. All rights reserved.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are free software; you can
|
|
Packit |
b099d7 |
* redistribute them and/or modify them under the terms of the GNU
|
|
Packit |
b099d7 |
* Lesser General Public License as published by the Free Software
|
|
Packit |
b099d7 |
* Foundation; either version 2 of the License, or (at your option)
|
|
Packit |
b099d7 |
* any later version.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* These libraries and programs are distributed in the hope that
|
|
Packit |
b099d7 |
* they will be useful, but WITHOUT ANY WARRANTY; without even the
|
|
Packit |
b099d7 |
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
Packit |
b099d7 |
* PURPOSE. See the GNU Lesser General Public License for more
|
|
Packit |
b099d7 |
* details.
|
|
Packit |
b099d7 |
*
|
|
Packit |
b099d7 |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
b099d7 |
* License along with these librararies and programs; if not, write
|
|
Packit |
b099d7 |
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
|
|
Packit |
b099d7 |
* Floor, Boston, MA 02110-1301 USA
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* HISTORY
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
#ifdef REV_INFO
|
|
Packit |
b099d7 |
#ifndef lint
|
|
Packit |
b099d7 |
static char rcsid[] = "$TOG: UilSymStor.c /main/15 1997/03/12 15:21:44 dbl $"
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#ifdef HAVE_CONFIG_H
|
|
Packit |
b099d7 |
#include <config.h>
|
|
Packit |
b099d7 |
#endif
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* (c) Copyright 1989, 1990, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FACILITY:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** User Interface Language Compiler (UIL)
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** ABSTRACT:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This module contains the procedures for managing memory for
|
|
Packit |
b099d7 |
** the compiler.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** INCLUDE FILES
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <Xm/Xm.h>
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
#include <ctype.h>
|
|
Packit |
b099d7 |
#include "UilDefI.h"
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** DEFINE and MACRO DEFINITIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** EXTERNAL VARIABLE DECLARATIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** GLOBAL VARIABLE DECLARATIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_name_entry_type
|
|
Packit |
b099d7 |
*sym_az_hash_table[ sym_k_hash_table_limit];
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_value_entry_type
|
|
Packit |
b099d7 |
*sym_az_error_value_entry = NULL;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_external_def_entry_type
|
|
Packit |
b099d7 |
*sym_az_external_def_chain;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_forward_ref_entry_type
|
|
Packit |
b099d7 |
*sym_az_forward_ref_chain;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_val_forward_ref_entry_type
|
|
Packit |
b099d7 |
*sym_az_val_forward_ref_chain;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_module_entry_type
|
|
Packit |
b099d7 |
*sym_az_module_entry;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_root_entry_type
|
|
Packit |
b099d7 |
*sym_az_root_entry;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_section_entry_type
|
|
Packit |
b099d7 |
*sym_az_current_section_entry;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) sym_entry_type
|
|
Packit |
b099d7 |
*sym_az_entry_list_header;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* These lists save the allocated and freed symbol table nodes.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) URMPointerListPtr sym_az_allocated_nodes;
|
|
Packit |
b099d7 |
externaldef(uil_comp_glbl) URMPointerListPtr sym_az_freed_nodes;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** OWN VARIABLE DECLARATIONS
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This routine intializes the compiler's memory allocation system.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_last_location ptr to last byte avail for allocation
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** first symbol table buffer is allocated
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_initialize_storage(void)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Initialize the name hash table
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
for (i=0; i
|
|
Packit |
b099d7 |
sym_az_hash_table[ i ] = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Set forward reference, external definition, and symbol table header
|
|
Packit |
b099d7 |
* chains to null.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
sym_az_forward_ref_chain = NULL;
|
|
Packit |
b099d7 |
sym_az_val_forward_ref_chain = NULL;
|
|
Packit |
b099d7 |
sym_az_external_def_chain = NULL;
|
|
Packit |
b099d7 |
sym_az_entry_list_header = NULL;
|
|
Packit |
b099d7 |
sym_az_module_entry = NULL;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Acquire pointer lists to access allocated and freed nodes
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
UrmPlistInit (1000, &sym_az_allocated_nodes);
|
|
Packit |
b099d7 |
UrmPlistInit (100, &sym_az_freed_nodes);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Allocate a value entry for an error value and give it a name. Giving it
|
|
Packit |
b099d7 |
* name assures that it is not freed. The name used is one that will not
|
|
Packit |
b099d7 |
* conflict with a user name.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( sym_az_error_value_entry == NULL )
|
|
Packit |
b099d7 |
sym_az_error_value_entry = (sym_value_entry_type *)
|
|
Packit |
b099d7 |
sem_allocate_node (sym_k_value_entry, sym_k_value_entry_size);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_az_error_value_entry->b_type = sym_k_error_value;
|
|
Packit |
b099d7 |
sym_az_error_value_entry->obj_header.b_flags =
|
|
Packit |
b099d7 |
(sym_m_private | sym_m_builtin);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_az_error_value_entry->obj_header.az_name =
|
|
Packit |
b099d7 |
sym_insert_name( 9, "#error...");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This routine cleans up the compiler's memory allocation system, and
|
|
Packit |
b099d7 |
** frees all memory used by the symbol table.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** freealloc TRUE if allocated nodes are to be freed.
|
|
Packit |
b099d7 |
** Otherwise, free only freed nodes.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_entry_list_header ptr to list of symbol entries
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_entry_list_header ptr to list of symbol entries
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** all symbol table memory is freed.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
Uil_sym_cleanup_storage (boolean freealloc)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if ( freealloc )
|
|
Packit |
b099d7 |
if ( sym_az_allocated_nodes != NULL )
|
|
Packit |
b099d7 |
UrmPlistFreeContents (sym_az_allocated_nodes);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
if ( sym_az_freed_nodes != NULL )
|
|
Packit |
b099d7 |
UrmPlistFreeContents (sym_az_freed_nodes);
|
|
Packit |
b099d7 |
if ( sym_az_allocated_nodes != NULL )
|
|
Packit |
b099d7 |
UrmPlistFree (sym_az_allocated_nodes);
|
|
Packit |
b099d7 |
if ( sym_az_freed_nodes != NULL )
|
|
Packit |
b099d7 |
UrmPlistFree (sym_az_freed_nodes);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This routine adds an object to the external definition chain.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_name name of object to be placed on the chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_external_def_chain head of the external definition chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_external_def_chain head of the external definition chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_make_external_def( XmConst sym_name_entry_type *az_name )
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_external_def_entry_type *external_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* allocate an external definition entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
external_entry = (sym_external_def_entry_type *)
|
|
Packit |
b099d7 |
sem_allocate_node (sym_k_external_def_entry,
|
|
Packit |
b099d7 |
sym_k_external_def_entry_size);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* fill in the entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
external_entry->az_name = (sym_name_entry_type *)az_name;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* place on the front of the chain */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
external_entry->az_next_object = sym_az_external_def_chain;
|
|
Packit |
b099d7 |
sym_az_external_def_chain = external_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This routine adds a reference to the forward reference chain.
|
|
Packit |
b099d7 |
** This routine is used for widget and gadget forward references only.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_id_frame parse stack frame for id being referenced
|
|
Packit |
b099d7 |
** l_widget_type type of object being referenced
|
|
Packit |
b099d7 |
** az_object ptr to the location that needs to be updated
|
|
Packit |
b099d7 |
** when the object is resolved
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_forward_ref_chain head of the forward reference chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_forward_ref_chain head of the forward reference chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_make_forward_ref(XmConst yystype *az_id_frame,
|
|
Packit |
b099d7 |
XmConst int l_widget_type,
|
|
Packit |
b099d7 |
XmConst char *a_location)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_forward_ref_entry_type *fwd_ref_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_assert( (az_id_frame->b_tag == sar_k_token_frame) &&
|
|
Packit |
b099d7 |
(az_id_frame->value.az_symbol_entry->header.b_tag ==
|
|
Packit |
b099d7 |
sym_k_name_entry), "arg1 not an id frame" );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* allocate an external definition entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry = (sym_forward_ref_entry_type *)
|
|
Packit |
b099d7 |
sem_allocate_node (sym_k_forward_ref_entry,
|
|
Packit |
b099d7 |
sym_k_forward_ref_entry_size);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* fill in the entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_sar_save_source_pos (&fwd_ref_entry->header, az_id_frame);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry->header.b_type = l_widget_type;
|
|
Packit |
b099d7 |
fwd_ref_entry->az_name =
|
|
Packit |
b099d7 |
(sym_name_entry_type *) az_id_frame->value.az_symbol_entry;
|
|
Packit |
b099d7 |
fwd_ref_entry->a_update_location = (char *)a_location;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* place on the front of the chain */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry->az_next_ref = sym_az_forward_ref_chain;
|
|
Packit |
b099d7 |
sym_az_forward_ref_chain = fwd_ref_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This routine adds a reference to the values forward reference chain.
|
|
Packit |
b099d7 |
** This routine is used for value forward references only.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_id_frame parse stack frame for id being referenced
|
|
Packit |
b099d7 |
** az_object ptr to the location that needs to be updated
|
|
Packit |
b099d7 |
** when the object is resolved
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_val_forward_ref_chain head of the forward reference chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** sym_az_val_forward_ref_chain head of the forward reference chain
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_make_value_forward_ref (XmConst yystype *az_value_frame,
|
|
Packit |
b099d7 |
XmConst char *a_location,
|
|
Packit |
b099d7 |
XmConst unsigned char fwd_ref_flags )
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_val_forward_ref_entry_type *fwd_ref_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* allocate an external definition entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry = (sym_val_forward_ref_entry_type *)
|
|
Packit |
b099d7 |
sem_allocate_node (sym_k_val_forward_ref_entry,
|
|
Packit |
b099d7 |
sym_k_val_forward_ref_entry_size);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* fill in the entry */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_sar_save_source_pos (&fwd_ref_entry->header, az_value_frame);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (fwd_ref_flags)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case sym_k_patch_add:
|
|
Packit |
b099d7 |
fwd_ref_entry->az_name =
|
|
Packit |
b099d7 |
((sym_value_entry_type *)
|
|
Packit |
b099d7 |
az_value_frame->value.az_symbol_entry)->obj_header.az_name;
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_patch_list_add:
|
|
Packit |
b099d7 |
fwd_ref_entry->az_name =
|
|
Packit |
b099d7 |
(sym_name_entry_type *)az_value_frame->value.az_symbol_entry;
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
_assert(FALSE, "Illegal forward reference");
|
|
Packit |
b099d7 |
};
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry->a_update_location = (char *)a_location;
|
|
Packit |
b099d7 |
fwd_ref_entry->fwd_ref_flags = fwd_ref_flags;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* place on the front of the chain */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
fwd_ref_entry->az_next_ref = sym_az_val_forward_ref_chain;
|
|
Packit |
b099d7 |
sym_az_val_forward_ref_chain = fwd_ref_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This procedure recursively goes through the symbol table, dumping
|
|
Packit |
b099d7 |
** each node accessible from the root node.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbol table is dump with the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
UilDumpSymbolTable ( sym_entry_type *node_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_value_entry_type *val_node;
|
|
Packit |
b099d7 |
sym_widget_entry_type *widget_node;
|
|
Packit |
b099d7 |
sym_module_entry_type *module_node;
|
|
Packit |
b099d7 |
sym_list_entry_type *list_node;
|
|
Packit |
b099d7 |
sym_obj_entry_type *list_entry;
|
|
Packit |
b099d7 |
sym_root_entry_type *root_node;
|
|
Packit |
b099d7 |
sym_include_file_entry_type *ifile_node;
|
|
Packit |
b099d7 |
sym_section_entry_type *section_node;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* No action on null node. Else dump and processing is based on the kind
|
|
Packit |
b099d7 |
* of the current node.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
if ( node_entry == NULL ) return;
|
|
Packit |
b099d7 |
sym_dump_symbol (node_entry);
|
|
Packit |
b099d7 |
switch ( node_entry->header.b_tag )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case sym_k_value_entry:
|
|
Packit |
b099d7 |
val_node = (sym_value_entry_type *) node_entry;
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)val_node->az_charset_value);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)val_node->az_first_table_value);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)val_node->az_next_table_value);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)val_node->az_exp_op1);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)val_node->az_exp_op2);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_widget_entry:
|
|
Packit |
b099d7 |
case sym_k_gadget_entry:
|
|
Packit |
b099d7 |
case sym_k_child_entry:
|
|
Packit |
b099d7 |
widget_node = (sym_widget_entry_type *) node_entry;
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)widget_node->az_callbacks);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)widget_node->az_arguments);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)widget_node->az_controls);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)widget_node->az_create_proc);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_module_entry:
|
|
Packit |
b099d7 |
module_node = (sym_module_entry_type *) node_entry;
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)module_node->az_version);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)module_node->az_character_set);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)module_node->az_case_sense);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)module_node->az_def_obj);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_list_entry:
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Sublists (nested lists) are not processed recursively to
|
|
Packit |
b099d7 |
* pick up definitions, since all named lists are picked up
|
|
Packit |
b099d7 |
* in their list sections. We assume no list of interest to
|
|
Packit |
b099d7 |
* us can possibly be encountered only in a nested list reference.
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
list_node = (sym_list_entry_type *) node_entry;
|
|
Packit |
b099d7 |
for (list_entry=(sym_obj_entry_type *)
|
|
Packit |
b099d7 |
list_node->obj_header.az_next;
|
|
Packit |
b099d7 |
list_entry!=NULL;
|
|
Packit |
b099d7 |
list_entry=(sym_obj_entry_type *)
|
|
Packit |
b099d7 |
list_entry->obj_header.az_next)
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)list_entry);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_root_entry:
|
|
Packit |
b099d7 |
root_node = (sym_root_entry_type *) node_entry;
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)root_node->module_hdr);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)root_node->sections);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_include_file_entry:
|
|
Packit |
b099d7 |
ifile_node = (sym_include_file_entry_type *) node_entry;
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)ifile_node->sections);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_section_entry:
|
|
Packit |
b099d7 |
section_node = (sym_section_entry_type *) node_entry;
|
|
Packit |
b099d7 |
switch ( section_node->header.b_type )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case sym_k_section_tail:
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)section_node->next);
|
|
Packit |
b099d7 |
UilDumpSymbolTable ((sym_entry_type *)section_node->entries);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This procedure dumps the symbol table.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbol table is dump with the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_symbols( void )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
int ndx;
|
|
Packit |
b099d7 |
sym_entry_type *cur_entry;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
* Loop over all entries which have been allocated. They are in
|
|
Packit |
b099d7 |
* allocation order (this will include deleted entries).
|
|
Packit |
b099d7 |
*/
|
|
Packit |
b099d7 |
_debug_output( "\nSymbol Table Dump: \n\n" );
|
|
Packit |
b099d7 |
for ( ndx=0 ; ndx
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
cur_entry = (sym_entry_type *) UrmPlistPtrN (sym_az_allocated_nodes, ndx);
|
|
Packit |
b099d7 |
sym_dump_symbol (cur_entry);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
_debug_output ("\n\n");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This procedure dumps a symbol node.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_symbol_entry symbol node to be dumped
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbol is dumped to the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_symbol (sym_entry_type *az_symbol_entry)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (az_symbol_entry->header.b_tag) {
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_name_entry:
|
|
Packit |
b099d7 |
sym_dump_name((sym_name_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_module_entry:
|
|
Packit |
b099d7 |
sym_dump_module((sym_module_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_value_entry:
|
|
Packit |
b099d7 |
sym_dump_value((sym_value_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_widget_entry:
|
|
Packit |
b099d7 |
case sym_k_gadget_entry:
|
|
Packit |
b099d7 |
case sym_k_child_entry:
|
|
Packit |
b099d7 |
sym_dump_widget((sym_widget_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_forward_ref_entry:
|
|
Packit |
b099d7 |
sym_dump_forward_ref((sym_forward_ref_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_external_def_entry:
|
|
Packit |
b099d7 |
sym_dump_external_def((sym_external_def_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_proc_def_entry:
|
|
Packit |
b099d7 |
sym_dump_proc_def((sym_proc_def_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_proc_ref_entry:
|
|
Packit |
b099d7 |
sym_dump_proc_ref((sym_proc_ref_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_control_entry:
|
|
Packit |
b099d7 |
sym_dump_control((sym_control_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_argument_entry:
|
|
Packit |
b099d7 |
sym_dump_argument((sym_argument_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_callback_entry:
|
|
Packit |
b099d7 |
sym_dump_callback((sym_callback_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_list_entry:
|
|
Packit |
b099d7 |
sym_dump_list((sym_list_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_color_item_entry:
|
|
Packit |
b099d7 |
sym_dump_color_item((sym_color_item_entry_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_parent_list_entry:
|
|
Packit |
b099d7 |
sym_dump_parent_list_item((sym_parent_list_type *) az_symbol_entry );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_include_file_entry:
|
|
Packit |
b099d7 |
sym_dump_include_file ((sym_include_file_entry_type *)az_symbol_entry);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_section_entry:
|
|
Packit |
b099d7 |
sym_dump_section ((sym_section_entry_type *)az_symbol_entry);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_def_obj_entry:
|
|
Packit |
b099d7 |
sym_dump_object_variant ((sym_def_obj_entry_type *)az_symbol_entry);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_root_entry:
|
|
Packit |
b099d7 |
sym_dump_root_entry ((sym_root_entry_type *)az_symbol_entry);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int *l_array;
|
|
Packit |
b099d7 |
int i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output("%x unknown type: %d size: %d byte: %x\n",
|
|
Packit |
b099d7 |
az_symbol_entry,
|
|
Packit |
b099d7 |
az_symbol_entry->header.b_tag,
|
|
Packit |
b099d7 |
az_symbol_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_symbol_entry->header.b_type );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
l_array = (int *) az_symbol_entry->b_value;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i=0; i<(int)(az_symbol_entry->header.w_node_size-1); i++)
|
|
Packit |
b099d7 |
_debug_output( "\t%x", l_array[ i ] );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output("\n");
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_source_info(( sym_entry_header_type *)az_symbol_entry);
|
|
Packit |
b099d7 |
_debug_output("\n");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps an object entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_widget_entry pointer to the object
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the object appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_widget( XmConst sym_widget_entry_type *az_widget_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_widget_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output (
|
|
Packit |
b099d7 |
" %s %s controls: %x callbacks: %x arguments: %x parent_list: %x\n",
|
|
Packit |
b099d7 |
diag_object_text( az_widget_entry->header.b_type),
|
|
Packit |
b099d7 |
diag_tag_text( az_widget_entry->header.b_tag ),
|
|
Packit |
b099d7 |
az_widget_entry->az_controls,
|
|
Packit |
b099d7 |
az_widget_entry->az_callbacks,
|
|
Packit |
b099d7 |
az_widget_entry->az_arguments,
|
|
Packit |
b099d7 |
az_widget_entry->parent_list);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_widget_entry->az_create_proc != NULL) {
|
|
Packit |
b099d7 |
_debug_output (" create proc: %x\n",
|
|
Packit |
b099d7 |
az_widget_entry->az_create_proc);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
/* preserve comments */
|
|
Packit |
b099d7 |
_debug_output ("\n Comment: %s\n", az_widget_entry->obj_header.az_comment);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps an argument entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_argument_entry pointer to the argument
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_argument( XmConst sym_argument_entry_type *az_argument_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_argument_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ( " arg name: %x arg value: %x\n",
|
|
Packit |
b099d7 |
az_argument_entry->az_arg_name,
|
|
Packit |
b099d7 |
az_argument_entry->az_arg_value );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a control entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_control_entry pointer to the control
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_control( XmConst sym_control_entry_type *az_control_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_control_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* These are for control objects only. */
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_control_entry->obj_header.b_flags & sym_m_def_in_progress) {
|
|
Packit |
b099d7 |
_debug_output (" def in progress");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_control_entry->obj_header.b_flags & sym_m_managed) {
|
|
Packit |
b099d7 |
_debug_output (" managed");
|
|
Packit |
b099d7 |
} else {
|
|
Packit |
b099d7 |
_debug_output (" unmanaged");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ( " obj: %x\n",
|
|
Packit |
b099d7 |
az_control_entry->az_con_obj );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a callback entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_callback_entry pointer to the callback
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_callback( XmConst sym_callback_entry_type *az_callback_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_callback_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ( " reason name: %x proc ref: %x proc ref list: %x\n",
|
|
Packit |
b099d7 |
az_callback_entry->az_call_reason_name,
|
|
Packit |
b099d7 |
az_callback_entry->az_call_proc_ref,
|
|
Packit |
b099d7 |
az_callback_entry->az_call_proc_ref_list );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a list entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_list_entry pointer to the list
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_list( XmConst sym_list_entry_type *az_list_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_list_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ( " type: %s count: %d gadget count: %d\n",
|
|
Packit |
b099d7 |
diag_tag_text( az_list_entry->header.b_type),
|
|
Packit |
b099d7 |
az_list_entry->w_count,
|
|
Packit |
b099d7 |
az_list_entry->w_gadget_count );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* preserve comments */
|
|
Packit |
b099d7 |
_debug_output ("\n Comment: %s\n", az_list_entry->obj_header.az_comment);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a name entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_name_entry pointer to the name
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_name( XmConst sym_name_entry_type *az_name_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x name size: %d next name: %x object: %x",
|
|
Packit |
b099d7 |
az_name_entry,
|
|
Packit |
b099d7 |
az_name_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_name_entry->az_next_name_entry,
|
|
Packit |
b099d7 |
az_name_entry->az_object );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_name_entry->b_flags & sym_m_referenced) {
|
|
Packit |
b099d7 |
_debug_output (" referenced");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( " name: %s \n", az_name_entry->c_text );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a module entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_module_entry pointer to the module
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the module appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_module( XmConst sym_module_entry_type *az_module_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x module size: %d name: %x version: %x \n",
|
|
Packit |
b099d7 |
az_module_entry,
|
|
Packit |
b099d7 |
az_module_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_module_entry->obj_header.az_name,
|
|
Packit |
b099d7 |
az_module_entry->az_version );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* preserve comments */
|
|
Packit |
b099d7 |
_debug_output ("\n Comment: %s\n", az_module_entry->obj_header.az_comment);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a color item entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_color_item_entry pointer to the color_item
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the color item appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_color_item( XmConst sym_color_item_entry_type *az_color_item_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x color_item size: %d letter: %c index: %d color: %x next: %x\n",
|
|
Packit |
b099d7 |
az_color_item_entry,
|
|
Packit |
b099d7 |
az_color_item_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_color_item_entry->b_letter,
|
|
Packit |
b099d7 |
az_color_item_entry->b_index,
|
|
Packit |
b099d7 |
az_color_item_entry->az_color,
|
|
Packit |
b099d7 |
az_color_item_entry->az_next );
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a parent_list entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_parent_list_item pointer to the parent list entry
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_parent_list_item ( XmConst sym_parent_list_type *az_parent_list_item )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x parent_list size: %d parent: %x next: %x \n",
|
|
Packit |
b099d7 |
az_parent_list_item,
|
|
Packit |
b099d7 |
az_parent_list_item->header.w_node_size,
|
|
Packit |
b099d7 |
az_parent_list_item->parent,
|
|
Packit |
b099d7 |
az_parent_list_item->next);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps an external definition entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_external_def_entry pointer to the external definition
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_external_def(
|
|
Packit |
b099d7 |
XmConst sym_external_def_entry_type *az_external_def_entry)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x external def size: %d next external: %x object: %x \n",
|
|
Packit |
b099d7 |
az_external_def_entry,
|
|
Packit |
b099d7 |
az_external_def_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_external_def_entry->az_next_object,
|
|
Packit |
b099d7 |
az_external_def_entry->az_name );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a procedure definition entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_proc_def_entry pointer to the procedure definition
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the procedure definition appears as
|
|
Packit |
b099d7 |
** part of the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_proc_def( XmConst sym_proc_def_entry_type *az_proc_def_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
char *private_flag;
|
|
Packit |
b099d7 |
char *imported_flag;
|
|
Packit |
b099d7 |
char *exported_flag;
|
|
Packit |
b099d7 |
char *checking_flag;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
private_flag = "";
|
|
Packit |
b099d7 |
imported_flag = "";
|
|
Packit |
b099d7 |
exported_flag = "";
|
|
Packit |
b099d7 |
checking_flag = " no-check";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_proc_def_entry->v_arg_checking)
|
|
Packit |
b099d7 |
checking_flag = " check";
|
|
Packit |
b099d7 |
if (az_proc_def_entry->obj_header.b_flags & sym_m_private)
|
|
Packit |
b099d7 |
private_flag = " private";
|
|
Packit |
b099d7 |
if (az_proc_def_entry->obj_header.b_flags & sym_m_exported)
|
|
Packit |
b099d7 |
exported_flag = " exported";
|
|
Packit |
b099d7 |
if (az_proc_def_entry->obj_header.b_flags & sym_m_imported)
|
|
Packit |
b099d7 |
imported_flag = " imported";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x proc def size: %d name: %x %s%s%s%s count: %d %s\n",
|
|
Packit |
b099d7 |
az_proc_def_entry,
|
|
Packit |
b099d7 |
az_proc_def_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_proc_def_entry->obj_header.az_name,
|
|
Packit |
b099d7 |
checking_flag,
|
|
Packit |
b099d7 |
private_flag,
|
|
Packit |
b099d7 |
exported_flag,
|
|
Packit |
b099d7 |
imported_flag,
|
|
Packit |
b099d7 |
az_proc_def_entry->b_arg_count,
|
|
Packit |
b099d7 |
diag_value_text( az_proc_def_entry->b_arg_type ) );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* preserve comments */
|
|
Packit |
b099d7 |
_debug_output ("\nComment: %s\n",az_proc_def_entry->obj_header.az_comment);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a procedure reference entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_proc_ref_entry pointer to the procedure reference entry
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the procedure reference appears as
|
|
Packit |
b099d7 |
** part of the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_proc_ref( XmConst sym_proc_ref_entry_type *az_proc_ref_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
sym_dump_obj_header ((sym_obj_entry_type *)az_proc_ref_entry);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x proc ref size: %d proc def: %x value: %x\n",
|
|
Packit |
b099d7 |
az_proc_ref_entry,
|
|
Packit |
b099d7 |
az_proc_ref_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_proc_ref_entry->az_proc_def,
|
|
Packit |
b099d7 |
az_proc_ref_entry->az_arg_value );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps an forward reference entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_forward_ref_entry pointer to the forward reference
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the name appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_forward_ref(XmConst sym_forward_ref_entry_type *az_forward_ref_entry)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x forward ref size: %d next ref: %x location: %x %s parent: %x\n",
|
|
Packit |
b099d7 |
az_forward_ref_entry,
|
|
Packit |
b099d7 |
az_forward_ref_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_forward_ref_entry->az_next_ref,
|
|
Packit |
b099d7 |
az_forward_ref_entry->a_update_location,
|
|
Packit |
b099d7 |
diag_object_text( az_forward_ref_entry->header.b_type ),
|
|
Packit |
b099d7 |
az_forward_ref_entry->parent );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( " name: %x %s\n",
|
|
Packit |
b099d7 |
az_forward_ref_entry->az_name,
|
|
Packit |
b099d7 |
az_forward_ref_entry->az_name->c_text );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function dumps a value entry in the symbol table
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** az_value_entry pointer to the value
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** symbolic representation of the value appears as part of the
|
|
Packit |
b099d7 |
** debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_value( XmConst sym_value_entry_type *az_value_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
char *private_flag;
|
|
Packit |
b099d7 |
char *imported_flag;
|
|
Packit |
b099d7 |
char *exported_flag;
|
|
Packit |
b099d7 |
char *builtin_flag;
|
|
Packit |
b099d7 |
char *special_type, *table_type;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
private_flag = "";
|
|
Packit |
b099d7 |
imported_flag = "";
|
|
Packit |
b099d7 |
exported_flag = "";
|
|
Packit |
b099d7 |
builtin_flag = "";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_builtin)
|
|
Packit |
b099d7 |
builtin_flag = " builtin";
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_private)
|
|
Packit |
b099d7 |
private_flag = " private";
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_exported)
|
|
Packit |
b099d7 |
exported_flag = " exported";
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_imported)
|
|
Packit |
b099d7 |
imported_flag = " imported";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x value size: %d name: %x %s%s%s%s",
|
|
Packit |
b099d7 |
az_value_entry,
|
|
Packit |
b099d7 |
az_value_entry->header.w_node_size,
|
|
Packit |
b099d7 |
az_value_entry->obj_header.az_name,
|
|
Packit |
b099d7 |
builtin_flag, private_flag, exported_flag, imported_flag );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_imported)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_debug_output( " %s \n", diag_value_text( az_value_entry->b_type ));
|
|
Packit |
b099d7 |
return;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (az_value_entry->b_type)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case sym_k_integer_value:
|
|
Packit |
b099d7 |
case sym_k_horizontal_integer_value:
|
|
Packit |
b099d7 |
case sym_k_vertical_integer_value:
|
|
Packit |
b099d7 |
_debug_output(" integer: %ld \n",
|
|
Packit |
b099d7 |
az_value_entry->value.l_integer );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_bool_value:
|
|
Packit |
b099d7 |
_debug_output(" boolean: %ld \n",
|
|
Packit |
b099d7 |
az_value_entry->value.l_integer );
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_float_value:
|
|
Packit |
b099d7 |
case sym_k_horizontal_float_value:
|
|
Packit |
b099d7 |
case sym_k_vertical_float_value:
|
|
Packit |
b099d7 |
_debug_output(" double: %g \n",
|
|
Packit |
b099d7 |
az_value_entry->value.d_real);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_color_value:
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
char *ptr;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
switch (az_value_entry->b_arg_type)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case sym_k_background_color:
|
|
Packit |
b099d7 |
ptr = "background";
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_foreground_color:
|
|
Packit |
b099d7 |
ptr = "foreground";
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case sym_k_unspecified_color:
|
|
Packit |
b099d7 |
ptr = "unspecified";
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
ptr = "illegal";
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output(" color type: %s", ptr );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
output_text( az_value_entry->w_length,
|
|
Packit |
b099d7 |
az_value_entry->value.c_value);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_reason_value:
|
|
Packit |
b099d7 |
special_type = "reason";
|
|
Packit |
b099d7 |
goto common_special_type;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_argument_value:
|
|
Packit |
b099d7 |
special_type = "argument";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
common_special_type:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output(" %s", special_type );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_value_entry->obj_header.b_flags & sym_m_builtin)
|
|
Packit |
b099d7 |
_debug_output(" code: %ld \n", az_value_entry->value.l_integer );
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
output_text( az_value_entry->w_length,
|
|
Packit |
b099d7 |
az_value_entry->value.c_value);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_compound_string_value:
|
|
Packit |
b099d7 |
_debug_output(" compound string\n first component: %x\n",
|
|
Packit |
b099d7 |
az_value_entry->az_first_table_value );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( (az_value_entry->b_aux_flags & sym_m_table_entry) != 0 ) {
|
|
Packit |
b099d7 |
_debug_output(" next table entry: %x",
|
|
Packit |
b099d7 |
az_value_entry->az_next_table_value);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_font_value:
|
|
Packit |
b099d7 |
case sym_k_fontset_value:
|
|
Packit |
b099d7 |
if (az_value_entry->b_charset != sym_k_userdefined_charset)
|
|
Packit |
b099d7 |
_debug_output(" font charset: %s",
|
|
Packit |
b099d7 |
diag_charset_text( az_value_entry->b_charset ) );
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
_debug_output(" font charset: userdefined(%x)",
|
|
Packit |
b099d7 |
diag_charset_text( (long)az_value_entry->az_charset_value ) );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
goto check_for_table_value;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_char_8_value:
|
|
Packit |
b099d7 |
case sym_k_localized_string_value:
|
|
Packit |
b099d7 |
if (az_value_entry->b_charset != sym_k_userdefined_charset)
|
|
Packit |
b099d7 |
switch ( az_value_entry->b_direction )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case XmSTRING_DIRECTION_L_TO_R:
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
(" string length: %d\n charset: %s L_TO_R",
|
|
Packit |
b099d7 |
az_value_entry->w_length,
|
|
Packit |
b099d7 |
diag_charset_text(
|
|
Packit |
b099d7 |
az_value_entry->b_charset ));
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case XmSTRING_DIRECTION_R_TO_L:
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
(" string length: %d\n charset: %s R_TO_L",
|
|
Packit |
b099d7 |
az_value_entry->w_length,
|
|
Packit |
b099d7 |
diag_charset_text(
|
|
Packit |
b099d7 |
az_value_entry->b_charset ));
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
switch ( az_value_entry->b_direction )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case XmSTRING_DIRECTION_L_TO_R:
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
(" string length: %d\n charset: userdefined(%x) L_TO_R",
|
|
Packit |
b099d7 |
az_value_entry->w_length,
|
|
Packit |
b099d7 |
az_value_entry->az_charset_value);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
case XmSTRING_DIRECTION_R_TO_L:
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
(" string length: %d\n charset: userdefined(%x) R_TO_L",
|
|
Packit |
b099d7 |
az_value_entry->w_length,
|
|
Packit |
b099d7 |
az_value_entry->az_charset_value);
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* See if this is an entry in a table. */
|
|
Packit |
b099d7 |
check_for_table_value:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if ( (az_value_entry->b_aux_flags & sym_m_table_entry) != 0 ) {
|
|
Packit |
b099d7 |
_debug_output(" next table entry: %x",
|
|
Packit |
b099d7 |
az_value_entry->az_next_table_value);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
output_text
|
|
Packit |
b099d7 |
( az_value_entry->w_length, az_value_entry->value.c_value );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_identifier_value:
|
|
Packit |
b099d7 |
_debug_output(" identifier: %s", az_value_entry->value.c_value );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_icon_value:
|
|
Packit |
b099d7 |
_debug_output(" icon width: %d height: %d colors: %x rows: %x \n",
|
|
Packit |
b099d7 |
az_value_entry->value.z_icon->w_width,
|
|
Packit |
b099d7 |
az_value_entry->value.z_icon->w_height,
|
|
Packit |
b099d7 |
az_value_entry->value.z_icon->az_color_table,
|
|
Packit |
b099d7 |
az_value_entry->value.z_icon->az_rows );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_string_table_value:
|
|
Packit |
b099d7 |
table_type = "string table";
|
|
Packit |
b099d7 |
goto common_table;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_font_table_value:
|
|
Packit |
b099d7 |
table_type = "font table";
|
|
Packit |
b099d7 |
goto common_table;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_trans_table_value:
|
|
Packit |
b099d7 |
table_type = "translation table";
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
common_table:
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output(" %s first table entry: %x\n",
|
|
Packit |
b099d7 |
table_type, az_value_entry->az_first_table_value);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_color_table_value:
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int index;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output(" color_table count: %d max_index: %d \n",
|
|
Packit |
b099d7 |
az_value_entry->b_table_count,
|
|
Packit |
b099d7 |
az_value_entry->b_max_index );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (index = 0; index < (int)az_value_entry->b_table_count; index++)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output( " letter: %c index: %d color: %x\n",
|
|
Packit |
b099d7 |
az_value_entry->value.z_color[index].b_letter,
|
|
Packit |
b099d7 |
az_value_entry->value.z_color[index].b_index,
|
|
Packit |
b099d7 |
az_value_entry->value.z_color[index].az_color );
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
case sym_k_error_value:
|
|
Packit |
b099d7 |
_debug_output(" error \n");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
break;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
_debug_output(" unknown type: %d \n", az_value_entry->b_type );
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/* preserve comments */
|
|
Packit |
b099d7 |
_debug_output ("\nComment: %s\n",az_value_entry->obj_header.az_comment);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This function will output an arbitrarily long amount of text
|
|
Packit |
b099d7 |
** with the debug output.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** length length of the text
|
|
Packit |
b099d7 |
** text pointer to the text
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** none
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FUNCTION VALUE:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** void
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** text is placed in the debug output
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
output_text(XmConst int length, XmConst char *text)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
char c_buffer[ 71 ];
|
|
Packit |
b099d7 |
XmConst char *c_ptr;
|
|
Packit |
b099d7 |
int l_length;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
l_length = length;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output( "\n" );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (c_ptr = text;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
l_length > 0;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
l_length -= 70,
|
|
Packit |
b099d7 |
c_ptr += 70)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
int last;
|
|
Packit |
b099d7 |
int i;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
last = ( l_length > 70)? 70: l_length;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_move( c_buffer, c_ptr, last );
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
for (i=0; i
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
if (iscntrl( c_buffer[ i ] ))
|
|
Packit |
b099d7 |
c_buffer[ i ] = '.';
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
c_buffer[ last ] = 0;
|
|
Packit |
b099d7 |
_debug_output( " \"%s\"\n", c_buffer );
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This procedure dumps the source information in the header of symbol
|
|
Packit |
b099d7 |
** entries.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_source_info (sym_entry_header_type *hdr)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
src_source_record_type *src_rec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
src_rec = hdr->az_src_rec;
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (src_rec != NULL)
|
|
Packit |
b099d7 |
_debug_output (" Source position: file %d, line %d, columns %d through %d\n",
|
|
Packit |
b099d7 |
src_rec->b_file_number,
|
|
Packit |
b099d7 |
src_rec->w_line_number,
|
|
Packit |
b099d7 |
hdr->b_src_pos,
|
|
Packit |
b099d7 |
hdr->b_end_pos);
|
|
Packit |
b099d7 |
else
|
|
Packit |
b099d7 |
_debug_output (" Src source record not present.\n");
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
/*
|
|
Packit |
b099d7 |
**++
|
|
Packit |
b099d7 |
** FUNCTIONAL DESCRIPTION:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** This procedure dumps the common header of "object" entries.
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** FORMAL PARAMETERS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT INPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** IMPLICIT OUTPUTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
** SIDE EFFECTS:
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**
|
|
Packit |
b099d7 |
**--
|
|
Packit |
b099d7 |
**/
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_obj_header (XmConst sym_obj_entry_type *az_obj_entry)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output
|
|
Packit |
b099d7 |
( "%x %s size: %d \n",
|
|
Packit |
b099d7 |
az_obj_entry,
|
|
Packit |
b099d7 |
diag_tag_text (az_obj_entry->header.b_tag),
|
|
Packit |
b099d7 |
az_obj_entry->header.w_node_size);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.az_name != NULL) {
|
|
Packit |
b099d7 |
_debug_output (" name: %x", az_obj_entry->obj_header.az_name);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.az_reference != NULL) {
|
|
Packit |
b099d7 |
_debug_output (" reference: %x",
|
|
Packit |
b099d7 |
az_obj_entry->obj_header.az_reference);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.az_next != NULL) {
|
|
Packit |
b099d7 |
_debug_output (" next: %x", az_obj_entry->obj_header.az_next);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.b_flags & sym_m_private) {
|
|
Packit |
b099d7 |
_debug_output (" private");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.b_flags & sym_m_exported) {
|
|
Packit |
b099d7 |
_debug_output (" exported");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
if (az_obj_entry->obj_header.b_flags & sym_m_imported) {
|
|
Packit |
b099d7 |
_debug_output (" imported");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ("\n");
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_include_file ( sym_include_file_entry_type *az_symbol_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
_debug_output ("%x include file file name: %s full file name: %s\n",
|
|
Packit |
b099d7 |
az_symbol_entry,
|
|
Packit |
b099d7 |
az_symbol_entry->file_name, az_symbol_entry->full_file_name);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_section ( sym_section_entry_type *az_symbol_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_debug_output ("%x %s section prev section : %x next section: %x entries: %x\n",
|
|
Packit |
b099d7 |
az_symbol_entry,
|
|
Packit |
b099d7 |
sym_section_text(az_symbol_entry->header.b_type),
|
|
Packit |
b099d7 |
az_symbol_entry->prev_section, az_symbol_entry->next,
|
|
Packit |
b099d7 |
az_symbol_entry->entries);
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_object_variant ( sym_def_obj_entry_type * az_symbol_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_debug_output ("%x default obj var next: %x object info: %d, variant_info: %d\n",
|
|
Packit |
b099d7 |
az_symbol_entry,
|
|
Packit |
b099d7 |
az_symbol_entry->next, az_symbol_entry->b_object_info,
|
|
Packit |
b099d7 |
az_symbol_entry->b_variant_info);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
void
|
|
Packit |
b099d7 |
sym_dump_root_entry ( sym_root_entry_type *az_symbol_entry )
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
_debug_output ( "%x root tag: %d module: %x sections: %x\n module tail: ",
|
|
Packit |
b099d7 |
az_symbol_entry,
|
|
Packit |
b099d7 |
az_symbol_entry->header.b_tag,
|
|
Packit |
b099d7 |
az_symbol_entry->module_hdr,
|
|
Packit |
b099d7 |
az_symbol_entry->sections);
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
char *
|
|
Packit |
b099d7 |
sym_section_text (int b_type)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
switch (b_type)
|
|
Packit |
b099d7 |
{
|
|
Packit |
b099d7 |
case 0:
|
|
Packit |
b099d7 |
return "";
|
|
Packit |
b099d7 |
case sym_k_list_section:
|
|
Packit |
b099d7 |
return "list";
|
|
Packit |
b099d7 |
case sym_k_procedure_section:
|
|
Packit |
b099d7 |
return "procedure";
|
|
Packit |
b099d7 |
case sym_k_value_section:
|
|
Packit |
b099d7 |
return "value";
|
|
Packit |
b099d7 |
case sym_k_identifier_section:
|
|
Packit |
b099d7 |
return "identifier";
|
|
Packit |
b099d7 |
case sym_k_object_section:
|
|
Packit |
b099d7 |
return "object";
|
|
Packit |
b099d7 |
case sym_k_include_section:
|
|
Packit |
b099d7 |
return "include";
|
|
Packit |
b099d7 |
case sym_k_section_tail:
|
|
Packit |
b099d7 |
return "tail";
|
|
Packit |
b099d7 |
default:
|
|
Packit |
b099d7 |
return "*unknown*";
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
}
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|
|
Packit |
b099d7 |
|