compile insert debugger_fetch_equates
/*
   Author   : Meester C
   Date     : 15 October 2008
   Purpose  : Constants for use with the Debugger_Fetch() 
              stored procedure
              
   Comments
   ========
   
   
   Amended  Date       Reason
   =======  ====       ======
   Mr C     24 Jun 21  Updated for v10
   
*/
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _DEBUGGER_FETCH_EQUATES_
#define _DEBUGGER_FETCH_EQUATES_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   equ COMMON_SIZEOF$                to 256 ; * // Size of a blank common
                                              * // block - 256 descriptors
                                              * // 
       
                                              * // defined in rev_call.c
                                                // Descriptor types 
   // typedef enum {
   //  E_LINK       = 0, // indirect pointer, code assumes this is zero
   //  E_UNASSIGNED = 1,
   //  E_STRING     = 2,
   //  E_DIM_ARRAY  = 3, // array dope
   //  E_IDISPATCH  = 4, // OLE automation object
   //  E_PTR        = 5, // Generic pointer/handle
   //  E_NUMBER     = 6, // >= E_NUMBER is a number
   //  E_MAPM       = 6,  // pointer to extend precision type
   //  E_NUMBER_64  = 7, // >= E_NUMBER_64 is a 64-bit int or double
   //  E_LONG       = 7, // 64 bit int
   //  E_DOUBLE     = 8  // 64 bit real  
   // } E_TYPE;
   
   equ VAR_TYPE_LINK                to 0
   equ VAR_TYPE_UNASSIGNED$         to 1
   equ VAR_TYPE_STRING$             to 2
   equ VAR_TYPE_DIM_ARRAY$          to 3
   equ VAR_TYPE_IDISPATCH$          to 4 ; * // OLE object
   equ VAR_TYPE_PTR$                to 5 ; * // Pointer type
   equ VAR_TYPE_MAPM$               to 6 ; * // MAPM (extended precision) type.
   equ VAR_TYPE_LONG$               to 7 ; * // 64 bit int
   equ VAR_TYPE_DOUBLE$             to 8 ; * // 64 bit real
   
   equ VAR_TYPE_NUMBER$             to 6 ; // >= this is a number
   equ VAR_TYPE_NUM64$              to 7 ; // >= this is a 64-bit number (int or double)
   
   equ VAR_TYPE_DESC_LINK$          to "<link>"
   equ VAR_TYPE_DESC_UNASSIGNED$    to "<unassigned>"
   equ VAR_TYPE_DESC_STRING$        to "<string>"
   equ VAR_TYPE_DESC_DIM_ARRAY$     to "<array>"
   equ VAR_TYPE_DESC_IDISPATCH$     to "<idispatch>"
   equ VAR_TYPE_DESC_LONG$          to "<integer>"
   equ VAR_TYPE_DESC_DOUBLE$        to "<double>"
   
   equ VAR_TYPE_DESC$               to VAR_TYPE_DESC_LINK$       : "," : |
                                       VAR_TYPE_DESC_UNASSIGNED$ : "," : |
                                       VAR_TYPE_DESC_STRING$     : "," : |
                                       VAR_TYPE_DESC_DIM_ARRAY$  : "," : |
                                       VAR_TYPE_DESC_IDISPATCH$  : "," : |
                                       VAR_TYPE_DESC_LONG$       : "," : |
                                       VAR_TYPE_DESC_DOUBLE$                                       

///////////////////////////////////////////////////////////////////////////////
   
   * // GetBreakFrame() equates - goes without saying if you change these 
   * // you're going to have to change the function itself in rev_call.c
   * //
   * //  <1> Number of local variables in the break frame
   * //  <2> Number of labelled common areas in the break frame
   * //  <3> Number of variables in each labelled common area - there should
   * //      be one value here for each labelled common area
   * //  <4> "0" if no blank common area is associated with the break frame,
   * //      or "256" if there is a common area associated with the break 
   * //      frame
   
   declare function getBreakFrame
   
   equ DBGF_BREAKFRAME_POS_LOCAL$            to 1
   equ DBGF_BREAKFRAME_POS_LCOMM$            to 2
   equ DBGF_BREAKFRAME_POS_LCOMM_VAR$        to 3
   equ DBGF_BREAKFRAME_POS_BCOMM$            to 4
   
   equ DBGF_BREAKFRAME_NULL_BCOMM$           to 0
   equ DBGF_BREAKFRAME_DFLT_BCOMM$           to COMMON_SIZEOF$
   
