private bool ScanPPPrimaryExpression(ref char c)
{
bool result = true;
if (c == '(')
{
result = this.ScanPPExpression(ref c);
if (c != ')')
this.HandleError(Error.ExpectedRightParenthesis);
c = this.SkipBlanks();
return result;
}
this.startPos = this.endPos - 1;
this.ScanIdentifier();
if (this.endPos > this.startPos)
{
string id = this.GetIdentifierString();
string sym = (string)this.PreprocessorDefinedSymbols[id];
if (id == null || id.Length == 0 || !this.IsIdentifierStartChar(id[0]))
this.HandleError(Error.ExpectedIdentifier);
result = sym != null;
c = this.SkipBlanks();
}
else
this.HandleError(Error.ExpectedIdentifier);
return result;
}