diff options
author | Brad King <brad.king@kitware.com> | 2012-09-19 12:28:16 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2012-09-19 12:28:16 (GMT) |
commit | d407dcdbc824688510837ec85bb2e3c85cf096bd (patch) | |
tree | 6368e164279647c27ac80a8d49835eed45f5e575 /Source/cmGeneratorExpressionParser.h | |
parent | 281654b5d6e93f6e91bbf0e7091f8ffea40f79d5 (diff) | |
parent | 91011bd217726f73e362b10d77a6638977d6a781 (diff) | |
download | CMake-d407dcdbc824688510837ec85bb2e3c85cf096bd.zip CMake-d407dcdbc824688510837ec85bb2e3c85cf096bd.tar.gz CMake-d407dcdbc824688510837ec85bb2e3c85cf096bd.tar.bz2 |
Merge topic 'generator-expression-refactor'
91011bd cmGeneratorExpression: Port users to two-stage processing
f1eacf0 cmGeneratorExpression: Re-write for multi-stage evaluation
Diffstat (limited to 'Source/cmGeneratorExpressionParser.h')
-rw-r--r-- | Source/cmGeneratorExpressionParser.h | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/Source/cmGeneratorExpressionParser.h b/Source/cmGeneratorExpressionParser.h new file mode 100644 index 0000000..28f1441 --- /dev/null +++ b/Source/cmGeneratorExpressionParser.h @@ -0,0 +1,45 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2012 Stephen Kelly <steveire@gmail.com> + + 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 cmGeneratorExpressionParser_h +#define cmGeneratorExpressionParser_h + +#include "cmGeneratorExpressionLexer.h" + +#include <set> +#include <vector> + +#include "cmListFileCache.h" + +class cmMakefile; +class cmTarget; +struct cmGeneratorExpressionEvaluator; + +//---------------------------------------------------------------------------- +struct cmGeneratorExpressionParser +{ + cmGeneratorExpressionParser( + const 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 |