aboutsummaryrefslogtreecommitdiff
path: root/scripts/genksyms/keywords.c_shipped
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
commit1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch)
tree0bba044c4ce775e45a88a51686b5d9f90697ea9d /scripts/genksyms/keywords.c_shipped
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Diffstat (limited to 'scripts/genksyms/keywords.c_shipped')
-rw-r--r--scripts/genksyms/keywords.c_shipped145
1 files changed, 145 insertions, 0 deletions
diff --git a/scripts/genksyms/keywords.c_shipped b/scripts/genksyms/keywords.c_shipped
new file mode 100644
index 00000000000..eabaf7401cd
--- /dev/null
+++ b/scripts/genksyms/keywords.c_shipped
@@ -0,0 +1,145 @@
+/* ANSI-C code produced by gperf version 2.7.2 */
+/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
+struct resword { const char *name; int token; };
+/* maximum key range = 109, duplicates = 0 */
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static unsigned int
+is_reserved_hash (register const char *str, register unsigned int len)
+{
+ static const unsigned char asso_values[] =
+ {
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 5,
+ 113, 113, 113, 113, 113, 113, 0, 113, 113, 113,
+ 0, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 0, 113, 0, 113, 20,
+ 25, 0, 35, 30, 113, 20, 113, 113, 40, 30,
+ 30, 0, 0, 113, 0, 51, 0, 15, 5, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113
+ };
+ return len + asso_values[(unsigned char)str[2]] + asso_values[(unsigned char)str[0]] + asso_values[(unsigned char)str[len - 1]];
+}
+
+#ifdef __GNUC__
+__inline
+#endif
+const struct resword *
+is_reserved_word (register const char *str, register unsigned int len)
+{
+ enum
+ {
+ TOTAL_KEYWORDS = 41,
+ MIN_WORD_LENGTH = 3,
+ MAX_WORD_LENGTH = 17,
+ MIN_HASH_VALUE = 4,
+ MAX_HASH_VALUE = 112
+ };
+
+ static const struct resword wordlist[] =
+ {
+ {""}, {""}, {""}, {""},
+ {"auto", AUTO_KEYW},
+ {""}, {""},
+ {"__asm__", ASM_KEYW},
+ {""},
+ {"_restrict", RESTRICT_KEYW},
+ {"__typeof__", TYPEOF_KEYW},
+ {"__attribute", ATTRIBUTE_KEYW},
+ {"__restrict__", RESTRICT_KEYW},
+ {"__attribute__", ATTRIBUTE_KEYW},
+ {""},
+ {"__volatile", VOLATILE_KEYW},
+ {""},
+ {"__volatile__", VOLATILE_KEYW},
+ {"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
+ {""}, {""}, {""},
+ {"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
+ {"int", INT_KEYW},
+ {"char", CHAR_KEYW},
+ {""}, {""},
+ {"__const", CONST_KEYW},
+ {"__inline", INLINE_KEYW},
+ {"__const__", CONST_KEYW},
+ {"__inline__", INLINE_KEYW},
+ {""}, {""}, {""}, {""},
+ {"__asm", ASM_KEYW},
+ {"extern", EXTERN_KEYW},
+ {""},
+ {"register", REGISTER_KEYW},
+ {""},
+ {"float", FLOAT_KEYW},
+ {"typeof", TYPEOF_KEYW},
+ {"typedef", TYPEDEF_KEYW},
+ {""}, {""},
+ {"_Bool", BOOL_KEYW},
+ {"double", DOUBLE_KEYW},
+ {""}, {""},
+ {"enum", ENUM_KEYW},
+ {""}, {""}, {""},
+ {"volatile", VOLATILE_KEYW},
+ {"void", VOID_KEYW},
+ {"const", CONST_KEYW},
+ {"short", SHORT_KEYW},
+ {"struct", STRUCT_KEYW},
+ {""},
+ {"restrict", RESTRICT_KEYW},
+ {""},
+ {"__signed__", SIGNED_KEYW},
+ {""},
+ {"asm", ASM_KEYW},
+ {""}, {""},
+ {"inline", INLINE_KEYW},
+ {""}, {""}, {""},
+ {"union", UNION_KEYW},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"static", STATIC_KEYW},
+ {""}, {""}, {""}, {""}, {""}, {""},
+ {"__signed", SIGNED_KEYW},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {""}, {""}, {""}, {""}, {""},
+ {"unsigned", UNSIGNED_KEYW},
+ {""}, {""}, {""}, {""},
+ {"long", LONG_KEYW},
+ {""}, {""}, {""}, {""}, {""}, {""}, {""},
+ {"signed", SIGNED_KEYW}
+ };
+
+ if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+ {
+ register int key = is_reserved_hash (str, len);
+
+ if (key <= MAX_HASH_VALUE && key >= 0)
+ {
+ register const char *s = wordlist[key].name;
+
+ if (*str == *s && !strcmp (str + 1, s + 1))
+ return &wordlist[key];
+ }
+ }
+ return 0;
+}