/* NAME = glba.h */
/************************************************************/
/*    glba.h: Variables globales                            */
/*        Version du 18-02-2001 (6.1) (Michel BRET)         */
/************************************************************/

#include "defa.h"

/* Interruption */
jmp_buf Env;

/* Caractere d'escape: ESC=27 `=96 */
long A_Escape;

/* Prog = 0(interpreteur),  > 0: anyflo (1: Normal, 2: Animer, 3: Interaction) */
long Prog;
/* NID = numero de lancement (gere plusieurs executables) */
long NID;
/* Machine = SGI PC */
long Type_Machine;
/* Nom de la machine */
char Nom_Machine[80];

/* Applic = 0(interpreteur), 1(anyflo), 2(demo), 10(application) */
long Applic;

/* Sem_start: 0, 1, ... */
long Sem_start, Cc0, Cc;

/* Description des environnements */
long Nb_env;
struct Environnement Penv[NB_ENV];

/* Table des [oui non] */
long *Sem0;

/* Compilation */
long Sem_comp, Sem_link, Sem_locale, Num_fonc;
struct Objet *P_mac0;
long N_l;

/* Buffer de lecture */
char Buf_0[80], Buf_1[80], Buf_2[80];    /* Cadres */

/* Pile des debug */
long *P_debug, *P_stop, Debug, Go, Sem_del;

/*??? Buffer de lecture: Non utilise */
long Dim_buf;

/* Pile des indefinis */
long Dim_Tab;

/* Pile des variables locales */
long Dim_loc;
struct Objet *Pile_loc, *P_loc, *Fin_loc;

/* Pile des evaluations */
long Dim_ev;
long *Pile_ev, *P_ev, *Fin_ev, *P_res;

/* Pile des macros */
long Dim_mac;
long *Pile_mac, *P_mac, *Fin_mac;
long Sem_fonc;

/* Pile des objets */
long Dim_obj;
struct Objet *Pile_obj, *Fin_obj, *P_obj;
long Nb_bloc;

/* Objet locale en execution */
struct Objet *P_obj_locale;

/* Pile des commandes */
long Dim_com;
long *Pile_com, *P_com, *Fin_com;

/* Tempo: Frequence de clock */
long Tempo;

/* Dimensions du terminal */
long Nb_colonne;
long Nb_ligne;

/* Precision de l'operateur ~ */
float *Precision;

/* Objet NIL */
long P_nil[DIM_TETE];

/* P_define -> table des define globaux */
long *P_define;

/* Pointeurs de debuging */
long *L1, *L2;
float *F1, *F2;
float M[4][4];
struct Objet *PO;

char Status[256];

/* lan="f1 f2" */
char *P_lance1, *P_lance2;
long Cpt_lance;

/* Debug [cm]alloc */
/* --------------- */
long *Pile_alloc;
long *P_alloc, *Fin_alloc;
long Sem_alloc;

/* END */

