Ejemplo n.º 1
0
        /// <summary>
        /// Прошедшее время глагола (спряжение по залогу и роду)
        /// </summary>
        public string Past(Voice voice, Gender gender)
        {
            var i = (int)voice * 78;

            i += 7 + (int)(gender.Gen());
            return(Verbs.schemas[SchemaIndex].GetForm(Word, i));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Личные местоимения (я, ты, он, она, они, и т.д.)
        /// </summary>
        /// <param name="gender">Род только для 3 лица</param>
        /// <param name="preposition">С предлогом</param>
        public static string Personal(Case @case, Person person, Gender gender = Gender.M, bool preposition = false)
        {
            var gen = gender.Gen();
            var col = 0;

            if (gen == Gender.P)
            {
                col = 5 + (int)person;
            }
            else
            {
                switch (person)
                {
                case Person.First: col = 0; break;

                case Person.Second: col = 1; break;

                case Person.Third: col = 2 + (int)gen; break;
                }
            }

            var row = 0 + 2 * (int)@case + (preposition ? 1 : 0);

            return(Items[row][col]);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Притяжательные возвратные (свой, своя, свое и т.д.)
        /// </summary>
        public static string PossessiveReflexive(Case @case, Gender gender)
        {
            var gen = gender.Gen();
            var col = (int)gen;
            var row = 52 + @case.IndexWithAnimate(gender);

            return(Items[row][col]);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Притяжательные местоимения (мой, твой, его, и т.д.)
        /// </summary>
        /// <param name="person">Лицо говорящего. Не используется для number = Number.Plural</param>
        /// <param name="number">Число (ед: мой твой его, множ: ваш)</param>
        public static string Possessive(Case @case, Person person, Gender gender, Number number = Number.Singular)
        {
            var gen = gender.Gen();
            var col = (int)gen;
            var row = 20 + 8 * (number == Number.Singular ? (int)person : 3) + @case.IndexWithAnimate(gender);;

            return(Items[row][col]);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Словоформы по падежам, родам и числам
        /// </summary>
        public string this[Case @case, Gender gender]
        {
            get
            {
                var i = @case.IndexWithAnimate(gender);
                i += 8 * (int)gender.Gen();

                return(Adjectives.schemas[SchemaIndex].GetForm(Word, i));
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Причастие (спряжение по залогу, падежу, роду и времени)
        /// </summary>
        public string Participle(Voice voice, Case @case, Gender gender, Tense tense)
        {
            var i = @case.IndexWithAnimate(gender);

            i += (int)voice * 78;
            i += 14;
            i += 8 * (int)gender.Gen();
            i += 32 * (int)tense;

            return(Verbs.schemas[SchemaIndex].GetForm(Word, i));
        }