| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- /*============================================================================
- CMake - Cross Platform Makefile Generator
- Copyright 2012 Stephen Kelly <[email protected]>
- Distributed under the OSI-approved BSD License (the "License");
- see accompanying file Copyright.txt for details.
- This software is distributed WITHOUT ANY WARRANTY; without even the
- implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the License for more information.
- ============================================================================*/
- #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
|