https://github.com/Kitware/CMake
Raw File
Tip revision: 0ad0c37206fce114c4e4c31f5270b53e181ab3c2 authored by Robert Maynard on 15 May 2013, 15:17:10 UTC
CMake 2.8.11
Tip revision: 0ad0c37
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