cmGeneratorExpression: Tokenize over strings
This commit is contained in:
parent
f0ad6631ad
commit
cfc2cf9559
|
@ -33,17 +33,17 @@ cmGeneratorExpression::cmGeneratorExpression(
|
||||||
cmsys::auto_ptr<cmCompiledGeneratorExpression>
|
cmsys::auto_ptr<cmCompiledGeneratorExpression>
|
||||||
cmGeneratorExpression::Parse(std::string const& input)
|
cmGeneratorExpression::Parse(std::string const& input)
|
||||||
{
|
{
|
||||||
return this->Parse(input.c_str());
|
return cmsys::auto_ptr<cmCompiledGeneratorExpression>(
|
||||||
|
new cmCompiledGeneratorExpression(
|
||||||
|
this->Backtrace,
|
||||||
|
input));
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
cmsys::auto_ptr<cmCompiledGeneratorExpression>
|
cmsys::auto_ptr<cmCompiledGeneratorExpression>
|
||||||
cmGeneratorExpression::Parse(const char* input)
|
cmGeneratorExpression::Parse(const char* input)
|
||||||
{
|
{
|
||||||
return cmsys::auto_ptr<cmCompiledGeneratorExpression>(
|
return this->Parse(std::string(input ? input : ""));
|
||||||
new cmCompiledGeneratorExpression(
|
|
||||||
this->Backtrace,
|
|
||||||
input));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmGeneratorExpression::~cmGeneratorExpression()
|
cmGeneratorExpression::~cmGeneratorExpression()
|
||||||
|
@ -122,13 +122,13 @@ const char *cmCompiledGeneratorExpression::Evaluate(
|
||||||
|
|
||||||
cmCompiledGeneratorExpression::cmCompiledGeneratorExpression(
|
cmCompiledGeneratorExpression::cmCompiledGeneratorExpression(
|
||||||
cmListFileBacktrace const& backtrace,
|
cmListFileBacktrace const& backtrace,
|
||||||
const char *input)
|
const std::string& input)
|
||||||
: Backtrace(backtrace), Input(input ? input : ""),
|
: Backtrace(backtrace), Input(input),
|
||||||
HadContextSensitiveCondition(false)
|
HadContextSensitiveCondition(false)
|
||||||
{
|
{
|
||||||
cmGeneratorExpressionLexer l;
|
cmGeneratorExpressionLexer l;
|
||||||
std::vector<cmGeneratorExpressionToken> tokens =
|
std::vector<cmGeneratorExpressionToken> tokens =
|
||||||
l.Tokenize(this->Input.c_str());
|
l.Tokenize(this->Input);
|
||||||
this->NeedsEvaluation = l.GetSawGeneratorExpression();
|
this->NeedsEvaluation = l.GetSawGeneratorExpression();
|
||||||
|
|
||||||
if (this->NeedsEvaluation)
|
if (this->NeedsEvaluation)
|
||||||
|
|
|
@ -100,7 +100,7 @@ public:
|
||||||
|
|
||||||
~cmCompiledGeneratorExpression();
|
~cmCompiledGeneratorExpression();
|
||||||
|
|
||||||
std::string GetInput() const
|
std::string const& GetInput() const
|
||||||
{
|
{
|
||||||
return this->Input;
|
return this->Input;
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ public:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
cmCompiledGeneratorExpression(cmListFileBacktrace const& backtrace,
|
cmCompiledGeneratorExpression(cmListFileBacktrace const& backtrace,
|
||||||
const char *input);
|
const std::string& input);
|
||||||
|
|
||||||
friend class cmGeneratorExpression;
|
friend class cmGeneratorExpression;
|
||||||
|
|
||||||
|
|
|
@ -32,13 +32,11 @@ static void InsertText(const char *upto, const char *c,
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
std::vector<cmGeneratorExpressionToken>
|
std::vector<cmGeneratorExpressionToken>
|
||||||
cmGeneratorExpressionLexer::Tokenize(const char *input)
|
cmGeneratorExpressionLexer::Tokenize(const std::string& input)
|
||||||
{
|
{
|
||||||
std::vector<cmGeneratorExpressionToken> result;
|
std::vector<cmGeneratorExpressionToken> result;
|
||||||
if (!input)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
const char *c = input;
|
const char *c = input.c_str();
|
||||||
const char *upto = c;
|
const char *upto = c;
|
||||||
|
|
||||||
for ( ; *c; ++c)
|
for ( ; *c; ++c)
|
||||||
|
|
|
@ -43,7 +43,7 @@ class cmGeneratorExpressionLexer
|
||||||
public:
|
public:
|
||||||
cmGeneratorExpressionLexer();
|
cmGeneratorExpressionLexer();
|
||||||
|
|
||||||
std::vector<cmGeneratorExpressionToken> Tokenize(const char *input);
|
std::vector<cmGeneratorExpressionToken> Tokenize(const std::string& input);
|
||||||
|
|
||||||
bool GetSawGeneratorExpression() const
|
bool GetSawGeneratorExpression() const
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue