public static ExpressionSyntax Transpile(this Syntax.ArrayReferenceSyntax arrayReferenceNode)
        {
            _ = arrayReferenceNode ?? throw new ArgumentNullException(nameof(arrayReferenceNode));

            return(SyntaxFactory.ElementAccessExpression(
                       arrayReferenceNode.IdentifierNameNode.TranspileExpression())
                   .AddArgumentListArguments(
                       SyntaxFactory.Argument(
                           arrayReferenceNode.IndexExpressionNode.Transpile())));
        }
        public static void Transpile(this Syntax.ArrayReferenceSyntax arrayReferenceNode, ref StringBuilder sb, out bool isString)
        {
            _ = arrayReferenceNode ?? throw new ArgumentNullException(nameof(arrayReferenceNode));

            isString = TranspileStringConcatenationHandler.IsStringVariable(arrayReferenceNode.IdentifierNameNode.ValueText);

            arrayReferenceNode.IdentifierNameNode.TranspileExpression(ref sb);
            sb.Append('[');
            arrayReferenceNode.IndexExpressionNode.Transpile(ref sb);
            sb.Append(']');
        }