1 %{ 2 #include "xkbcomp-priv.h" 3 #include "parser-priv.h" 4 5 static unsigned int 6 keyword_gperf_hash(const char *str, unsigned int len); 7 8 static const struct keyword_tok * 9 keyword_gperf_lookup(const char *str, unsigned int len); 10 %} 11 12 struct keyword_tok { int name; int tok; }; 13 %language=ANSI-C 14 %define hash-function-name keyword_gperf_hash 15 %define lookup-function-name keyword_gperf_lookup 16 %readonly-tables 17 %enum 18 %includes 19 %struct-type 20 %pic 21 %ignore-case 22 23 %% 24 action, ACTION_TOK 25 alias, ALIAS 26 alphanumeric_keys, ALPHANUMERIC_KEYS 27 alternate_group, ALTERNATE_GROUP 28 alternate, ALTERNATE 29 augment, AUGMENT 30 default, DEFAULT 31 function_keys, FUNCTION_KEYS 32 group, GROUP 33 hidden, HIDDEN 34 include, INCLUDE 35 indicator, INDICATOR 36 interpret, INTERPRET 37 keypad_keys, KEYPAD_KEYS 38 key, KEY 39 keys, KEYS 40 logo, LOGO 41 modifier_keys, MODIFIER_KEYS 42 modifier_map, MODIFIER_MAP 43 mod_map, MODIFIER_MAP 44 modmap, MODIFIER_MAP 45 outline, OUTLINE 46 overlay, OVERLAY 47 override, OVERRIDE 48 partial, PARTIAL 49 replace, REPLACE 50 row, ROW 51 section, SECTION 52 shape, SHAPE 53 solid, SOLID 54 text, TEXT 55 type, TYPE 56 virtual_modifiers, VIRTUAL_MODS 57 virtual, VIRTUAL 58 xkb_compatibility_map, XKB_COMPATMAP 59 xkb_compatibility, XKB_COMPATMAP 60 xkb_compat_map, XKB_COMPATMAP 61 xkb_compat, XKB_COMPATMAP 62 xkb_geometry, XKB_GEOMETRY 63 xkb_keycodes, XKB_KEYCODES 64 xkb_keymap, XKB_KEYMAP 65 xkb_layout, XKB_LAYOUT 66 xkb_semantics, XKB_SEMANTICS 67 xkb_symbols, XKB_SYMBOLS 68 xkb_types, XKB_TYPES 69 %% 70 71 int 72 keyword_to_token(const char *string, unsigned int len) 73 { 74 const struct keyword_tok *kt = keyword_gperf_lookup(string, len); 75 if (!kt) 76 return -1; 77 return kt->tok; 78 } 79