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 ********************************************************/
42 #define StmtKeycodeDef 2
43 #define StmtKeyAliasDef 3
46 #define StmtKeyTypeDef 6
47 #define StmtInterpDef 7
49 #define StmtSymbolsDef 9
50 #define StmtModMapDef 10
51 #define StmtGroupCompatDef 11
52 #define StmtIndicatorMapDef 12
53 #define StmtIndicatorNameDef 13
55 #define FileSymInterp 100
57 typedef struct _ParseCommon {
59 struct _ParseCommon *next;
64 #define ExprActionDecl 2
65 #define ExprFieldRef 3
66 #define ExprArrayRef 4
67 #define ExprKeysymList 5
68 #define ExprActionList 6
78 #define OpUnaryPlus 28
87 #define AutoKeyNames (1L << 0)
88 #define CreateKeyNames(x) ((x)->flags & AutoKeyNames)
90 extern unsigned warningLevel;
92 typedef struct _IncludeStmt {
94 enum merge_mode merge;
100 struct _IncludeStmt *next;
103 typedef struct _Expr {
127 darray(int) symsMapIndex;
128 darray(unsigned int) symsNumEntries;
138 typedef struct _VarDef {
140 enum merge_mode merge;
145 typedef struct _VModDef {
147 enum merge_mode merge;
152 typedef struct _KeycodeDef {
154 enum merge_mode merge;
159 typedef struct _KeyAliasDef {
161 enum merge_mode merge;
166 typedef struct _KeyTypeDef {
168 enum merge_mode merge;
173 typedef struct _SymbolsDef {
175 enum merge_mode merge;
180 typedef struct _ModMapDef {
182 enum merge_mode merge;
187 typedef struct _GroupCompatDef {
189 enum merge_mode merge;
194 typedef struct _InterpDef {
196 enum merge_mode merge;
202 typedef struct _IndicatorNameDef {
204 enum merge_mode merge;
210 typedef struct _IndicatorMapDef {
212 enum merge_mode merge;
218 typedef struct _XkbFile {
220 enum xkb_file_type type;
229 CompileKeycodes(XkbFile *file, struct xkb_keymap *keymap,
230 enum merge_mode merge);
233 CompileKeyTypes(XkbFile *file, struct xkb_keymap *keymap,
234 enum merge_mode merge);
237 CompileCompatMap(XkbFile *file, struct xkb_keymap *keymap,
238 enum merge_mode merge);
241 CompileSymbols(XkbFile *file, struct xkb_keymap *keymap,
242 enum merge_mode merge);
244 #endif /* XKBCOMP_H */