Exemple #1
0
        public void Go(bool withExamples, RuleLanguage lang, string langCode)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("var ChandamAPI={};");
            sb.AppendLine("ChandamAPI.Version = '" + version + "';");

            sb.AppendLine("var Config = {};");
            sb.AppendLine("Config.Mode = 0;");
            sb.AppendLine("Config.Language = " + (int)lang + ";");


            sb.AppendLine("Config.ExternalRules=" + new ExportRules().ToJSON(false, lang, langCode));

            if (withExamples)
            {
                sb.AppendLine("Config.ExternalExamples=" + new ExportRules().OnlySamplesJSON(lang, langCode));
                sb.AppendLine(new ExportRules().AddStringArray2("Config.Samples", new MyFavPoems().Poems));
            }


            string s = sb.ToString().Replace(",},", "},");

            string fileName = (withExamples ? "config." + langCode + ".examples.js" : "config." + langCode + ".js");

            File.WriteAllText(root + fileName, s, Encoding.UTF8);
        }
        public void RuleLanguageDirectiveParse_Succeeds(string ruleCode, RuleLanguage expectedLanguage = RuleLanguage.Csharp)
        {
            (IPreprocessedRule ppRule, bool parsingSuccess) = RuleFileParser.Read(ruleCode.Mince());

            Assert.True(parsingSuccess);
            Assert.Equal(expectedLanguage, ppRule.Language);
        }
        public void RuleLanguageDirectiveParse_Fails(string ruleCode, RuleLanguage expectedLanguage = RuleLanguage.Unknown)
        {
            (IPreprocessedRule ppRule, bool parsingSuccess) = RuleFileParser.Read(ruleCode.Mince());

            Assert.False(parsingSuccess);
            Assert.Equal(expectedLanguage, ppRule.Language);
        }
Exemple #4
0
        private string GetLanaguage(RuleLanguage ruleLanguage)
        {
            switch (ruleLanguage)
            {
            case RuleLanguage.Sanskrit: return("సంస్కృత ఛందస్సులు");

            default:
            case RuleLanguage.Telugu: return("తెలుగు ఛందస్సులు");
            }
        }
Exemple #5
0
        private HyperLink GetLangLink(RuleLanguage ruleLanguage)
        {
            switch (ruleLanguage)
            {
            case RuleLanguage.Sanskrit: return(GetSans());

            default:
            case RuleLanguage.Telugu: return(GetTel());
            }
        }
Exemple #6
0
        private string GetName(string nm, RuleLanguage lang)
        {
            switch (lang)
            {
            case RuleLanguage.Kannada:
                return(Converter.Convert(nm, Language.Telugu, Language.Kannada));

            default:
                return(nm);
            }
        }
Exemple #7
0
        private void Go(RuleLanguage lang)
        {
            string     langCode = Helper3.GetLangCode(lang);
            APIBuilder Builder  = new APIBuilder(root, version);

            Builder.Go(true, lang, langCode);
            Builder.Go(false, lang, langCode);

            PackAll(langCode);

            ListIdentifiers(lang, langCode);
        }
Exemple #8
0
        public static string GetLangCode(RuleLanguage lang)
        {
            switch (lang)
            {
            case RuleLanguage.Kannada:
                return("kn");

            default:
            case RuleLanguage.Telugu:
                return("te");
            }
        }
Exemple #9
0
        private void ListIdentifiers(RuleLanguage lang, string langCode)
        {
            StreamWriter sw = new StreamWriter(root + @"\id." + langCode + ".txt", false, Encoding.UTF8);

            Rule[] Rules = Manager.Rules();
            foreach (Rule R in Rules)
            {
                sw.Write("<tr>");
                sw.Write("<td>" + R.Identifier + "</td>");
                sw.Write("<td>" + R.Name + "</td>");
                sw.Write("<td><a href='/?chandassu=" + R.Identifier + "' target='_blank'>లక్షణాలు</a></td>");
                sw.WriteLine("</tr>");
            }
            sw.Close();
        }
Exemple #10
0
        private string[] GetStrings(string[] arr, RuleLanguage lang)
        {
            switch (lang)
            {
            default:
            case RuleLanguage.Telugu:
                return(arr);

            case RuleLanguage.Kannada:
                List <string> L = new List <string>();
                foreach (string s in arr)
                {
                    L.Add(Converter.Convert(s, Language.Telugu, Language.Kannada));
                }
                return(L.ToArray());
            }
        }
