Пример #1
0
        private Errors CheckPrasaPoorva2(YatiPrasaChecker2 Y, Prasa p1, Prasa p2)
        {
            char SUNNA   = 'ం';
            char VISARGA = 'ః';

            if (StringPlus.CharAt(p1.Poorva, p1.Poorva.Length - 1) == SUNNA)
            {
                if (StringPlus.CharAt(p2.Poorva, p2.Poorva.Length - 1) == SUNNA)
                {
                    Y.LastName = (Y.LastName == null) ? "బిందుపూర్వక ప్రాసము" : Y.LastName + "(విసర్గపూర్వక ప్రాసము)";
                    return(null);
                }
                else
                {
                    Errors E = new Errors();
                    E.Actual   = p1.Value;
                    E.Expected = "'" + SUNNA + "'  తో కూడిన అక్షరం";
                    E.Mismatch = p1.IsAnthyaPrasa ? Mismatch.AnthyaPrasaPoorvaBindu : Mismatch.PrasaPoorvaBindu;
                    return(E);
                }
            }
            else
            {
                if (StringPlus.CharAt(p1.Poorva, p1.Poorva.Length - 1) == VISARGA)
                {
                    if (StringPlus.CharAt(p2.Poorva, p2.Poorva.Length - 1) == VISARGA)
                    {
                        Y.LastName = (Y.LastName == null) ? "విసర్గపూర్వక ప్రాసము" : Y.LastName + "(విసర్గపూర్వక ప్రాసము)";
                        return(null);
                    }
                    else
                    {
                        Errors E = new Errors();
                        E.Actual   = p1.Value;
                        E.Expected = "'" + VISARGA + "'  తో కూడిన అక్షరం";
                        E.Mismatch = p1.IsAnthyaPrasa ? Mismatch.AnthyaPrasaPoorvaVisarga : Mismatch.PrasaPoorvaVisarga;
                        return(E);
                    }
                }
            }
            return(null);
        }
Пример #2
0
        public string CheckPrasa(string s1, string s2, bool allowSantiPrasa)
        {
            YatiPrasaChecker2 Y = new YatiPrasaChecker2();

            s1 = s1.Replace(" ", "");
            s2 = s2.Replace(" ", "");

            Y.AllowSantiPrasa = allowSantiPrasa;
            Y.SoundexSandhi   = false;
            GanaVibhajana G1 = new GanaVibhajana(s1, lang);
            GanaVibhajana G2 = new GanaVibhajana(s2, lang);

            if (G1.GWiseString.Count == 0)
            {
                return("<span class='gName'>Group-1 is not valid</span>");
            }
            if (G2.GWiseString.Count == 0)
            {
                return("<span class='gName'>Group-2 is not valid</span>");
            }

            bool f = false;

            if (G1.GWiseString.Count > 1 && G2.GWiseString.Count > 1)
            {
                p1 = G1.GWiseString[0] + "<u>" + G1.GWiseString[1] + "</u>";
                p2 = G2.GWiseString[0] + "<u>" + G2.GWiseString[1] + "</u>";

                Prasa P1 = new Prasa(StringPlus.CharAt(G1.SymbolsStream, 0).ToString(), false, G1.GWiseString[1], G1.GWiseString[0]);
                Prasa P2 = new Prasa(StringPlus.CharAt(G2.SymbolsStream, 0).ToString(), false, G2.GWiseString[1], G2.GWiseString[0]);

                f = Y.IsPrasaMatched3(P1, P2);

                if (f && Y.NoMoreChecks)
                {
                    return(Success(p1, p2, PRASA, Y.LastName));
                }

                if (f)
                {
                    if (P1.Symbol == Symbols.LAGHUVU)
                    {
                        //Nothing to do..
                    }
                    else
                    {
                        f = (P1.Symbol == P2.Symbol);
                    }
                }


                if (f)
                {
                    Errors E = CheckPrasaPoorva2(Y, P1, P2);
                    if (E == null)
                    {
                        return(Success(p1, p2, PRASA, Y.LastName));
                    }
                    return(FailWith(p1, p2, E, PRASA));
                }
                else
                {
                    return(FailWith(p1, p2, null, PRASA));
                }
            }
            else
            {
                p1 = G1.GWiseString[0];
                p2 = G2.GWiseString[0];
                f  = Y.IsPrasaMatched(p1, p2);
                if (f)
                {
                    return(Success(p1, p2, PRASA, Y.LastName));
                }
            }
            return(FailWith(p1, p2, null, PRASA));
        }