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