| 1 | |
| 2 | typedef unsigned char symbol; |
| 3 | |
| 4 | /* Or replace 'char' above with 'short' for 16 bit characters. |
| 5 | |
| 6 | More precisely, replace 'char' with whatever type guarantees the |
| 7 | character width you need. Note however that sizeof(symbol) should divide |
| 8 | HEAD, defined in header.h as 2*sizeof(int), without remainder, otherwise |
| 9 | there is an alignment problem. In the unlikely event of a problem here, |
| 10 | consult Martin Porter. |
| 11 | |
| 12 | */ |
| 13 | |
| 14 | struct SN_env { |
| 15 | symbol * p; |
| 16 | int c; int l; int lb; int bra; int ket; |
| 17 | symbol * * S; |
| 18 | int * I; |
| 19 | unsigned char * B; |
| 20 | }; |
| 21 | |
| 22 | extern struct SN_env * SN_create_env(int S_size, int I_size, int B_size); |
| 23 | extern void SN_close_env(struct SN_env * z, int S_size); |
| 24 | |
| 25 | extern int SN_set_current(struct SN_env * z, int size, const symbol * s); |
| 26 | |
| 27 | |