コード例 #1
0
ファイル: Verb.cs プロジェクト: sasan-j/virastyar-code
        private string printStem(string before, string after)
        {
            string stem = "";

            switch (this.getStemTime())
            {
            case STEM_TIME.MAZI:
                stem = this.entry.pastStem;
                break;

            case STEM_TIME.MOZARE:
                stem = this.entry.presentStem;
                break;

            default:
                stem = "";
                break;
            }

            /****** Transform Stem ******************************/

            bool stemStartsWithA = (entry.StartingAlpha(getStemTime()) == STEM_ALPHA.A_X);
            bool No_Space_Before = (before.Length > 0 && before[before.Length - 1] != '‌' && before[before.Length - 1] != ' ');
            bool stemEndsWithA   = (entry.EndingAlpha(getStemTime()) == STEM_ALPHA.X_A);
            bool No_Space_After  = (after.Length > 0 && after[0] != '‌' && after[0] != ' ');

            if (stemStartsWithA)
            {
                if (No_Space_Before)
                {
                    if (stem.StartsWith("آ"))
                    {
                        stem = "یا" + stem.Substring(1);
                    }
                    else
                    {
                        stem = "ی" + stem.Substring(1);
                    }
                }
            }

            if (stemEndsWithA)
            {
                if (No_Space_After)
                {
                    stem += "ی";
                }
            }

            return(stem);
        }