Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 public override int GetHashCode()
 {
     return
         (Symbol.GetHashCode() ^
          CurrentRequiredStates.GetSequenceHashCode() ^
          CurrentOptionalStates.GetSequenceHashCode() ^
          NextStates.GetSequenceHashCode());
 }
Esempio n. 3
0
        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);
        }