コード例 #1
0
            StatementSyntax ConvertSingleExpression(CSS.ExpressionSyntax node)
            {
                var exprNode = node.Accept(nodesVisitor);

                if (!(exprNode is StatementSyntax))
                {
                    exprNode = SyntaxFactory.ExpressionStatement((ExpressionSyntax)exprNode);
                }

                return((StatementSyntax)exprNode);
            }
コード例 #2
0
        public ExpressionSyntax ReduceArrayUpperBoundExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax expr)
        {
            var constant = _semanticModel.GetConstantValue(expr);

            if (constant.HasValue && constant.Value is int)
            {
                return(SyntaxFactory.NumericLiteralExpression(SyntaxFactory.Literal((int)constant.Value - 1)));
            }

            return(SyntaxFactory.BinaryExpression(
                       SyntaxKind.SubtractExpression,
                       (ExpressionSyntax)expr.Accept(_nodesVisitor), SyntaxFactory.Token(SyntaxKind.MinusToken), SyntaxFactory.NumericLiteralExpression(SyntaxFactory.Literal(1))));
        }
コード例 #3
0
        private SyntaxList <StatementSyntax> CreateForEachStatement(VisualBasicSyntaxNode vbVariable,
                                                                    CSS.ExpressionSyntax csExpression, CSS.StatementSyntax csStatement, params StatementSyntax[] prefixExtraVbStatements)
        {
            var expression = (ExpressionSyntax)csExpression.Accept(_nodesVisitor);
            var stmt       = ConvertBlock(csStatement, prefixExtraVbStatements);
            var block      = SyntaxFactory.ForEachBlock(
                SyntaxFactory.ForEachStatement(vbVariable, expression),
                stmt,
                SyntaxFactory.NextStatement()
                );

            return(SyntaxFactory.SingletonList <StatementSyntax>(block));
        }
コード例 #4
0
        string GetPossibleEventName(CSS.ExpressionSyntax expression)
        {
            var ident = expression as CSS.IdentifierNameSyntax;

            if (ident != null)
            {
                return(ident.Identifier.Text);
            }
            var fre = expression as CSS.MemberAccessExpressionSyntax;

            if (fre != null && fre.Expression.IsKind(CS.SyntaxKind.ThisExpression))
            {
                return(fre.Name.Identifier.Text);
            }
            return(null);
        }
コード例 #5
0
 public VisualBasicSyntaxNode ConvertTopLevelExpression(Microsoft.CodeAnalysis.CSharp.Syntax.ExpressionSyntax topLevelExpression)
 {
     return(topLevelExpression.Accept(_nodesVisitor));
 }