// Automatically generated from parser/Keywords.table using /home/khansen/dev/qtwebkit-qtscript-integration/JavaScriptCore/create_hash_table. DO NOT EDIT!

#include "Lookup.h"

namespace JSC {

static const struct HashTableValue mainTableValues[37] = {
   { "null", 0, (intptr_t)NULLTOKEN, (intptr_t)0 },
   { "true", 0, (intptr_t)TRUETOKEN, (intptr_t)0 },
   { "false", 0, (intptr_t)FALSETOKEN, (intptr_t)0 },
   { "break", 0, (intptr_t)BREAK, (intptr_t)0 },
   { "case", 0, (intptr_t)CASE, (intptr_t)0 },
   { "catch", 0, (intptr_t)CATCH, (intptr_t)0 },
   { "const", 0, (intptr_t)CONSTTOKEN, (intptr_t)0 },
   { "default", 0, (intptr_t)DEFAULT, (intptr_t)0 },
   { "finally", 0, (intptr_t)FINALLY, (intptr_t)0 },
   { "for", 0, (intptr_t)FOR, (intptr_t)0 },
   { "instanceof", 0, (intptr_t)INSTANCEOF, (intptr_t)0 },
   { "new", 0, (intptr_t)NEW, (intptr_t)0 },
   { "var", 0, (intptr_t)VAR, (intptr_t)0 },
   { "continue", 0, (intptr_t)CONTINUE, (intptr_t)0 },
   { "function", 0, (intptr_t)FUNCTION, (intptr_t)0 },
   { "return", 0, (intptr_t)RETURN, (intptr_t)0 },
   { "void", 0, (intptr_t)VOIDTOKEN, (intptr_t)0 },
   { "delete", 0, (intptr_t)DELETETOKEN, (intptr_t)0 },
   { "if", 0, (intptr_t)IF, (intptr_t)0 },
   { "this", 0, (intptr_t)THISTOKEN, (intptr_t)0 },
   { "do", 0, (intptr_t)DO, (intptr_t)0 },
   { "while", 0, (intptr_t)WHILE, (intptr_t)0 },
   { "else", 0, (intptr_t)ELSE, (intptr_t)0 },
   { "in", 0, (intptr_t)INTOKEN, (intptr_t)0 },
   { "switch", 0, (intptr_t)SWITCH, (intptr_t)0 },
   { "throw", 0, (intptr_t)THROW, (intptr_t)0 },
   { "try", 0, (intptr_t)TRY, (intptr_t)0 },
   { "typeof", 0, (intptr_t)TYPEOF, (intptr_t)0 },
   { "with", 0, (intptr_t)WITH, (intptr_t)0 },
   { "debugger", 0, (intptr_t)DEBUGGER, (intptr_t)0 },
   { "class", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { "enum", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { "export", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { "extends", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { "import", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { "super", 0, (intptr_t)RESERVED, (intptr_t)0 },
   { 0, 0, 0, 0 }
};

extern JSC_CONST_HASHTABLE HashTable mainTable =
    { 133, 127, mainTableValues, 0 };
} // namespace
