本文整理汇总了C#中ArrayBuilder.?.Add方法的典型用法代码示例。如果您正苦于以下问题:C# ArrayBuilder.?.Add方法的具体用法?C# ArrayBuilder.?.Add怎么用?C# ArrayBuilder.?.Add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ArrayBuilder
的用法示例。
在下文中一共展示了ArrayBuilder.?.Add方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ScanInterpolatedStringLiteralContents
private void ScanInterpolatedStringLiteralContents(ArrayBuilder<Interpolation> interpolations)
{
while (true)
{
if (IsAtEnd())
{
// error: end of line before end of string
return;
}
switch (lexer.TextWindow.PeekChar())
{
case '"':
if (isVerbatim && lexer.TextWindow.PeekChar(1) == '"')
{
lexer.TextWindow.AdvanceChar(); // "
lexer.TextWindow.AdvanceChar(); // "
continue;
}
// found the end of the string
return;
case '}':
var pos = lexer.TextWindow.Position;
lexer.TextWindow.AdvanceChar(); // }
// ensure any } characters are doubled up
if (lexer.TextWindow.PeekChar() == '}')
{
lexer.TextWindow.AdvanceChar(); // }
}
else if (error == null)
{
error = lexer.MakeError(pos, 1, ErrorCode.ERR_UnescapedCurly, "}");
}
continue;
case '{':
if (lexer.TextWindow.PeekChar(1) == '{')
{
lexer.TextWindow.AdvanceChar();
lexer.TextWindow.AdvanceChar();
}
else
{
int openBracePosition = lexer.TextWindow.Position;
lexer.TextWindow.AdvanceChar();
int colonPosition = 0;
ScanInterpolatedStringLiteralHoleBalancedText('}', true, ref colonPosition);
int closeBracePosition = lexer.TextWindow.Position;
bool closeBraceMissing = false;
if (lexer.TextWindow.PeekChar() == '}')
{
lexer.TextWindow.AdvanceChar();
}
else
{
closeBraceMissing = true;
if (error == null)
{
error = lexer.MakeError(openBracePosition - 1, 2, ErrorCode.ERR_UnclosedExpressionHole);
}
}
interpolations?.Add(new Interpolation(openBracePosition, colonPosition, closeBracePosition, closeBraceMissing));
}
continue;
case '\\':
if (isVerbatim)
{
goto default;
}
var escapeStart = lexer.TextWindow.Position;
char c2;
char ch = lexer.ScanEscapeSequence(out c2);
if ((ch == '{' || ch == '}') && error == null)
{
error = lexer.MakeError(escapeStart, lexer.TextWindow.Position - escapeStart, ErrorCode.ERR_EscapedCurly, ch);
}
continue;
default:
// found some other character in the string portion
lexer.TextWindow.AdvanceChar();
continue;
}
}
}