1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 02:07:35 +00:00

LibWeb: Tidy up CSS::Token::to_debug_string()

The ifs below the switch no longer functioned, so let's move everything
into the switch cases. This also means we can replace the StringBuilder
usage with String::formatted().
This commit is contained in:
Sam Atkins 2022-03-22 12:32:40 +00:00 committed by Andreas Kling
parent 13e1232d79
commit cbe2eaebab

View file

@ -1,5 +1,6 @@
/* /*
* Copyright (c) 2020-2021, the SerenityOS developers. * Copyright (c) 2020-2021, the SerenityOS developers.
* Copyright (c) 2022, Sam Atkins <atkinssj@serenityos.org>
* *
* SPDX-License-Identifier: BSD-2-Clause * SPDX-License-Identifier: BSD-2-Clause
*/ */
@ -80,140 +81,62 @@ String Token::to_string() const
String Token::to_debug_string() const String Token::to_debug_string() const
{ {
StringBuilder builder;
switch (m_type) { switch (m_type) {
case Type::Invalid: case Type::Invalid:
VERIFY_NOT_REACHED(); VERIFY_NOT_REACHED();
case Type::EndOfFile: case Type::EndOfFile:
builder.append("__EOF__"); return "__EOF__";
break;
case Type::Ident: case Type::Ident:
builder.append("Identifier: "); return String::formatted("Ident: {}", ident());
builder.append(m_value);
return builder.to_string();
case Type::Function: case Type::Function:
builder.append("Function"); return String::formatted("Function: {}", function());
break;
case Type::AtKeyword: case Type::AtKeyword:
builder.append("@"); return String::formatted("AtKeyword: {}", at_keyword());
break;
case Type::Hash: case Type::Hash:
builder.append("Hash: "); return String::formatted("Hash: {} (hash_type: {})", hash_value(), m_hash_type == HashType::Unrestricted ? "Unrestricted" : "Id");
builder.append(m_value);
return builder.to_string();
case Type::String: case Type::String:
builder.append("String: "); return String::formatted("String: {}", string());
builder.append(m_value);
return builder.to_string();
case Type::BadString: case Type::BadString:
builder.append("Invalid String"); return "BadString";
break;
case Type::Url: case Type::Url:
builder.append("Url"); return String::formatted("Url: {}", url());
break;
case Type::BadUrl: case Type::BadUrl:
builder.append("Invalid Url"); return "BadUrl";
break;
case Type::Delim: case Type::Delim:
builder.append("Delimiter: "); return String::formatted("Delim: {}", m_value);
builder.append(m_value);
return builder.to_string();
case Type::Number: case Type::Number:
builder.append("Number: "); return String::formatted("Number: {} (number_type: {})", m_number_value.value(), m_number_value.is_integer() ? "Integer" : "Number");
builder.append(m_number_value.value());
builder.append(m_number_value.is_integer() ? " (int)" : " (float)");
return builder.to_string();
case Type::Percentage: case Type::Percentage:
builder.append("Percentage: "); return String::formatted("Percentage: {}% (number_type: {})", percentage(), m_number_value.is_integer() ? "Integer" : "Number");
builder.append(m_value);
builder.append('%');
return builder.to_string();
case Type::Dimension: case Type::Dimension:
builder.append("Dimension: "); return String::formatted("Dimension: {}{} (number_type: {})", dimension_value(), dimension_unit(), m_number_value.is_integer() ? "Integer" : "Number");
builder.append(dimension_value());
builder.append(dimension_unit());
return builder.to_string();
case Type::Whitespace: case Type::Whitespace:
builder.append("Whitespace"); return "Whitespace";
break;
case Type::CDO: case Type::CDO:
builder.append("CDO"); return "CDO";
break;
case Type::CDC: case Type::CDC:
builder.append("CDC"); return "CDC";
break;
case Type::Colon: case Type::Colon:
builder.append(":"); return "Colon";
break;
case Type::Semicolon: case Type::Semicolon:
builder.append(";"); return "Semicolon";
break;
case Type::Comma: case Type::Comma:
builder.append(","); return "Comma";
break;
case Type::OpenSquare: case Type::OpenSquare:
builder.append("["); return "OpenSquare";
break;
case Type::CloseSquare: case Type::CloseSquare:
builder.append("]"); return "CloseSquare";
break;
case Type::OpenParen: case Type::OpenParen:
builder.append("("); return "OpenParen";
break;
case Type::CloseParen: case Type::CloseParen:
builder.append(")"); return "CloseParen";
break;
case Type::OpenCurly: case Type::OpenCurly:
builder.append("{"); return "OpenCurly";
break;
case Type::CloseCurly: case Type::CloseCurly:
builder.append("}"); return "CloseCurly";
break;
} }
VERIFY_NOT_REACHED();
if (m_value.is_empty()) {
return builder.to_string();
}
builder.append(" ");
builder.append(" { value: '");
builder.append(m_value);
if (m_type == Token::Type::Hash) {
builder.append("', hash_type: '");
if (m_hash_type == Token::HashType::Unrestricted) {
builder.append("Unrestricted");
} else {
builder.append("Id");
}
}
if (m_type == Token::Type::Number) {
builder.append("', number_type: '");
if (m_number_value.is_integer()) {
builder.append("Integer");
} else {
builder.append("Number");
}
}
if (m_type == Token::Type::Dimension) {
builder.append("', number_type: '");
if (m_number_value.is_integer()) {
builder.append("Integer");
} else {
builder.append("Number");
}
builder.append("', unit: '");
builder.append(dimension_unit());
}
builder.append("' }");
return builder.to_string();
} }
Token::Type Token::mirror_variant() const Token::Type Token::mirror_variant() const