public override bool Equals(Object other) {
if (other == null) {
return false;
}
var localOther = other as IntermediateNode;
if (localOther == null) {
return false;
}
if (StartPosition != localOther.StartPosition) {
return false;
}
if (EndPosition != localOther.EndPosition) {
return false;
}
if (_production != localOther._production) {
return false;
}
if (_currentPosition != localOther._currentPosition) {
return false;
}
return true;
}