public static SyntaxNode ArrayCreationExpression(this SyntaxGenerator generator, SyntaxNode type, IEnumerable <SyntaxNode> sizeExpression) { if (generator.NullLiteralExpression() is CS.ExpressionSyntax) { CS.TypeSyntax typeSyntax = type as CS.TypeSyntax; if (typeSyntax == null) { throw new ArgumentException($"Invalid syntax node type; Expected {typeof(CS.TypeSyntax).FullName}.", "type"); } IEnumerable <CS.ExpressionSyntax> csSizeExpressions = sizeExpression.Select(exp => exp as CS.ExpressionSyntax); if (csSizeExpressions.Any(exp => exp == null)) { throw new ArgumentException($"Invalid syntax node type; Expected {typeof(CS.ExpressionSyntax).FullName}.", "sizeExpression"); } return(CSSF.ArrayCreationExpression( CSSF.ArrayType( typeSyntax, CSSF.SingletonList( CSSF.ArrayRankSpecifier( CSSF.SeparatedList(csSizeExpressions) ) ) ) )); } else { throw new ArgumentException("Not a CSharp ExpressionSyntax"); } }
public override SyntaxList <CSSyntax.StatementSyntax> DefaultVisit(SyntaxNode node) { try { return(ConvertWithTrivia(node)); } catch (Exception e) { return(SyntaxFactory.SingletonList(CreateErrorCommentStatement(node, e))); } }
public override SyntaxList <CSSyntax.StatementSyntax> DefaultVisit(SyntaxNode node) { try { return(ConvertWithTrivia(node)); } catch (Exception e) { var withTrailingErrorComment = SyntaxFactory.EmptyStatement() .WithCsTrailingErrorComment <CSSyntax.StatementSyntax>((VisualBasicSyntaxNode)node, e); return(SyntaxFactory.SingletonList(withTrailingErrorComment)); } }
public async Task <SyntaxList <CSSyntax.StatementSyntax> > DefaultVisitInnerAsync(SyntaxNode node) { try { var converted = await _wrappedVisitor.Visit(node); return(converted.WithVbSourceMappingFrom(node)); } catch (Exception e) { var withTrailingErrorComment = SyntaxFactory.EmptyStatement() .WithCsTrailingErrorComment <CSSyntax.StatementSyntax>((VisualBasicSyntaxNode)node, e); return(SyntaxFactory.SingletonList(withTrailingErrorComment)); } }