cmListFileCache: convert cmListFileParser from struct to class

This commit is contained in:
Alex Turbov 2024-07-22 21:07:20 +04:00 committed by Brad King
parent 1bf4900df7
commit 63f8134744

View File

@ -41,22 +41,35 @@ bool TopIs(std::vector<NestingState>& 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<cmListFileContext> 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<cmListFileArgument> FunctionArguments;
enum
{
SeparationOkay,
SeparationWarning,
SeparationError
} Separation;
};
cmListFileParser::cmListFileParser(cmListFile* lf, cmListFileBacktrace lfbt,