1 /************************************************************
2 * Copyright (c) 1994 by Silicon Graphics Computer Systems, Inc.
4 * Permission to use, copy, modify, and distribute this
5 * software and its documentation for any purpose and without
6 * fee is hereby granted, provided that the above copyright
7 * notice appear in all copies and that both that copyright
8 * notice and this permission notice appear in supporting
9 * documentation, and that the name of Silicon Graphics not be
10 * used in advertising or publicity pertaining to distribution
11 * of the software without specific prior written permission.
12 * Silicon Graphics makes no representation about the suitability
13 * of this software for any purpose. It is provided "as is"
14 * without any express or implied warranty.
16 * SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
17 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
18 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
19 * GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
20 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
21 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
22 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
23 * THE USE OR PERFORMANCE OF THIS SOFTWARE.
25 ********************************************************/
50 enum expr_value_type {
51 EXPR_TYPE_UNKNOWN = 0,
86 typedef struct _ParseCommon {
88 struct _ParseCommon *next;
91 typedef struct _IncludeStmt {
93 enum merge_mode merge;
98 struct _IncludeStmt *next_incl;
101 typedef struct _Expr {
103 enum expr_op_type op;
104 enum expr_value_type value_type;
125 darray(int) symsMapIndex;
126 darray(unsigned int) symsNumEntries;
132 char keyName[XkbKeyNameLength];
136 typedef struct _VarDef {
138 enum merge_mode merge;
143 typedef struct _VModDef {
145 enum merge_mode merge;
150 typedef struct _KeycodeDef {
152 enum merge_mode merge;
153 char name[XkbKeyNameLength];
157 typedef struct _KeyAliasDef {
159 enum merge_mode merge;
160 char alias[XkbKeyNameLength];
161 char real[XkbKeyNameLength];
164 typedef struct _KeyTypeDef {
166 enum merge_mode merge;
171 typedef struct _SymbolsDef {
173 enum merge_mode merge;
174 char keyName[XkbKeyNameLength];
178 typedef struct _ModMapDef {
180 enum merge_mode merge;
185 typedef struct _GroupCompatDef {
187 enum merge_mode merge;
192 typedef struct _InterpDef {
194 enum merge_mode merge;
200 typedef struct _IndicatorNameDef {
202 enum merge_mode merge;
208 typedef struct _IndicatorMapDef {
210 enum merge_mode merge;
215 typedef struct _XkbFile {
217 enum xkb_file_type file_type;
226 CompileKeycodes(XkbFile *file, struct xkb_keymap *keymap,
227 enum merge_mode merge);
230 CompileKeyTypes(XkbFile *file, struct xkb_keymap *keymap,
231 enum merge_mode merge);
234 CompileCompatMap(XkbFile *file, struct xkb_keymap *keymap,
235 enum merge_mode merge);
238 CompileSymbols(XkbFile *file, struct xkb_keymap *keymap,
239 enum merge_mode merge);
241 #endif /* XKBCOMP_H */