11cb0ef41Sopenharmony_ci%struct-type 21cb0ef41Sopenharmony_ci%language=C++ 31cb0ef41Sopenharmony_ci%global-table 41cb0ef41Sopenharmony_ci%define initializer-suffix ,Token::IDENTIFIER 51cb0ef41Sopenharmony_ci%define hash-function-name Hash 61cb0ef41Sopenharmony_ci%define lookup-function-name GetToken 71cb0ef41Sopenharmony_ci%define class-name PerfectKeywordHash 81cb0ef41Sopenharmony_ci%define word-array-name kPerfectKeywordHashTable 91cb0ef41Sopenharmony_ci%define length-table-name kPerfectKeywordLengthTable 101cb0ef41Sopenharmony_ci%7bit 111cb0ef41Sopenharmony_ci%compare-lengths 121cb0ef41Sopenharmony_ci%enum 131cb0ef41Sopenharmony_ci%readonly-tables 141cb0ef41Sopenharmony_ci%compare-strncmp 151cb0ef41Sopenharmony_ci 161cb0ef41Sopenharmony_cistruct PerfectKeywordHashTableEntry { const char* name; Token::Value value; }; 171cb0ef41Sopenharmony_ci%% 181cb0ef41Sopenharmony_ciasync, Token::ASYNC 191cb0ef41Sopenharmony_ciawait, Token::AWAIT 201cb0ef41Sopenharmony_cibreak, Token::BREAK 211cb0ef41Sopenharmony_cicase, Token::CASE 221cb0ef41Sopenharmony_cicatch, Token::CATCH 231cb0ef41Sopenharmony_ciclass, Token::CLASS 241cb0ef41Sopenharmony_ciconst, Token::CONST 251cb0ef41Sopenharmony_cicontinue, Token::CONTINUE 261cb0ef41Sopenharmony_cidebugger, Token::DEBUGGER 271cb0ef41Sopenharmony_cidefault, Token::DEFAULT 281cb0ef41Sopenharmony_cidelete, Token::DELETE 291cb0ef41Sopenharmony_cido, Token::DO 301cb0ef41Sopenharmony_cielse, Token::ELSE 311cb0ef41Sopenharmony_cienum, Token::ENUM 321cb0ef41Sopenharmony_ciexport, Token::EXPORT 331cb0ef41Sopenharmony_ciextends, Token::EXTENDS 341cb0ef41Sopenharmony_cifalse, Token::FALSE_LITERAL 351cb0ef41Sopenharmony_cifinally, Token::FINALLY 361cb0ef41Sopenharmony_cifor, Token::FOR 371cb0ef41Sopenharmony_cifunction, Token::FUNCTION 381cb0ef41Sopenharmony_ciget, Token::GET 391cb0ef41Sopenharmony_ciif, Token::IF 401cb0ef41Sopenharmony_ciimplements, Token::FUTURE_STRICT_RESERVED_WORD 411cb0ef41Sopenharmony_ciimport, Token::IMPORT 421cb0ef41Sopenharmony_ciin, Token::IN 431cb0ef41Sopenharmony_ciinstanceof, Token::INSTANCEOF 441cb0ef41Sopenharmony_ciinterface, Token::FUTURE_STRICT_RESERVED_WORD 451cb0ef41Sopenharmony_cilet, Token::LET 461cb0ef41Sopenharmony_cinew, Token::NEW 471cb0ef41Sopenharmony_cinull, Token::NULL_LITERAL 481cb0ef41Sopenharmony_cipackage, Token::FUTURE_STRICT_RESERVED_WORD 491cb0ef41Sopenharmony_ciprivate, Token::FUTURE_STRICT_RESERVED_WORD 501cb0ef41Sopenharmony_ciprotected, Token::FUTURE_STRICT_RESERVED_WORD 511cb0ef41Sopenharmony_cipublic, Token::FUTURE_STRICT_RESERVED_WORD 521cb0ef41Sopenharmony_cireturn, Token::RETURN 531cb0ef41Sopenharmony_ciset, Token::SET 541cb0ef41Sopenharmony_cistatic, Token::STATIC 551cb0ef41Sopenharmony_cisuper, Token::SUPER 561cb0ef41Sopenharmony_ciswitch, Token::SWITCH 571cb0ef41Sopenharmony_cithis, Token::THIS 581cb0ef41Sopenharmony_cithrow, Token::THROW 591cb0ef41Sopenharmony_citrue, Token::TRUE_LITERAL 601cb0ef41Sopenharmony_citry, Token::TRY 611cb0ef41Sopenharmony_citypeof, Token::TYPEOF 621cb0ef41Sopenharmony_civar, Token::VAR 631cb0ef41Sopenharmony_civoid, Token::VOID 641cb0ef41Sopenharmony_ciwhile, Token::WHILE 651cb0ef41Sopenharmony_ciwith, Token::WITH 661cb0ef41Sopenharmony_ciyield, Token::YIELD 67