@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;

    ComparisonExpression other = (ComparisonExpression) o;

    if (left != null ? !left.equals(other.left) : other.left != null) return false;
    if (operator != null ? !operator.equals(other.operator) : other.operator != null) return false;
    if (right != null ? !right.equals(other.right) : other.right != null) return false;

    return true;
  }
 public boolean equals(Object obj) {
   if (!super.equals(obj)) {
     return false;
   }
   ArrayAccessValue casted = (ArrayAccessValue) obj;
   return _index.equals(casted._index);
 }