Пример #1
0
        public static bool IsConjugationForm(IToken token, IToken nextToken)
        {
            if (!IsHave(token.ConjugationForm))
            {
                //Deal with De-iru
                if (WordInformation.IsDeIru(token, nextToken))
                {
                    return(true);
                }

                return(false);
            }
            //Deal with nde*
            if (token.BaseForm.Equals("ん", StringComparison.OrdinalIgnoreCase) &&
                (nextToken.BaseForm.Equals("です", StringComparison.OrdinalIgnoreCase) ||
                 nextToken.Surface.Equals("で", StringComparison.OrdinalIgnoreCase)))
            {
                return(true);
            }

            if (token.ConjugationForm.Equals(WordInformation.JAP_BASE_FORM, StringComparison.OrdinalIgnoreCase))
            {
                return(false);
            }

            if (WordInformation.IsInConjugationList(nextToken.BaseForm))
            {
                return(true);
            }

            //Deal with -masende
            if (token.Surface.Equals("ませ", StringComparison.OrdinalIgnoreCase) &&
                nextToken.Surface.Equals("んで", StringComparison.OrdinalIgnoreCase))
            {
                return(true);
            }

            //Deal with dewanai & dearu
            if (token.Surface.Equals("で", StringComparison.OrdinalIgnoreCase) &&
                (nextToken.Surface.Equals("は", StringComparison.OrdinalIgnoreCase) ||
                 (nextToken.BaseForm.Equals("ある", StringComparison.OrdinalIgnoreCase) ||
                  nextToken.BaseForm.Equals("ない", StringComparison.OrdinalIgnoreCase))
                )
                )
            {
                return(true);
            }

            return(false);
        }