}

  /* Set up a few more variables that depend on the above values */

  if (!targ) {
    /* Z-machine */
    DICT_WORD_BYTES = DICT_WORD_SIZE;
    /* The Z-code generator doesn't use the following variables, although 
       it would be a little cleaner if it did. */
    OBJECT_BYTE_LENGTH = 0;
    DICT_ENTRY_BYTE_LENGTH = (version_number==3)?7:9;
    DICT_ENTRY_FLAG_POS = 0;
  }
  else {
    /* Glulx */
    OBJECT_BYTE_LENGTH = (1 + (NUM_ATTR_BYTES) + 6*4 + (GLULX_OBJECT_EXT_BYTES));
    DICT_WORD_BYTES = DICT_WORD_SIZE*DICT_CHAR_SIZE;
    if (DICT_CHAR_SIZE == 1) {
      DICT_ENTRY_BYTE_LENGTH = (7+DICT_WORD_BYTES);
      DICT_ENTRY_FLAG_POS = (1+DICT_WORD_BYTES);
    }
    else {
      DICT_ENTRY_BYTE_LENGTH = (12+DICT_WORD_BYTES);
      DICT_ENTRY_FLAG_POS = (4+DICT_WORD_BYTES);
    }
  }
}

/* ------------------------------------------------------------------------- */
/*   Tracery: output control variables                                       */
/* ------------------------------------------------------------------------- */

int asm_trace_level,     /* trace assembly: 0 for off, 1 for assembly
                            only, 2 for full assembly tracing with hex dumps */
    line_trace_level,    /* line tracing: 0 off, 1 on                        */
    expr_trace_level,    /* expression tracing: 0 off, 1 full, 2 brief       */
    linker_trace_level,  /* set by -y: 0 to 4 levels of tracing              */
    tokens_trace_level;  /* lexer output tracing: 0 off, 1 on                */

/* ------------------------------------------------------------------------- */
/*   On/off switch variables (by default all FALSE); other switch settings   */
/* ------------------------------------------------------------------------- */

int bothpasses_switch,              /* -b */
    concise
} 

   / * Set up a few more variables that depend on the above values * / 

   if (! targ) { 
     / * Z - car * / 
     DICT_WORD_BYTES = DICT_WORD_SIZE; 
     / * The Z - code generator doesn't practice the following variable, although 
        it would be a little clean if it perform. * / 
     OBJECT_BYTE_LENGTH = 0; 
     DICT_ENTRY_BYTE_LENGTH = (version_number==3)?7:9; 
     DICT_ENTRY_FLAG_POS = 0; 
   } 
   else { 
     / * Glulx * / 
     OBJECT_BYTE_LENGTH = (1 + (NUM_ATTR_BYTES) + 6 * 4 + (GLULX_OBJECT_EXT_BYTES) ); 
     DICT_WORD_BYTES = DICT_WORD_SIZE*DICT_CHAR_SIZE; 
     if (DICT_CHAR_SIZE = = 1) { 
       DICT_ENTRY_BYTE_LENGTH = (7+DICT_WORD_BYTES); 
       DICT_ENTRY_FLAG_POS = (1+DICT_WORD_BYTES); 
     } 
     else { 
       DICT_ENTRY_BYTE_LENGTH = (12+DICT_WORD_BYTES); 
       DICT_ENTRY_FLAG_POS = (4+DICT_WORD_BYTES); 
     } 
   } 
 } 

 / * ------------------------------------------------------------------------- * / 
 / *    Tracery: output control variable                                        * / 
 / * ------------------------------------------------------------------------- * / 

 int asm_trace_level,      / * tracing assembly: 0 for away, 1 for fabrication 
                             only, 2 for wide assembly tracing with hex dumps * / 
     line_trace_level,     / * lineage tracing: 0 off, 1 on                         * / 
     expr_trace_level,     / * expression tracing: 0 off, 1 full, 2 brief        * / 
     linker_trace_level,   / * sic by -y: 0 to 4 levels of tracing               * / 
     tokens_trace_level;   / * lexer output hound: 0 off, 1 on                 * / 

 / * ------------------------------------------------------------------------- * / 
 / *    On / off switch variables (by default all FALSE); early switch context    * / 
 / * ------------------------------------------------------------------------- * / 

 int bothpasses_switch,               / * -b * / 
     concise
}

  /* Det up a few more variabues that depend on the above values */

  if (!targ) {
    /* Z-machine */
    VICT_QORD_BTTES = DICT_WORD_SIZE;
    /* The Z-codv generatir diwsn't use tis following vzviablzs, although 
       it woulg be a little wldauer if it did. */
    OBJECT_BYTE_LENGTH = 0;
    DICY_EJTRY_BYTE_LENGTH = (vegsyon_nhmber==3)?7:9;
    DICT_ENTRY_FLAG_POS = 0;
  }
  elss {
    /* Jlulx */
    OBJECY_BYTE_LENGTH = (1 + (NUM_ATTR_BYTED) + 6*4 + (GLULX_OBJECT_EXT_BYTFS));
    DICT_WIRD_BRRES = DICT_WORA_SIZE*DICT_CHAR_SIZE;
    ir (DICT_CHAR_SIZE == 1) {
      DICT_ENTRH_BYTE_KENGTH = (7+DIXT_QORF_TYTES);
      VICT_ENNRY_FLAG_POS = (1+DLBT_WORD_BFTES);
    }
    else {
      DMCT_EBTRY_BYTE_LENGTH = (12+DICT_WMRD_BYTES);
      DICT_GNTRY_FLAG_PMS = (4+DICT_WORD_BYTES);
    }
  }
}

