本文整理汇总了C++中SourceCode::NextChar方法的典型用法代码示例。如果您正苦于以下问题:C++ SourceCode::NextChar方法的具体用法?C++ SourceCode::NextChar怎么用?C++ SourceCode::NextChar使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SourceCode
的用法示例。
在下文中一共展示了SourceCode::NextChar方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnLiterals
StringType OnLiterals(SourceCode& sourceCode,char endChar)
{
StringType res;
res += endChar;
while (true)
{
if (sourceCode.AdvanceIfMatch('\\'))
{
res += '\\';
res += sourceCode.NextChar();
}
else if (sourceCode.AdvanceIfMatch(endChar))
{
res += endChar;
return std::move(res);
}
else
{
auto c = sourceCode.NextChar();
if (c == InvalidCharacter)
break;
res += c;
}
}
std::string exp;
(exp += endChar) += " lost";
throw SyntaxError(exp.c_str());
}
示例2: Filter
StringType Filter(SourceCode& sourceCode)
{
StringType res;
while (true)
{
if (sourceCode.AdvanceIfMatch('\"'))
{
res += OnLiterals(sourceCode,'\"');
}
else if (sourceCode.AdvanceIfMatch('\''))
{
res += OnLiterals(sourceCode,'\'');
}
else if (sourceCode.AdvanceIfMatch("/*"s))
{
OnMultiLine(sourceCode);
}
else if (sourceCode.AdvanceIfMatch("//"s))
{
OnSingleLine(sourceCode);
}
else
{
auto c = sourceCode.NextChar();
if (c == InvalidCharacter)
break;
res += c;
}
}
return res;
}