コード例 #1
0
        public SyntaxList <StatementSyntax> InsertGeneratedClassMemberDeclarations(
            SyntaxList <StatementSyntax> convertedStatements, CS.CSharpSyntaxNode originaNode, bool isModule)
        {
            var descendantNodes = originaNode.DescendantNodes().ToList();
            var propertyBlocks  = descendantNodes.OfType <CSS.PropertyDeclarationSyntax>()
                                  .Where(e => e.AccessorList != null && e.AccessorList.Accessors.Any(a => a.Body == null && a.ExpressionBody == null && a.Modifiers.ContainsDeclaredVisibility()))
                                  .ToList();

            return(convertedStatements.InsertRange(0, ConvertToDeclarationStatement(propertyBlocks, isModule)));
        }
コード例 #2
0
        private SyntaxList <StatementSyntax> InsertRequiredDeclarations(
            SyntaxList <StatementSyntax> convertedStatements, CS.CSharpSyntaxNode originaNode)
        {
            var descendantNodes        = originaNode.DescendantNodes().ToList();
            var declarationExpressions = descendantNodes.OfType <CSS.DeclarationExpressionSyntax>()
                                         .Where(e => !e.Parent.IsKind(CSSyntaxKind.ForEachVariableStatement)) //Handled inline for tuple loop
                                         .ToList();
            var isPatternExpressions = descendantNodes.OfType <CSS.IsPatternExpressionSyntax>().ToList();

            if (declarationExpressions.Any() || isPatternExpressions.Any())
            {
                convertedStatements = convertedStatements.InsertRange(0, ConvertToDeclarationStatement(declarationExpressions, isPatternExpressions));
            }

            return(convertedStatements);
        }