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 | |