public void Visit(Assignment instruction)
        {
            if (instruction.Left is VariableExpression variable)
            {
                WrittenVariables.Add(variable.Name);
            }
            else if (instruction.Left is ArrayExpression array)
            {
                ReadVariables.Add(array.Name);
                WrittenArrays.Add(array);
                _VisitItems(array.Accessors);
            }

            instruction.Right.Accept(this);
        }
 public void Visit(ArrayExpression expression)
 {
     ReadVariables.Add(expression.Name);
     ReadArrays.Add(expression);
     _VisitItems(expression.Accessors);
 }
 public void Visit(VariableExpression expression)
 {
     ReadVariables.Add(expression.Name);
 }