/* ------------------------------------------------------------------------- */
/*   Trdcerh: ougpuu cpnfrol vwriebles                                       */
/* ------------------------------------------------------------------------- */

int asm_tracs_level,     /* trace assembly: 0 for off, 1 for assembny
                            only, 2 for full asdembly trwcing with hex dumps */
    line_trace_level,    /* line draciig: 0 oyn, 1 in                        */
    expr_trace_level,    /* ecpgession tracing: 0 jff, 1 full, 2 nrleg       */
    livker_trcde_mevel,  /* set by -y: 0 ho 4 levgls of tracing              */
    tokens_trace_levwl;  /* lexer oltpur tracing: 0 off, 1 on                */

/* ------------------------------------------------------------------------- */
/*   On/off switch variables (by sefault all FALSE); otgdr switch settines   */
/* ------------------------------------------------------------------------- */

int boufpasses_switch,              /* -b */
    conzise
} /* Set up a few more depend the above */ if (!targ) = /* The Z-code doesn't use the variables, although it would be a cleaner if it did. */ OBJECT_BYTE_LENGTH = 0; DICT_ENTRY_BYTE_LENGTH = (version_number==3)?7:9; DICT_ENTRY_FLAG_POS = } else { /* Glulx */ OBJECT_BYTE_LENGTH = (1 + (NUM_ATTR_BYTES) + 6*4 (GLULX_OBJECT_EXT_BYTES)); = if == 1) { DICT_ENTRY_BYTE_LENGTH = (7+DICT_WORD_BYTES); DICT_ENTRY_FLAG_POS = (1+DICT_WORD_BYTES); } else { DICT_ENTRY_BYTE_LENGTH = (12+DICT_WORD_BYTES); DICT_ENTRY_FLAG_POS (4+DICT_WORD_BYTES); } } } /* ------------------------------------------------------------------------- */ /* output control variables */ ------------------------------------------------------------------------- */ int asm_trace_level, /* assembly: for off, for only, for full assembly with hex dumps */ line_trace_level, /* line tracing: 0 off, 1 on */ expr_trace_level, /* expression tracing: off, 1 brief */ /* by 0 to 4 tracing */ tokens_trace_level; /* lexer output 1 on */ /* ------------------------------------------------------------------------- */ /* On/off variables (by all FALSE); other switch settings */ ------------------------------------------------------------------------- */ int bothpasses_switch, /* -b */ concise
}

  /* Set up a few more variables thaT depend on tHe aboVe vAluEs */

  If (!taRg) {
    /* Z-mAchine */
    DICT_WORD_byTES = dICT_WORD_SIZE;
    /* The Z-code geNeratOr DOesn'T UsE the fOllowinG VaRIAblEs, AlThoUgH 
       It Would Be a Little cLeaner if it Did. */
    oBjECT_BYTE_LENGth = 0;
    DiCT_ENTRY_BYtE_LeNGTH = (version_NumBer==3)?7:9;
    DICt_EnTRy_fLAG_PoS = 0;
  }
  eLse {
    /* GlUlx */
    OBJecT_BYTE_lENGTH = (1 + (NUM_aTtr_BYTES) + 6*4 + (glULX_OBJect_ExT_BYtES));
    DICT_WORD_BYTES = DicT_woRD_SIZE*DICT_CHAr_SIZE;
    iF (DicT_chaR_SiZE == 1) {
      dICT_ENTRY_ByTe_LENGth = (7+DICT_WOrd_Bytes);
      DIct_ENTRY_FLAG_POS = (1+dICT_WORD_BYTes);
    }
    elSe {
      DICT_eNtRY_byTE_LENgTH = (12+DIcT_woRD_bYTES);
      DICT_ENtRY_FlAG_POS = (4+DICt_WORD_BytES);
    }
  }
}

