1 /**
2  *
3  * $Id: UilDBDef.h,v 1.1 2004/08/28 19:23:37 dannybackx Exp $
4  *
5  * Copyright (C) 1995 Free Software Foundation, Inc.
6  * Copyright (C) 1995-2000 LessTif Development Team
7  *
8  * This file is part of the GNU LessTif Library.
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Library General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Library General Public License for more details.
19  *
20  * You should have received a copy of the GNU Library General Public
21  * License along with this library; if not, write to the Free
22  * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
23  *
24  **/
25 
26 
27 #ifndef _UIL_UIL_DBDEF_H
28 #define _UIL_UIL_DBDEF_H
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 
35 #define _BIT_INDEX(_type)	\
36             (((unsigned int) (_type)) >> 3)
37 
38 #define _BIT_MASK(_type)	\
39   (1 << (((unsigned int) (_type)) & 0x7))
40 
41 #define _BIT_SET(table_entry_addr, _type) \
42   ( _BIT_MASK (_type) &  \
43     ( ((unsigned char *) (table_entry_addr)) \
44       [ _BIT_INDEX (_type) ] ) )
45 
46 
47 /*
48  * hash table size
49  */
50 #define sym_k_hash_table_limit	127
51 
52 
53 /*
54  * entry types
55  */
56 #define sym_k_error_entry		(127)
57 #define sym_k_value_entry		1
58 #define sym_k_name_entry		2
59 #define sym_k_widget_entry		3
60 #define sym_k_control_entry		4
61 #define sym_k_forward_ref_entry		5
62 #define sym_k_external_def_entry	6
63 #define sym_k_argument_entry		7
64 #define sym_k_callback_entry		8
65 #define sym_k_module_entry		9
66 #define sym_k_proc_def_entry		10
67 #define sym_k_proc_ref_entry		11
68 #define sym_k_list_entry		12
69 #define sym_k_child_entry		13
70 #define sym_k_identifier_entry		14
71 #define sym_k_color_item_entry		15
72 #define sym_k_gadget_entry		16
73 #define sym_k_root_entry		17
74 #define sym_k_parent_list_entry		18
75 #define sym_k_nested_list_entry		19
76 #define sym_k_include_file_entry	20
77 #define sym_k_section_entry		21
78 #define sym_k_def_obj_entry		22
79 #define sym_k_UNUSED23_entry		23
80 #define sym_k_val_forward_ref_entry	24
81 #define sym_k_max_entry			24
82 
83 
84 /*
85  * entry flags
86  */
87 #define		sym_m_private		(1 << 0)
88 #define		sym_m_exported		(1 << 1)
89 #define		sym_m_imported		(1 << 2)
90 #define		sym_m_reference		(1 << 3)
91 #define		sym_m_builtin		(1 << 4)
92 #define		sym_m_obj_is_gadget	(1 << 5)
93 
94 
95 /*
96  * output states
97  */
98 #define		sym_k_not_processed	0
99 #define		sym_k_queued		1
100 #define		sym_k_emitted		2
101 
102 
103 /*
104  * type values
105  */
106 #define sym_k_any_value			1
107 #define sym_k_argument_value		2
108 #define sym_k_asciz_table_value		3
109 #define sym_k_bool_value		4
110 #define sym_k_char_8_value		5
111 #define sym_k_class_rec_name_value	6
112 #define sym_k_color_value		7
113 #define sym_k_color_table_value		8
114 #define sym_k_compound_string_value	9
115 #define sym_k_float_value		10
116 #define sym_k_font_value		11
117 #define sym_k_font_table_value		12
118 #define sym_k_icon_value		13
119 #define sym_k_identifier_value		14
120 #define sym_k_integer_value		15
121 #define sym_k_integer_table_value	16
122 #define sym_k_keysym_value		17
123 #define sym_k_pixmap_value		18
124 #define sym_k_reason_value		19
125 #define sym_k_rgb_value			20
126 #define sym_k_single_float_value	21
127 #define sym_k_string_table_value	22
128 #define sym_k_trans_table_value		23
129 #define sym_k_widget_ref_value		24
130 #define sym_k_xbitmapfile_value		25
131 #define sym_k_localized_string_value	26
132 #define sym_k_wchar_string_value	27
133 #define sym_k_fontset_value		28
134 #define	sym_k_child_value		29
135 #define sym_k_max_value			29
136 #define sym_k_no_value			(sym_k_max_value+1)
137 
138 
139 /*
140  * error values
141  */
142 #define sym_k_error_value		0
143 #define sym_k_error_object		0
144 #define sym_k_error_charset		0
145 
146 
147 /*
148  * character sizes
149  */
150 #define sym_k_onebyte_charsize	1
151 #define sym_k_twobyte_charsize	2
152 #define sym_k_mixed1_2byte_charsize	3
153 
154 /*
155  * charset tags
156  */
157 #define sym_k_userdefined_charset	1
158 #define sym_k_fontlist_default_tag 	0
159 
160 /*
161  * operator values
162  */
163 #define sym_k_unspecified_op	0
164 #define sym_k_not_op		1
165 #define sym_k_unary_plus_op	2
166 #define sym_k_unary_minus_op	3
167 #define sym_k_comp_str_op	4
168 #define sym_k_wchar_str_op	5
169 #define sym_k_last_unary_op	5
170 #define sym_k_multiply_op	6
171 #define sym_k_divide_op		7
172 #define sym_k_add_op		8
173 #define sym_k_subtract_op	9
174 #define sym_k_left_shift_op	10
175 #define sym_k_right_shift_op	11
176 #define sym_k_and_op		12
177 #define sym_k_xor_op		13
178 #define sym_k_or_op		14
179 #define sym_k_cat_op		15
180 #define sym_k_last_binary_op	15
181 #define sym_k_valref_op		16
182 #define sym_k_coerce_op		17
183 #define sym_k_last_special_op	17
184 
185 /*
186  * enum structure
187  */
188 typedef struct
189 {
190     short int values_cnt;
191     unsigned short int *values;
192 }
193 UilEnumSetDescDef, *UilEnumSetDescDefPtr;
194 
195 
196 /*
197  * token class literals
198  */
199 #define tkn_k_class_argument    1
200 #define tkn_k_class_charset     2
201 #define tkn_k_class_color       3
202 #define tkn_k_class_enumval     4
203 #define tkn_k_class_font        5
204 #define tkn_k_class_identifier  6
205 #define tkn_k_class_keyword     7
206 #define tkn_k_class_literal     8
207 #define tkn_k_class_reason      9
208 #define tkn_k_class_reserved    10
209 #define tkn_k_class_special     11
210 #define tkn_k_class_unused      12
211 #define tkn_k_class_class       13
212 #define tkn_k_class_child	14
213 
214 /*
215  * keyword table entry
216  */
217 typedef struct
218 {
219     unsigned char b_class;
220     unsigned short int b_subclass;
221     unsigned char b_length;
222     unsigned char b_token;
223     char *at_name;
224 }
225 key_keytable_entry_type;
226 
227 
228 
229 #define Constraint_Tab			1
230 #define Key_Table			2
231 #define Key_Table_Case_Ins		3
232 #define Allowed_Argument_Table		4
233 #define Argument_Type_Table_Value	5
234 #define Charset_Xmstring_Names_Table	6
235 #define Charset_Wrdirection_Table	7
236 #define Charset_Parsdirection_Table	8
237 #define Charset_Charsize_Table		9
238 #define Charset_Lang_Names_Table	10
239 #define Charset_Lang_Codes_Table	11
240 #define Allowed_Control_Table		12
241 #define Enum_Set_Table			13
242 #define Argument_Enum_Set_Table		14
243 #define Enumval_Values_Table		15
244 #define Uil_Widget_Names		16
245 #define Uil_Argument_Names		17
246 #define Uil_Reason_Names		18
247 #define Uil_Enumval_names		19
248 #define Uil_Charset_Names		20
249 #define Related_Argument_Table		21
250 #define Allowed_Reason_Table		22
251 #define Uil_Widget_Funcs		23
252 #define Uil_Gadget_Funcs		24
253 #define Uil_Urm_Nondialog_Class		25
254 #define Uil_Urm_Subtree_Resource	26
255 #define Uil_Argument_Toolkit_Names	27
256 #define Uil_Reason_Toolkit_Names	28
257 #define Child_Class_Table		29
258 #define Allowed_Child_Table		30
259 #define Uil_Children_Names		31
260 
261 #define DB_Compiled_Version 2
262 
263 typedef struct _db_globals_struct
264 {
265     int version;
266     int uil_max_arg;
267     int uil_max_charset;
268     int charset_lang_table_max;
269     int uil_max_object;
270     int uil_max_reason;
271     int uil_max_enumval;
272     int uil_max_enumset;
273     int key_k_keyword_count;
274     int key_k_keyword_max_length;
275     int uil_max_child;
276 }
277 _db_globals;
278 
279 typedef struct _db_header_struct
280 {
281     int table_id;
282     int num_items;
283     int table_size;
284 }
285 _db_header, *_db_header_ptr;
286 
287 
288 #ifdef __cplusplus
289 }
290 #endif
291 
292 
293 #endif /* _UIL_UIL_H */
294