コード例 #1
0
        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");
            }
        }
コード例 #2
0
 public override SyntaxList <CSSyntax.StatementSyntax> DefaultVisit(SyntaxNode node)
 {
     try {
         return(ConvertWithTrivia(node));
     } catch (Exception e) {
         return(SyntaxFactory.SingletonList(CreateErrorCommentStatement(node, e)));
     }
 }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
        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));
            }
        }