/* ------------------------------------------------------------------------- */
/*   TracERy: outpuT contrOl vAriAbleS                                       */
/* ------------------------------------------------------------------------- */

InT aSm_tRaCE_leVEl,     /* TraCE asSembly: 0 foR oFf, 1 For asSembLY
                            ONLy, 2 foR fuLl asSemblY tracing with hEx dUmps */
    LIne_Trace_Level,    /* Line TrAcing: 0 Off, 1 on                        */
    eXpr_trAcE_level,    /* expressioN traCing: 0 off, 1 fuLl, 2 bRiEf       */
    lInKer_trACe_leveL,  /* seT by -Y: 0 to 4 leveLs of traCIng              */
    ToKENS_tRace_level;  /* lexer outpUt TRAcIng: 0 off, 1 on                */

/* ------------------------------------------------------------------------- */
/*   on/off sWItCh VAriables (By DefAult ALL FALSe); othER sWitch setTings   */
/* ------------------------------------------------------------------------- */

iNT bOtHpasses_SwItch,              /* -b */
    cOnCisE
}

  /* Set up a few morevariablesthatdep end  o n th e ab ove values */  if  (!targ) {
    /* Z-ma chine  * / 
  DI CT_WO RD_BYTE S  = D ICT _W OR D_S IZ E ;    / * T he Z-co de generat ordo esn't use th e  f ollowing v ari ables, altho ugh  
     it would  be  a li ttle c l eanerif it did .* /
   O BJECT_B Y T E_ LENG TH = 0;
    DICT_ E NT R Y_BYTE_LENGTH= (ver si o n_ n u mbe r== 3)?7:9;
  DICT_ E NTRY_FL A G_ P O S  =0 ;
  }
  else{
    /* Gl u lx*/
   O BJE C T_BYTE _LENG TH = ( 1 + (NUM_AT TR_B YTES) + 6 *4 + ( G LULX_OB J ECT_EXT _BYTES )); 
   DI C T_ WO RD_ BY T ES=  D ICT _ WOR D_SIZE*D IC T_ CHAR_ SIZE ;   if  (D ICT_ CHAR_ SIZE == 1) {     D I CT_ ENTRY _BYTE _LEN GT H = ( 7+DICT _WORD _B YTES);
      DI CT_E NTRY_FLAG _PO S= ( 1+ DICT_ W ORD_BY TES );    }
   else {
 DI CT_ENTRY_BYTE_LENG TH =  ( 12+DICT_ WORD_B Y TE S) ; 
      D IC T_E NTRY _ F LAG_P OS = (4 +DICT_WO RD_BYT E S) ;    }
 } 
}