Exemple #11
0
        public string OnlySamplesJSON(RuleLanguage lang, string langCode)
        {
            Rule[]        Rules = Manager.Rules();
            StringBuilder sb    = new StringBuilder();

            sb.AppendLine("{");
            foreach (Rule R in Rules)
            {
                if (R.Examples == null || R.Examples.Length == 0)
                {
                    continue;
                }
                sb.Append(AddStringArray(R.Identifier, GetStrings(R.Examples, lang)));
                sb.AppendLine("");
            }
            sb.AppendLine("}");
            return(sb.ToString());
        }
Exemple #12
0
        /// <summary>
        /// ctor
        /// </summary>
        /// <param name="str">Input String</param>
        /// <param name="Lang">Rule Language to be Applied</param>
        public GanaVibhajana(string str, RuleLanguage Lang)
        {
            try
            {
                this.Language = Lang;
                this.CharSet  = GetLangCharSet();

                Init();
                _RawString = str;

                if (str != null)
                {
                    this.Analyse();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Analysis failed as .." + ex.Message);
            }
        }
Exemple #13
0
        private static RuleLanguage _GetTarget()
        {
            RuleLanguage lang = RuleLanguage.Telugu;

            try
            {
                lang = (RuleLanguage)Window2.Language;
            }
            catch
            {
            }

            switch (lang)
            {
            case RuleLanguage.Telugu:
            default: return(RuleLanguage.Telugu);

            case RuleLanguage.Kannada:
                return(RuleLanguage.Kannada);
            }
        }
Exemple #14
0
 private string AddEnum(string name, RuleLanguage val)
 {
     return(name + ":" + (int)val + ",");
 }
Exemple #15
0
        public string ToXML(bool withExamples, RuleLanguage lang, string langCode)
        {
            bool compact = true;

            //Why not Serialisation??


            Rule[]      Rules     = Manager.Rules();
            XmlDocument doc       = new XmlDocument();
            XmlElement  RulesNode = doc.CreateElement("Rules");

            RulesNode.SetAttribute("lang", Helper3.GetLangCode(lang));
            foreach (Rule R in Rules)
            {
                XmlElement RuleNode = doc.CreateElement("Rule");

                RuleNode.SetAttribute("identifier", R.Identifier);

                {
                    XmlNode nameNode = doc.CreateElement("name");
                    nameNode.InnerText = GetName(R.Name, lang);
                    RuleNode.AppendChild(nameNode);
                }
                {
                    XmlNode linesNode = doc.CreateElement("lines");
                    linesNode.InnerText = R.Lines.ToString();
                    RuleNode.AppendChild(linesNode);
                }
                {
                    XmlElement thresholdNode = doc.CreateElement("threshold");
                    thresholdNode.InnerText = R.Threshold.ToString();
                    if (R.DeferThresold)
                    {
                        thresholdNode.SetAttribute("deferThresold", R.DeferThresold.ToString());
                    }
                    RuleNode.AppendChild(thresholdNode);
                }
                {
                    XmlNode padyamTypeNode = doc.CreateElement("padyamType");
                    padyamTypeNode.InnerText = EnumText(R.PadyamType);
                    RuleNode.AppendChild(padyamTypeNode);
                }
                {
                    XmlNode node = doc.CreateElement("padyamSubType");
                    node.InnerText = EnumText(R.PadyamSubType);
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("ruleType");
                    node.InnerText = EnumText(R.RuleType);
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("rules");
                    node.InnerXml = GetRulesXml(R.RuleType, R.Rules);
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("prasa");
                    node.InnerText = R.Prasa ? "1" : "0";
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("prasaYati");
                    node.InnerText = R.PrasaYati ? "1" : "0";
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("onlyPrasaYati");
                    node.InnerText = R.OnlyPrasaYati ? "1" : "0";
                    RuleNode.AppendChild(node);
                }

                {
                    XmlNode node = doc.CreateElement("onlyPrasaYati");
                    node.InnerText = R.OnlyPrasaYati ? "1" : "0";
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("anthyaPrasa");
                    node.InnerText = R.AnthyaPrasa ? "1" : "0";
                    RuleNode.AppendChild(node);
                }


                if (lang == RuleLanguage.Kannada)
                {
                    //NOTHING at this point of time
                }
                else
                {
                    {
                        XmlNode node = doc.CreateElement("yatiMode");
                        node.InnerText = EnumText(R.YatiMode);
                        RuleNode.AppendChild(node);
                    }

                    {
                        XmlNode node = doc.CreateElement("yatiRecycle");
                        node.InnerText = R.YatiRecycle ? "1" : "0";
                        RuleNode.AppendChild(node);
                    }
                    {
                        XmlNode node = doc.CreateElement("reverseYati");
                        node.InnerText = R.ReverseYati ? "1" : "0";
                        RuleNode.AppendChild(node);
                    }
                    {
                        XmlNode node = doc.CreateElement("yati");
                        //node.InnerText = R.Yati;
                        RuleNode.AppendChild(node);
                    }
                }
                {
                    XmlNode node = doc.CreateElement("frequency");
                    node.InnerText = EnumText(R.Frequency);
                    RuleNode.AppendChild(node);
                }

                {
                    XmlNode node = doc.CreateElement("language");
                    node.InnerText = EnumText(lang);
                    RuleNode.AppendChild(node);
                }
                {
                    XmlNode node = doc.CreateElement("infiniteLength");
                    node.InnerText = R.InfiniteLength ? "1" : "0";
                    RuleNode.AppendChild(node);
                }

                if (withExamples)
                {
                    XmlNode node = doc.CreateElement("rules");
                    node.InnerXml = GetExamplesXml(R.Examples, lang);
                    RuleNode.AppendChild(node);
                }

                if (lang != RuleLanguage.Kannada)
                {
                    {
                        XmlNode node = doc.CreateElement("references");
                        node.InnerXml = GetArrayXml(R.References);
                        RuleNode.AppendChild(node);
                    }
                    if (compact)
                    {
                        XmlNode         node            = doc.CreateElement("ruleText");
                        XmlCDataSection ruleTextSection = doc.CreateCDataSection(R.RuleText);
                        node.AppendChild(ruleTextSection);
                        RuleNode.AppendChild(node);
                    }
                }
                doc.AppendChild(RuleNode);
            }
            return(doc.ToString());
        }
Exemple #16
0
 public MachinePoem()
 {
     lang = RuleLanguage.Telugu;
 }
Exemple #17
0
 private string GetExamplesXml(string[] p, RuleLanguage lang)
 {
     throw new NotImplementedException();
 }
Exemple #18
0
        public string ToJSON(bool withExamples, RuleLanguage lang, string langCode)
        {
            bool compact = true;

            Rule[] Rules = Manager.Rules();

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("[");
            foreach (Rule R in Rules)
            {
                sb.Append("{");

                sb.Append(AddString("identifier", R.Identifier));

                sb.Append(AddString("name", GetName(R.Name, lang)));


                sb.Append(AddInt("lines", R.Lines));
                sb.Append(AddInt("threshold", R.Threshold));

                if (R.DeferThresold)
                {
                    sb.Append(AddBool("deferThresold", R.DeferThresold));
                }

                sb.Append(AddEnum("padyamType", R.PadyamType));
                sb.Append(AddEnum("padyamSubType", R.PadyamSubType));
                sb.Append(AddEnum("ruleType", R.RuleType));
                sb.Append(AddRules("rules", R.RuleType, R.Rules));


                sb.Append(AddBool("prasa", R.Prasa));
                sb.Append(AddBool("prasaYati", R.PrasaYati));
                sb.Append(AddBool("onlyPrasaYati", R.OnlyPrasaYati));
                sb.Append(AddBool("anthyaPrasa", R.AnthyaPrasa));



                if (lang == RuleLanguage.Kannada)
                {
                    //TODO...
                }
                else
                {
                    sb.Append(AddEnum("yatiMode", R.YatiMode));
                    sb.Append(AddBool("yatiRecycle", R.YatiRecycle));
                    sb.Append(AddBool("reverseYati", R.ReverseYati));
                    sb.Append(AddYati("yati", R.Yati));
                }

                sb.Append(AddEnum("frequency", R.Frequency));
                sb.Append(AddBool("infiniteLength", R.InfiniteLength));
                sb.Append(AddEnum("language", lang));                //


                if (withExamples)
                {
                    sb.Append(AddStringArray("examples", GetStrings(R.Examples, lang)));
                }

                if (lang != RuleLanguage.Kannada)
                {
                    sb.Append(AddStringArray("references", R.References));
                    if (compact)
                    {
                        sb.Append(AddString("ruleText", R.RuleText));
                    }
                }

                sb.AppendLine("},");
            }

            sb.AppendLine("]");
            return(sb.ToString());
        }
Exemple #19
0
 public YatiPrasaTester()
 {
     lang = RuleLanguage.Telugu;
 }