https://github.com/Kitware/CMake
Raw File
Tip revision: bd6389f7bce6d69a75e6f84245834e19b24cc03f authored by Brad King on 11 February 2015, 15:23:38 UTC
CMake 3.1.3
Tip revision: bd6389f
cmGeneratorExpressionParser.h
/*============================================================================
  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
back to top