///////////////////////////////////////////////////////////////////////////////
   
   * // Equates for use with the getBreakVarType and getBreakVarValue
   * // functions (from rev_call.c)
   * //
   * // When accessing variables in the BreakFrame we need to specify the area
   * // where the variable is stored. Local and Common areas are 
   * // straightforward, but for Labelled Commons we need to pass the index
   * // of the common area we are interested adding an offset of 1
   
   declare function getBreakVarType, getBreakVarValue
   
   equ DBGF_BREAKVAR_STORAGE_LOCAL$          to -1
   equ DBGF_BREAKVAR_STORAGE_BCOMM$          to 1
   equ DBGF_BREAKVAR_STORAGE_LCOMM_OFFSET$   to 1
   
///////////////////////////////////////////////////////////////////////////////
   
   equ DBGF_VARSYMTABLE_POS_NAME$            to 1
   equ DBGF_VARSYMTABLE_POS_TYPE$            to 2
   equ DBGF_VARSYMTABLE_POS_INDEX$           to 3
   
   equ DBGF_VARSYMTABLE_TYPE_LOCAL$          to -1
   equ DBGF_VARSYMTABLE_TYPE_BCOMM$          to 1
   equ DBGF_VARSYMTABLE_TYPE_LCOMM$          to 2
   equ DBGF_VARSYMTABLE_TYPE_LCOMM_ID$       to 3  

///////////////////////////////////////////////////////////////////////////////

   * // LOCALLIST equates
   
   equ DBGF_LOCAL_PREFIX$                to "_local_"

   equ DBGF_LOCAL_POS_NAME$              to 1
   equ DBGF_LOCAL_POS_TYPE$              to 2
   equ DBGF_LOCAL_POS_DIM$               to 3             

///////////////////////////////////////////////////////////////////////////////

   * // LCOMMLIST equates

   equ DBGF_LCOMMID_PREFIX$              to "_lcid_"
   equ DBGF_LCOMMVAR_PREFIX$             to "_lcomm_"
   
   equ DBGF_LCOMM_POS_COMMID$            to 1
   equ DBGF_LCOMM_POS_NAME$              to 2
   equ DBGF_LCOMM_POS_TYPE$              to 3
   equ DBGF_LCOMM_POS_DIM$               to 4 
   
///////////////////////////////////////////////////////////////////////////////

   * // COMMLIST equates
   
   equ DBGF_BCOMM_PREFIX$                to "_common_"
   
   equ DBGF_BCOMM_POS_NAME$              to 1
   equ DBGF_BCOMM_POS_TYPE$              to 2
   equ DBGF_BCOMM_POS_DIM$               to 3 
   
///////////////////////////////////////////////////////////////////////////////

   equ DBGF_ETEXT_MISSING_VAR_IDX$       to "No variable index passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_VAR_IDX$       to "Invalid variable index '%P1%' passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_VAR_DIM1$      to "Invalid subscript primary index '%P2%' passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_VAR_DIM2$      to "Invalid subscript secondary index '%P3%' passed to the %S% %M% method"
   equ DBGF_ETEXT_MISSING_LBL_IDX$       to "No common label index passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_LBL_IDX$       to "Invalid common label index '%P1%' passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_LBLVAR_IDX$    to "Invalid labelled common variable index '%P2%' passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_LBLVAR_DIM1$   to "Invalid subscript primary index '%P3%' passed to the %S% %M% method"
   equ DBGF_ETEXT_INVALID_LBLVAR_DIM2$   to "Invalid subscript secondary index '%P4%' passed to the %S% %M% method"
   equ DBGF_ETEXT_NOT_A_DIM_VAR$         to "Non-dimensioned array variable '%P1%' passed to the %S% %M% method"
   equ DBGF_ETEXT_NOT_A_LBL_DIM_VAR$     to "Non-dimensioned labelled common array variable ['%P1%','%P2%'] passed to the %S% %M% method"
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////  
  
