|
|
1.1 root 1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
2:
3: /*
4: $Header: b1tlt.h,v 1.4 85/08/22 16:42:12 timo Exp $
5: */
6:
7: #ifndef INTEGRATION
8:
9: /* Private definitions for B texts, lists and tables */
10:
11: typedef struct telita {
12: HEADER; btreeptr root;
13: } a_telita, *telita;
14:
15: #define Itemtype(v) (((telita) (v))->len) /* Itemtype */
16: #define Root(v) (((telita) (v))->root)
17: #define Tltsize(v) (Root(v) EQ Bnil ? 0 : Size(Root(v)))
18:
19: #define Character(v) ((bool) (Type(v) EQ Tex && Tltsize(v) EQ 1))
20: value mkchar(); /* char c */
21:
22: #else INTEGRATION
23:
24: /************************************************************************/
25: /* Private definitions for small texts, lists and tables module */
26: /* A text is modelled as a sequence of len characters. */
27: /* */
28: /* A list is modelled as a sequence of len values, */
29: /* each of which corresponds to a list entry. */
30: /* */
31: /* A table is modelled as a sequence of len values, */
32: /* each of which corresponds to a table entry; */
33: /* table entries are modelled as a compound with two fields. */
34: /************************************************************************/
35:
36: #define Cts(v) (*Ats(v))
37: #define Dts(v) (*(Ats(v)+1))
38:
39: #define List_elem(l, i) (*(Ats(l)+i)) /*counts from 0; takes no copy*/
40: #define Key(t, i) (Ats(*(Ats(t)+i))) /*Ditto*/
41: #define Assoc(t, i) (Ats(*(Ats(t)+i))+1) /*Ditto*/
42:
43: bool found();
44: value list_elem();
45: value key_elem();
46:
47: #endif INTEGRATION
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.