78 lines
2.1 KiB
Plaintext
78 lines
2.1 KiB
Plaintext
%{
|
|
#include "config.h"
|
|
|
|
#include "xkbcomp-priv.h"
|
|
#include "parser-priv.h"
|
|
|
|
static const struct keyword_tok *
|
|
keyword_gperf_lookup (register const char *str, register size_t len);
|
|
%}
|
|
|
|
struct keyword_tok { int name; int tok; };
|
|
%language=ANSI-C
|
|
%define hash-function-name keyword_gperf_hash
|
|
%define lookup-function-name keyword_gperf_lookup
|
|
%readonly-tables
|
|
%enum
|
|
%includes
|
|
%struct-type
|
|
%pic
|
|
%ignore-case
|
|
|
|
%%
|
|
action, ACTION_TOK
|
|
alias, ALIAS
|
|
alphanumeric_keys, ALPHANUMERIC_KEYS
|
|
alternate_group, ALTERNATE_GROUP
|
|
alternate, ALTERNATE
|
|
augment, AUGMENT
|
|
default, DEFAULT
|
|
function_keys, FUNCTION_KEYS
|
|
group, GROUP
|
|
hidden, HIDDEN
|
|
include, INCLUDE
|
|
indicator, INDICATOR
|
|
interpret, INTERPRET
|
|
keypad_keys, KEYPAD_KEYS
|
|
key, KEY
|
|
keys, KEYS
|
|
logo, LOGO
|
|
modifier_keys, MODIFIER_KEYS
|
|
modifier_map, MODIFIER_MAP
|
|
mod_map, MODIFIER_MAP
|
|
modmap, MODIFIER_MAP
|
|
outline, OUTLINE
|
|
overlay, OVERLAY
|
|
override, OVERRIDE
|
|
partial, PARTIAL
|
|
replace, REPLACE
|
|
row, ROW
|
|
section, SECTION
|
|
shape, SHAPE
|
|
solid, SOLID
|
|
text, TEXT
|
|
type, TYPE
|
|
virtual_modifiers, VIRTUAL_MODS
|
|
virtual, VIRTUAL
|
|
xkb_compatibility_map, XKB_COMPATMAP
|
|
xkb_compatibility, XKB_COMPATMAP
|
|
xkb_compat_map, XKB_COMPATMAP
|
|
xkb_compat, XKB_COMPATMAP
|
|
xkb_geometry, XKB_GEOMETRY
|
|
xkb_keycodes, XKB_KEYCODES
|
|
xkb_keymap, XKB_KEYMAP
|
|
xkb_layout, XKB_LAYOUT
|
|
xkb_semantics, XKB_SEMANTICS
|
|
xkb_symbols, XKB_SYMBOLS
|
|
xkb_types, XKB_TYPES
|
|
%%
|
|
|
|
int
|
|
keyword_to_token(const char *string, size_t len)
|
|
{
|
|
const struct keyword_tok *kt = keyword_gperf_lookup(string, len);
|
|
if (!kt)
|
|
return -1;
|
|
return kt->tok;
|
|
}
|