xref: /aosp_15_r20/external/libxkbcommon/src/xkbcomp/keywords.gperf (revision 2b949d0487e80d67f1fda82db69e101e761f8064)
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