public static string[] GetConjugations(string verb)
        {
            if (verb == "savoir")
            {
                return(new[] { "", "sache", "", "sachons", "sachez", "" });
            }

            if (verb == "faillir")
            {
                return(new[] { "", "faille", "", "faillons", "faillez", "" });
            }

            if (verb == "avoir")
            {
                return(new[] { "", "aie", "", "ayons", "ayez", "" });
            }

            string[] present = PresentConjugator.GetConjugations(verb);
            return(new[]
            {
                null,
                Exceptions.verbsWithErEndings.Contains(verb) ? present[1].TrimEnd("s") : present[1], // tu
                null,
                present[3],                                                                          // nous
                present[4],                                                                          // vous
                null
            });
        }
        public static string[] GetConjugations(string verb)
        {
            switch (verb)
            {
            case "avoir":
                return(new[] { "aie", "aies", "ait", "ayons", "ayez", "aient" });

            case "falloir":
                return(new[] { "", "", "faille", "", "", "" });

            case "savoir":
                return(Endings.AddEndings("sach"));

            case "pouvoir":
                return(Endings.AddEndings("puiss"));

            case "pleuvoir":
                return(Endings.AddEndings("pleuv"));
            }

            if (verb.EndsWith("seoir"))
            {
                var stem = verb.TrimEnd("eoir");
                if (verb.EndsWith("asseoir"))
                {
                    return(AddEndings(Endings, new ComplexStem(stem + "oi", stem + "oy")));
                }

                return(Endings.AddEndings(stem + "ié"));
            }

            ComplexStem complexStem = GetComplexStem(verb);

            if (complexStem != null)
            {
                return(AddEndings(Endings, complexStem));
            }

            var present  = PresentConjugator.GetConjugations(verb);
            var nousForm = present[3];

            var regularStem = nousForm.TrimEnd("ons");

            return(Endings.AddEndings(regularStem));
        }
        public static string[] GetConjugations(string verb)
        {
            if (verb == "avoir")
            {
                return(new[] { "ayant" });
            }

            if (verb == "savoir")
            {
                return(new[] { "sachant" });
            }

            if (verb == "pleuvoir")
            {
                return(new[] { "pleuvant" });
            }

            if (verb.EndsWith("seoir"))
            {
                if (verb.EndsWith("asseoir"))
                {
                    return(new[] { verb.TrimEnd("seoir") + "soyant" });
                }

                return(new[] { verb.TrimEnd("seoir") + "séant" });
            }

            string conjugation = PresentConjugator.GetConjugations(verb)[3];

            if (string.IsNullOrEmpty(conjugation))
            {
                return(null);
            }
            string stem = conjugation.TrimEnd("ons");

            return(new[] { stem + "ant" });
        }
        private static string GetStem(string verb)
        {
            string stem = PresentConjugator.GetConjugations(verb)[3].TrimEnd("ons");

            return(stem);
        }