/* * Copyright (c) 2023, Sam Atkins * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace CMake::Cache { struct Token { enum class Type { Comment, HelpText, Key, Colon, Type, Equals, Value, Garbage, }; Type type; StringView value; Position start; Position end; }; static constexpr StringView to_string(Token::Type type) { switch (type) { case Token::Type::Comment: return "Comment"sv; case Token::Type::HelpText: return "HelpText"sv; case Token::Type::Key: return "Key"sv; case Token::Type::Colon: return "Colon"sv; case Token::Type::Type: return "Type"sv; case Token::Type::Equals: return "Equals"sv; case Token::Type::Value: return "Value"sv; case Token::Type::Garbage: return "Garbage"sv; } VERIFY_NOT_REACHED(); } }