From 63f8134744505373c4c92b18f6177ad12ac45ea7 Mon Sep 17 00:00:00 2001 From: Alex Turbov Date: Mon, 22 Jul 2024 21:07:20 +0400 Subject: [PATCH] cmListFileCache: convert cmListFileParser from struct to class --- Source/cmListFileCache.cxx | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index a88cd0970f..a14549b6cf 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -41,22 +41,35 @@ bool TopIs(std::vector& stack, NestingStateEnum state) return !stack.empty() && stack.back().State == state; } -struct cmListFileParser +class cmListFileParser { +public: cmListFileParser(cmListFile* lf, cmListFileBacktrace lfbt, cmMessenger* messenger); ~cmListFileParser(); cmListFileParser(const cmListFileParser&) = delete; cmListFileParser& operator=(const cmListFileParser&) = delete; - void IssueFileOpenError(std::string const& text) const; - void IssueError(std::string const& text) const; + bool ParseFile(const char* filename); bool ParseString(const char* str, const char* virtual_filename); + +private: bool Parse(); bool ParseFunction(const char* name, long line); bool AddArgument(cmListFileLexer_Token* token, cmListFileArgument::Delimiter delim); + void IssueFileOpenError(std::string const& text) const; + void IssueError(std::string const& text) const; + cm::optional CheckNesting() const; + + enum + { + SeparationOkay, + SeparationWarning, + SeparationError + } Separation; + cmListFile* ListFile; cmListFileBacktrace Backtrace; cmMessenger* Messenger; @@ -66,12 +79,6 @@ struct cmListFileParser long FunctionLine; long FunctionLineEnd; std::vector FunctionArguments; - enum - { - SeparationOkay, - SeparationWarning, - SeparationError - } Separation; }; cmListFileParser::cmListFileParser(cmListFile* lf, cmListFileBacktrace lfbt,