private IExpressionStatementSyntax ParseUnsafeStatement() { var unsafeKeyword = Tokens.Expect <IUnsafeKeywordToken>(); var isBlock = Tokens.Current is IOpenBraceToken; var expression = isBlock ? ParseBlock() : ParseParenthesizedExpression(); var span = TextSpan.Covering(unsafeKeyword, expression.Span); var unsafeExpression = new UnsafeExpressionSyntax(span, expression); if (!isBlock) { var semicolon = Tokens.Expect <ISemicolonToken>(); span = TextSpan.Covering(span, semicolon); } return(new ExpressionStatementSyntax(span, unsafeExpression)); }
public virtual void VisitUnsafeExpression(UnsafeExpressionSyntax unsafeExpression, A args) { VisitExpression(unsafeExpression.Expression, args); }