IfStatementSyntax GenerateIfNameEqualsStatement()
 {
     return(SF.IfStatement(
                condition: SF.InvocationExpression(
                    expression: Basics.SimpleMemberAccess(Basics.TryParseBsonNameIdentifier, SF.IdentifierName("SequenceEqual")),
                    argumentList: Basics.Arguments(Basics.GenerateReadOnlySpanNameIdentifier(ClassSymbol, MemberDecl))),
                statement: SF.Block(GenerateIfBsonTypeNull(),
                                    GenerateMainOperationBlock(),
                                    SF.ContinueStatement())
                ));
 }
 protected virtual IfStatementSyntax GenerateIfBsonTypeNull()
 {
     return(SF.IfStatement(
                condition: SF.BinaryExpression(
                    SyntaxKind.EqualsExpression,
                    Basics.TryParseBsonTypeIdentifier,
                    SF.Token(SyntaxKind.EqualsEqualsToken),
                    Basics.NumberLiteral(10)
                    ),
                statement: SF.Block(
                    SF.ExpressionStatement(
                        SF.AssignmentExpression(
                            kind: SyntaxKind.SimpleAssignmentExpression,
                            left: Basics.SimpleMemberAccess(Basics.TryParseOutVariableIdentifier, Basics.IdentifierName(MemberDecl.DeclSymbol)),
                            right: SF.LiteralExpression(SyntaxKind.DefaultLiteralExpression))
                        ),
                    SF.ContinueStatement())
                ));
 }
 public override SyntaxList <StatementSyntax> VisitContinueStatement(VBSyntax.ContinueStatementSyntax node)
 {
     return(SingleStatement(SyntaxFactory.ContinueStatement()));
 }