1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 10:01:13 +09:00

LibJS: Use some macro magic to avoid duplicating all the token types

This commit is contained in:
Andreas Kling 2020-03-30 13:11:07 +02:00
parent f221771717
commit a1c718e387
Notes: sideshowbarker 2024-07-19 08:03:16 +09:00
2 changed files with 99 additions and 265 deletions

View file

@ -33,182 +33,11 @@ namespace JS {
const char* Token::name(TokenType type)
{
switch (type) {
case TokenType::Ampersand:
return "Ampersand";
case TokenType::AmpersandEquals:
return "AmpersandEquals";
case TokenType::Asterisk:
return "Asterisk";
case TokenType::AsteriskAsteriskEquals:
return "AsteriskAsteriskEquals";
case TokenType::AsteriskEquals:
return "AsteriskEquals";
case TokenType::Await:
return "Await";
case TokenType::BoolLiteral:
return "BoolLiteral";
case TokenType::BracketOpen:
return "BracketOpen";
case TokenType::BracketClose:
return "BracketClose";
case TokenType::Break:
return "Break";
case TokenType::Caret:
return "Caret";
case TokenType::Case:
return "Case";
case TokenType::Catch:
return "Catch";
case TokenType::Class:
return "Class";
case TokenType::Colon:
return "Colon";
case TokenType::Comma:
return "Comma";
case TokenType::Const:
return "Const";
case TokenType::CurlyClose:
return "CurlyClose";
case TokenType::CurlyOpen:
return "CurlyOpen";
case TokenType::Default:
return "Default";
case TokenType::Delete:
return "Delete";
case TokenType::Do:
return "Do";
case TokenType::DoubleAmpersand:
return "DoubleAmpersand";
case TokenType::DoubleAsterisk:
return "DoubleAsterisk";
case TokenType::DoublePipe:
return "DoublePipe";
case TokenType::DoubleQuestionMark:
return "DoubleQuestionMark";
case TokenType::Else:
return "Else";
case TokenType::Eof:
return "Eof";
case TokenType::Equals:
return "Equals";
case TokenType::EqualsEquals:
return "EqualsEquals";
case TokenType::EqualsEqualsEquals:
return "EqualsEqualsEquals";
case TokenType::ExclamationMark:
return "ExclamationMark";
case TokenType::ExclamationMarkEquals:
return "ExclamationMarkEquals";
case TokenType::ExclamationMarkEqualsEquals:
return "ExclamationMarkEqualsEquals";
case TokenType::Finally:
return "Finally";
case TokenType::For:
return "For";
case TokenType::Function:
return "Function";
case TokenType::GreaterThan:
return "GreaterThan";
case TokenType::GreaterThanEquals:
return "GreaterThanEquals";
case TokenType::Identifier:
return "Identifier";
case TokenType::If:
return "If";
case TokenType::In:
return "In";
case TokenType::Instanceof:
return "Instanceof";
case TokenType::Interface:
return "Interface";
case TokenType::Invalid:
return "Invalid";
case TokenType::LessThan:
return "LessThan";
case TokenType::LessThanEquals:
return "LessThanEquals";
case TokenType::Let:
return "Let";
case TokenType::Minus:
return "Minus";
case TokenType::MinusEquals:
return "MinusEquals";
case TokenType::MinusMinus:
return "MinusMinus";
case TokenType::New:
return "New";
case TokenType::NullLiteral:
return "NullLiteral";
case TokenType::NumericLiteral:
return "NumericLiteral";
case TokenType::ParenClose:
return "ParenClose";
case TokenType::ParenOpen:
return "ParenOpen";
case TokenType::Percent:
return "Percent";
case TokenType::PercentEquals:
return "PercentEquals";
case TokenType::Period:
return "Period";
case TokenType::Pipe:
return "Pipe";
case TokenType::PipeEquals:
return "PipeEquals";
case TokenType::Plus:
return "Plus";
case TokenType::PlusEquals:
return "PlusEquals";
case TokenType::PlusPlus:
return "PlusPlus";
case TokenType::QuestionMark:
return "QuestionMark";
case TokenType::QuestionMarkPeriod:
return "QuestionMarkPeriod";
case TokenType::RegexLiteral:
return "RegexLiteral";
case TokenType::Return:
return "Return";
case TokenType::Semicolon:
return "Semicolon";
case TokenType::ShiftLeft:
return "ShiftLeft";
case TokenType::ShiftLeftEquals:
return "ShiftLeftEquals";
case TokenType::ShiftRight:
return "ShiftRight";
case TokenType::ShiftRightEquals:
return "ShiftRightEquals";
case TokenType::Slash:
return "Slash";
case TokenType::SlashEquals:
return "SlashEquals";
case TokenType::StringLiteral:
return "StringLiteral";
case TokenType::Switch:
return "Switch";
case TokenType::Tilde:
return "Tilde";
case TokenType::Try:
return "Try";
case TokenType::Typeof:
return "Typeof";
case TokenType::UndefinedLiteral:
return "UndefinedLiteral";
case TokenType::UnsignedShiftRight:
return "UnsignedShiftRight";
case TokenType::UnsignedShiftRightEquals:
return "UnsignedShiftRightEquals";
case TokenType::UnterminatedStringLiteral:
return "UnterminatedStringLiteral";
case TokenType::Var:
return "Var";
case TokenType::Void:
return "Void";
case TokenType::While:
return "While";
case TokenType::Yield:
return "Yield";
#define __ENUMERATE_JS_TOKEN(x) \
case TokenType::x: \
return #x;
ENUMERATE_JS_TOKENS
#undef __ENUMERATE_JS_TOKEN
default:
ASSERT_NOT_REACHED();
return "<Unknown>";