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:
parent
f221771717
commit
a1c718e387
Notes:
sideshowbarker
2024-07-19 08:03:16 +09:00
Author: https://github.com/awesomekling
Commit: a1c718e387
2 changed files with 99 additions and 265 deletions
|
@ -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>";
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue