1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmGeneratorExpressionLexer_h
- #define cmGeneratorExpressionLexer_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <stddef.h>
- #include <string>
- #include <vector>
- struct cmGeneratorExpressionToken
- {
- cmGeneratorExpressionToken(unsigned type, const char* c, size_t l)
- : TokenType(type)
- , Content(c)
- , Length(l)
- {
- }
- enum
- {
- Text,
- BeginExpression,
- EndExpression,
- ColonSeparator,
- CommaSeparator
- };
- unsigned TokenType;
- const char* Content;
- size_t Length;
- };
- /** \class cmGeneratorExpressionLexer
- *
- */
- class cmGeneratorExpressionLexer
- {
- public:
- cmGeneratorExpressionLexer();
- std::vector<cmGeneratorExpressionToken> Tokenize(const std::string& input);
- bool GetSawGeneratorExpression() const
- {
- return this->SawGeneratorExpression;
- }
- private:
- bool SawBeginExpression;
- bool SawGeneratorExpression;
- };
- #endif
|