/******************************************************************************** * Copyright (c) 2025-2026 ZF Friedrichshafen AG * * This program and the accompanying materials are made available under the * terms of the Apache License Version 2.0 which is available at * https://www.apache.org/licenses/LICENSE-2.0 * * SPDX-License-Identifier: Apache-2.0 * * Contributors: * Erik Verhoeven - initial API and implementation ********************************************************************************/ #include #include #include #include "../../../sdv_services/core/toml_parser/lexer_toml.h" #include "../../../sdv_services/core/toml_parser/exception.h" #include "../../../sdv_services/core/toml_parser/miscellaneous.h" std::string DumpTokenList(toml_parser::CLexer& rLexer) { auto eNavMode = rLexer.NavigationMode(); rLexer.NavigationMode(toml_parser::CLexer::ENavigationMode::do_not_skip_anything); rLexer.ResetCursor(); std::stringstream sstream; while (!rLexer.IsEnd()) { const auto& rToken = rLexer.Consume(); switch (rToken.Category()) { case toml_parser::ETokenCategory::token_none: sstream << ""; break; case toml_parser::ETokenCategory::token_syntax_assignment: sstream << "="; break; case toml_parser::ETokenCategory::token_syntax_array_open: sstream << "["; break; case toml_parser::ETokenCategory::token_syntax_array_close: sstream << "]"; break; case toml_parser::ETokenCategory::token_syntax_table_open: sstream << "["; break; case toml_parser::ETokenCategory::token_syntax_table_close: sstream << "]"; break; case toml_parser::ETokenCategory::token_syntax_table_array_open: sstream << "[{"; break; case toml_parser::ETokenCategory::token_syntax_table_array_close: sstream << "}]"; break; case toml_parser::ETokenCategory::token_syntax_inline_table_open: sstream << "{"; break; case toml_parser::ETokenCategory::token_syntax_inline_table_close: sstream << "}"; break; case toml_parser::ETokenCategory::token_syntax_comma: sstream << ", "; break; case toml_parser::ETokenCategory::token_syntax_dot: sstream << "."; break; case toml_parser::ETokenCategory::token_syntax_new_line: sstream << std::endl; break; case toml_parser::ETokenCategory::token_key: sstream << rToken.StringValue(); break; case toml_parser::ETokenCategory::token_string: sstream << toml_parser::QuoteText(rToken.StringValue(), rToken.StringType() == toml_parser::ETokenStringType::literal_string ? toml_parser::EQuoteRequest::quoted_text : toml_parser::EQuoteRequest::literal_text); break; case toml_parser::ETokenCategory::token_integer: sstream << rToken.IntegerValue(); break; case toml_parser::ETokenCategory::token_float: sstream << rToken.FloatValue(); break; case toml_parser::ETokenCategory::token_boolean: sstream << (rToken.BooleanValue() ? "true" : "false"); break; case toml_parser::ETokenCategory::token_time_local: sstream << "