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); }