public int CompareTo(MetaTransition other) { if (other == null) { return(1); } int result = Symbol.CompareTo(other.Symbol); if (result != 0) { return(result); } result = CurrentOptionalStates.SequenceCompare(other.CurrentOptionalStates); if (result != 0) { return(result); } result = CurrentRequiredStates.SequenceCompare(other.CurrentRequiredStates); if (result != 0) { return(result); } return(NextStates.SequenceCompare(other.NextStates)); }
public override int GetHashCode() { return (Symbol.GetHashCode() ^ CurrentRequiredStates.GetSequenceHashCode() ^ CurrentOptionalStates.GetSequenceHashCode() ^ NextStates.GetSequenceHashCode()); }
public bool Equals(MetaTransition other) { if (other == null) { return(false); } return (CurrentOptionalStates.SequenceEqual(other.CurrentOptionalStates) && CurrentRequiredStates.SequenceEqual(other.CurrentRequiredStates) && NextStates.SequenceEqual(other.NextStates) && Symbol == other.Symbol); }