Beispiel #1
0
        public string DecodePattern(Pattern pattern)
        {
            var sb = new StringBuilder();

            foreach (var matcher in pattern)
            {
                switch (matcher)
                {
                case Lingon lingon:
                    if (Lingon.DefaultSet.Contains(lingon))
                    {
                        sb.Append(lingon.Symbol);
                    }
                    else
                    {
                        sb.Append(Lingons.First(pair => pair.Value.Equals(lingon)).Key);
                    }
                    break;

                case Category cat:
                    sb.Append(Categories.First(pair => pair.Value.Equals(cat)).Key);
                    break;

                case NonceSet nonceSet:
                    sb.Append($"[{DecodePattern(nonceSet.Set.ToPattern())}]");
                    break;
                }
            }

            return(sb.ToString());
        }
Beispiel #2
0
        public string DecodeWord(Sequence sequence)
        {
            var sb = new StringBuilder();

            foreach (var lingon in sequence)
            {
                if (Lingon.DefaultSet.Contains(lingon))
                {
                    sb.Append(lingon.Symbol);
                }
                else
                {
                    sb.Append(Lingons.First(pair => pair.Value.Equals(lingon)).Key);
                }
            }

            return(sb.ToString());
        }