00001 00002 typedef unsigned char symbol; 00003 00004 /* Or replace 'char' above with 'short' for 16 bit characters. 00005 00006 More precisely, replace 'char' with whatever type guarantees the 00007 character width you need. Note however that sizeof(symbol) should divide 00008 HEAD, defined in header.h as 2*sizeof(int), without remainder, otherwise 00009 there is an alignment problem. In the unlikely event of a problem here, 00010 consult Martin Porter. 00011 00012 */ 00013 00014 struct SN_env { 00015 symbol * p; 00016 int c; int l; int lb; int bra; int ket; 00017 symbol * * S; 00018 int * I; 00019 unsigned char * B; 00020 }; 00021 00022 extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size); 00023 extern void SN_close_env(struct SN_env * z, int S_size); 00024 00025 extern int SN_set_current(struct SN_env * z, int size, const symbol * s); 00026