1%struct-type 2%language=C++ 3%global-table 4%define initializer-suffix ,Token::IDENTIFIER 5%define hash-function-name Hash 6%define lookup-function-name GetToken 7%define class-name PerfectKeywordHash 8%define word-array-name kPerfectKeywordHashTable 9%define length-table-name kPerfectKeywordLengthTable 10%7bit 11%compare-lengths 12%enum 13%readonly-tables 14%compare-strncmp 15 16struct PerfectKeywordHashTableEntry { const char* name; Token::Value value; }; 17%% 18async, Token::ASYNC 19await, Token::AWAIT 20break, Token::BREAK 21case, Token::CASE 22catch, Token::CATCH 23class, Token::CLASS 24const, Token::CONST 25continue, Token::CONTINUE 26debugger, Token::DEBUGGER 27default, Token::DEFAULT 28delete, Token::DELETE 29do, Token::DO 30else, Token::ELSE 31enum, Token::ENUM 32export, Token::EXPORT 33extends, Token::EXTENDS 34false, Token::FALSE_LITERAL 35finally, Token::FINALLY 36for, Token::FOR 37function, Token::FUNCTION 38get, Token::GET 39if, Token::IF 40implements, Token::FUTURE_STRICT_RESERVED_WORD 41import, Token::IMPORT 42in, Token::IN 43instanceof, Token::INSTANCEOF 44interface, Token::FUTURE_STRICT_RESERVED_WORD 45let, Token::LET 46new, Token::NEW 47null, Token::NULL_LITERAL 48package, Token::FUTURE_STRICT_RESERVED_WORD 49private, Token::FUTURE_STRICT_RESERVED_WORD 50protected, Token::FUTURE_STRICT_RESERVED_WORD 51public, Token::FUTURE_STRICT_RESERVED_WORD 52return, Token::RETURN 53set, Token::SET 54static, Token::STATIC 55super, Token::SUPER 56switch, Token::SWITCH 57this, Token::THIS 58throw, Token::THROW 59true, Token::TRUE_LITERAL 60try, Token::TRY 61typeof, Token::TYPEOF 62var, Token::VAR 63void, Token::VOID 64while, Token::WHILE 65with, Token::WITH 66yield, Token::YIELD 67