Exemplo n.º 1
0
        public bool TransitionPossible(TxtWord root, State fromState)
        {
            if (root.IsAdjective() && (root.IsNominal() && !root.IsExceptional() || root.IsPronoun()) &&
                _toState.GetName() == "NominalRoot(ADJ)" && _with == "0")
            {
                return(false);
            }

            if (root.IsAdjective() && root.IsNominal() && _with == "^DB+VERB+ZERO+PRES+A3PL" &&
                fromState.GetName() == "AdjectiveRoot")
            {
                return(false);
            }

            if (root.IsAdjective() && root.IsNominal() && _with == "SH" &&
                fromState.GetName() == "AdjectiveRoot")
            {
                return(false);
            }

            if (_with == "ki")
            {
                return(root.TakesRelativeSuffixKi());
            }

            if (_with == "kü")
            {
                return(root.TakesRelativeSuffixKu());
            }

            if (_with == "dHr")
            {
                if (_toState.GetName() == "Adverb")
                {
                    return(true);
                }

                return(root.TakesSuffixDIRAsFactitive());
            }

            if (_with == "Hr" && (_toState.GetName() == "AdjectiveRoot(VERB)" ||
                                  _toState.GetName() == "OtherTense" ||
                                  _toState.GetName() == "OtherTense2"))
            {
                return(root.TakesSuffixIRAsAorist());
            }

            return(true);
        }