1%{
2struct resword;
3static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
4%}
5struct resword { const char *name; int token; }
6%%
7EXPORT_SYMBOL, EXPORT_SYMBOL_KEYW
8EXPORT_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
9EXPORT_SYMBOL_GPL_FUTURE, EXPORT_SYMBOL_KEYW
10EXPORT_UNUSED_SYMBOL, EXPORT_SYMBOL_KEYW
11EXPORT_UNUSED_SYMBOL_GPL, EXPORT_SYMBOL_KEYW
12__asm, ASM_KEYW
13__asm__, ASM_KEYW
14__attribute, ATTRIBUTE_KEYW
15__attribute__, ATTRIBUTE_KEYW
16__const, CONST_KEYW
17__const__, CONST_KEYW
18__extension__, EXTENSION_KEYW
19__inline, INLINE_KEYW
20__inline__, INLINE_KEYW
21__signed, SIGNED_KEYW
22__signed__, SIGNED_KEYW
23__volatile, VOLATILE_KEYW
24__volatile__, VOLATILE_KEYW
25# According to rth, c99 defines _Bool, __restrict, __restrict__, restrict.  KAO
26_Bool, BOOL_KEYW
27_restrict, RESTRICT_KEYW
28__restrict__, RESTRICT_KEYW
29restrict, RESTRICT_KEYW
30asm, ASM_KEYW
31# attribute commented out in modutils 2.4.2.  People are using 'attribute' as a
32# field name which breaks the genksyms parser.  It is not a gcc keyword anyway.
33# KAO.
34#   attribute, ATTRIBUTE_KEYW
35auto, AUTO_KEYW
36char, CHAR_KEYW
37const, CONST_KEYW
38double, DOUBLE_KEYW
39enum, ENUM_KEYW
40extern, EXTERN_KEYW
41float, FLOAT_KEYW
42inline, INLINE_KEYW
43int, INT_KEYW
44long, LONG_KEYW
45register, REGISTER_KEYW
46short, SHORT_KEYW
47signed, SIGNED_KEYW
48static, STATIC_KEYW
49struct, STRUCT_KEYW
50typedef, TYPEDEF_KEYW
51union, UNION_KEYW
52unsigned, UNSIGNED_KEYW
53void, VOID_KEYW
54volatile, VOLATILE_KEYW
55typeof, TYPEOF_KEYW
56__typeof__, TYPEOF_KEYW
57