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