https://github.com/Kitware/CMake
Raw File
Tip revision: b3ebb8f4344d4a3665d7be45a34773fecb94c67f authored by Brad King on 13 May 2014, 13:34:03 UTC
CMake 3.0.0-rc5
Tip revision: b3ebb8f
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