diff options
Diffstat (limited to 'Source/cmGeneratorExpressionParser.h')
-rw-r--r-- | Source/cmGeneratorExpressionParser.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Source/cmGeneratorExpressionParser.h b/Source/cmGeneratorExpressionParser.h new file mode 100644 index 0000000..e663496 --- /dev/null +++ b/Source/cmGeneratorExpressionParser.h @@ -0,0 +1,30 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef cmGeneratorExpressionParser_h +#define cmGeneratorExpressionParser_h + +#include "cmConfigure.h" // IWYU pragma: keep + +#include <vector> + +#include "cmGeneratorExpressionLexer.h" + +struct cmGeneratorExpressionEvaluator; + +struct cmGeneratorExpressionParser +{ + cmGeneratorExpressionParser(std::vector<cmGeneratorExpressionToken> tokens); + + void Parse(std::vector<cmGeneratorExpressionEvaluator*>& result); + +private: + void ParseContent(std::vector<cmGeneratorExpressionEvaluator*>&); + void ParseGeneratorExpression(std::vector<cmGeneratorExpressionEvaluator*>&); + +private: + std::vector<cmGeneratorExpressionToken>::const_iterator it; + const std::vector<cmGeneratorExpressionToken> Tokens; + unsigned int NestingLevel; +}; + +#endif |