/* Module arrx.h
 * semantic check of the access to arrays
 * including subarrays.
 * array analysis for dot-precision expressions
{*  last modification:  25.11.91  11:15   }
 * Dima 25.11.91 : stdtype moved to optab.h
*/
#define LBOUND  0  /*Don't produce a knot , if zero*/
#define ZLBOUND 2  /*Always produce a knot         */
#define UBOUND  1
typedef struct {
  boolean original    ;
  idptr eltype        ;
  int numdim          ;
  binptr element      ;
  binptr rowptr       ;
  binptr colptr       ;
  binptr rowlb, rowub ;
  binptr collb, colub ;
} tVARBLK ;

#ifdef LINT_ARGS
global int n_dimensions  ( binptr array);
global binptr  ixch      ( binptr inx, binptr subrange);
global binptr  bound     ( binptr p ,int specif);
global binptr  arracc    ( binptr chktyp,binptr root);
global void    stattodyn ( binptr arrid, binptr restyp, binptr type );
global tVARBLK *d_seman  ( binptr root );
#else
global int n_dimensions  ( );
global binptr  ixch         ( );
global binptr  bound     ( );
global binptr  arracc    ( );
global void    stattodyn ( );
global tVARBLK *d_seman  ( );
#endif

#ifndef MACRO_LIMIT
#define MACRO_LIMIT 3
#endif