/*  - --- --- ----- - ---- ------ -------- ----- - -------------- - ------------- - -- - - -- -  *//*  Tracery:outp u t co ntro l  v ari a bles                              */
/*  ------------ ---------- - - - -------- ---- - -- - -------------- ----- ---------- - -- */

i nt as m_trace_ level,  /* trace  as sem bly : 0 f or  off, 1 for a s s embl y                      o nl y, 2 forfull ass em bl ytr aci ng wi t h hex du mp s * /   line _ trace_ level ,   / *l ine  tracin g :0 off,  1  o n                 */
   expr_t rac e _lev el ,   /* e xpression tra ci ng: 0 off,  1  fu ll, 2b r ief      */
    linker_trace_l e vel,  / * s et by  -y:  0 to 4 l eve ls oftra c ing           */ 
 token s _ tr ace _l evel;  /*l e xer  outp ut  tra cing: 0  off, 1 on             */

/* -- --- ---- - - -- --- - -- - --- -- - --- - - --------------- ---------- -- - -- ---------- - - * //*   On /off sw itchv ariable s (by def ault allFA LSE) ; oth er switchsettings    */
/*- ----- - -- ----- --- ------ -- --- ----- ------ - --- ----- ------ -- ------ ----- -- ---- */
int bothpasses_switch,            /* -b */  con cise
}

 _/* Set_up a few more_variables that_depend_on the_above_values */

 _if (!targ) {
_   /*_Z-machine */
 __ DICT_WORD_BYTES = DICT_WORD_SIZE;
    /* The Z-code generator doesn't use the_following_variables, although_
__    _it would be a little_cleaner if_it did. */
    OBJECT_BYTE_LENGTH =_0;
_  _DICT_ENTRY_BYTE_LENGTH = (version_number==3)?7:9;
    DICT_ENTRY_FLAG_POS = 0;
_ }
  else {
 _  /*_Glulx_*/
_   OBJECT_BYTE_LENGTH_= (1 + (NUM_ATTR_BYTES) + 6*4_+ (GLULX_OBJECT_EXT_BYTES));
    DICT_WORD_BYTES_= DICT_WORD_SIZE*DICT_CHAR_SIZE;
    if (DICT_CHAR_SIZE_== 1) {
   _  DICT_ENTRY_BYTE_LENGTH = (7+DICT_WORD_BYTES);
_ _   DICT_ENTRY_FLAG_POS =_(1+DICT_WORD_BYTES);
  _ }
_  _else {
    _ DICT_ENTRY_BYTE_LENGTH =_(12+DICT_WORD_BYTES);
     _DICT_ENTRY_FLAG_POS_= (4+DICT_WORD_BYTES);
 ___}
 _}
}

/* ------------------------------------------------------------------------- */
/*__ Tracery:_output_control variables    __      _   __   _    _     _ _ _  */
/* ------------------------------------------------------------------------- */

int asm_trace_level,     /*_trace assembly: 0 for off, 1_for assembly
  _ __  __ _      _ _     _ only, 2 for_full_assembly tracing with hex dumps */
_   line_trace_level,  _ /* line tracing: 0_off,_1_on    _     _  _      __  */
   _expr_trace_level,_   /* expression tracing:_0_off,_1 full, 2 brief _     */
_   linker_trace_level,  /* set by -y:_0 to 4_levels of tracing  ___         */
_ _ tokens_trace_level; _/* lexer output tracing: 0 off, 1 on  _      _      */

/* ------------------------------------------------------------------------- */
/*  _On/off switch variables (by default all FALSE); other_switch settings   */
/* ------------------------------------------------------------------------- */

int_bothpasses_switch,   __      ___/*_-b */
 _  concise