From 459c01d52099e73d3487b5270b2f85db9179729b Mon Sep 17 00:00:00 2001 From: Alex Turbov Date: Mon, 22 Jul 2024 20:08:54 +0400 Subject: [PATCH] cmListFileCache: move cmListFileParser into an anonymous namespace Avoid the `cmListFileParser` methods intermixed with the `cmListFile` methods. --- Source/cmListFileCache.cxx | 114 +++++++++++++++++++------------------ 1 file changed, 58 insertions(+), 56 deletions(-) diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index 97f5de9697..c13542d9de 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -17,6 +17,30 @@ #include "cmMessenger.h" #include "cmSystemTools.h" +namespace { + +enum class NestingStateEnum +{ + If, + Else, + While, + Foreach, + Function, + Macro, + Block +}; + +struct NestingState +{ + NestingStateEnum State; + cmListFileContext Context; +}; + +bool TopIs(std::vector& stack, NestingStateEnum state) +{ + return !stack.empty() && stack.back().State == state; +} + struct cmListFileParser { cmListFileParser(cmListFile* lf, cmListFileBacktrace lfbt, @@ -181,38 +205,6 @@ bool cmListFileParser::Parse() return true; } -bool cmListFile::ParseFile(const char* filename, cmMessenger* messenger, - cmListFileBacktrace const& lfbt) -{ - if (!cmSystemTools::FileExists(filename) || - cmSystemTools::FileIsDirectory(filename)) { - return false; - } - - bool parseError = false; - - { - cmListFileParser parser(this, lfbt, messenger); - parseError = !parser.ParseFile(filename); - } - - return !parseError; -} - -bool cmListFile::ParseString(const char* str, const char* virtual_filename, - cmMessenger* messenger, - const cmListFileBacktrace& lfbt) -{ - bool parseError = false; - - { - cmListFileParser parser(this, lfbt, messenger); - parseError = !parser.ParseString(str, virtual_filename); - } - - return !parseError; -} - bool cmListFileParser::ParseFunction(const char* name, long line) { // Ininitialize a new function call. @@ -338,30 +330,6 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token, return true; } -namespace { -enum class NestingStateEnum -{ - If, - Else, - While, - Foreach, - Function, - Macro, - Block -}; - -struct NestingState -{ - NestingStateEnum State; - cmListFileContext Context; -}; - -bool TopIs(std::vector& stack, NestingStateEnum state) -{ - return !stack.empty() && stack.back().State == state; -} -} - cm::optional cmListFileParser::CheckNesting() const { std::vector stack; @@ -455,6 +423,40 @@ cm::optional cmListFileParser::CheckNesting() const return cm::nullopt; } +} // anonymous namespace + +bool cmListFile::ParseFile(const char* filename, cmMessenger* messenger, + cmListFileBacktrace const& lfbt) +{ + if (!cmSystemTools::FileExists(filename) || + cmSystemTools::FileIsDirectory(filename)) { + return false; + } + + bool parseError = false; + + { + cmListFileParser parser(this, lfbt, messenger); + parseError = !parser.ParseFile(filename); + } + + return !parseError; +} + +bool cmListFile::ParseString(const char* str, const char* virtual_filename, + cmMessenger* messenger, + const cmListFileBacktrace& lfbt) +{ + bool parseError = false; + + { + cmListFileParser parser(this, lfbt, messenger); + parseError = !parser.ParseString(str, virtual_filename); + } + + return !parseError; +} + #include "cmConstStack.tcc" template class cmConstStack;