Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
enum {
2
	STACKSIZE = 2048 * sizeof(void*),
3
};
4
 
5
/* Keywords */
6
 
7
typedef enum {
8
	Category,
9
	Cddata,
10
	Cmd,
11
	File,
12
	Include,
13
	Key,
14
	Lyrics,
15
	Part,
16
	Path,
17
	Performance,
18
	Recording,
19
	Root,
20
	Search,
21
	Soloists,
22
	Time,
23
	Track,
24
	Work,
25
	Ntoken,	/* Initializer for ntoken */
26
	Eof	=	-1,
27
	Txt	=	-2,
28
	BraceO	=	-3,
29
	BraceC	=	-4,
30
	Equals	=	-5,
31
	Newcat	=	-6,
32
} Type;
33
 
34
typedef struct Object Object;
35
typedef struct Catset Catset;
36
typedef struct Token Token;
37
typedef struct Cmdlist Cmdlist;
38
 
39
/* Token-only types */
40
 
41
typedef enum {
42
	Obj,
43
	Cat,
44
} Kind;
45
 
46
struct Catset {
47
	uchar *bitpiece;	/* mallocated */
48
	int nbitpiece;
49
};
50
 
51
 
52
struct Token {
53
	char	*name;
54
	Kind	kind;
55
	long	value;
56
	char	*kname;
57
	Catset	categories;
58
};
59
 
60
typedef enum {
61
	Hierarchy,
62
	Typelist,
63
	Nlisttype,
64
} Listtype;
65
 
66
struct Cmdlist {
67
	int	flag;
68
	char	*name;
69
};
70
 
71
#define KEYLEN 128
72
 
73
struct Object {
74
	Type	type;
75
	int	tabno;		/* entry in object table */
76
	Object	*parent;
77
	Object	**children;	/* mallocated */
78
	Object	**catparents;
79
	Object	*orig;		/* back pointer from search object */
80
	int	nchildren;
81
	int	ncatparents;
82
	Catset	categories;	/* was int */
83
	int	flags;
84
	int	num;		/* for enumerations */
85
	char	*value;		/* mallocated */
86
	char	key[KEYLEN];
87
	char	*path;		/* mallocated */
88
};
89
 
90
#define Sort	0x01
91
#define Enum	0x02
92
#define Hier	0x04
93
#define Elab	0x10	/* elaborated rune string */
94
 
95
extern	Token	*tokenlist;
96
extern	int	ncat;
97
extern	Object	**catobjects;
98
extern	Biobuf	*f;
99
extern	char	*file;
100
extern	Object	*root;
101
extern	int	ntoken;
102
 
103
extern	Object	**otab;	// object table
104
extern	int	notab;	// no of entries used
105
extern	int	sotab;	// no of entries mallocated
106
extern	int	hotab;	// no of holes in tab
107
extern	char	*user;
108
 
109
void	io(void *);
110
long	printchildren(char*, int, Object*);
111
long	printdigest(char*, int, Object*);
112
long	printfiles(char*, int, Object*);
113
long	printfulltext(char*, int, Object*);
114
long	printkey(char*, int, Object*);
115
long	printminiparentage(char*, int, Object*);
116
long	printparent(char*, int, Object*);
117
long	printparentage(char*, int, Object*);
118
long	printtext(char*, int, Object*);
119
long	printtype(char*, int, Object*);
120
void	reread(void);
121
void	listfiles(Object *o);