コード例 #1
0
ファイル: MetaTransition.cs プロジェクト: apodavalov/FLaG
        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));
        }
コード例 #2
0
ファイル: MetaTransition.cs プロジェクト: apodavalov/FLaG
 public override int GetHashCode()
 {
     return
         (Symbol.GetHashCode() ^
          CurrentRequiredStates.GetSequenceHashCode() ^
          CurrentOptionalStates.GetSequenceHashCode() ^
          NextStates.GetSequenceHashCode());
 }
コード例 #3
0
ファイル: MetaTransition.cs プロジェクト: apodavalov/FLaG
        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);
        }