Exemplo n.º 1
0
        public static bool IsUnknown(object unifiable)
        {
            if (IsNullOrEmpty(unifiable))
            {
                return(true);
            }
            if (IsIncomplete(unifiable))
            {
                return(true);
            }
            string ss = Unifiable.ToStringLValue(unifiable);
            string s  = " " + ss.Replace("_", " ").Replace("-", " ") + " ";
            bool   b  = s.Contains("unknown") || s.Contains("unrec") || s.Contains("unnam") ||
                        s.Contains("unseen") || s.Contains("default") ||
                        s.Contains(" some") || s.Contains("*") || s.Contains(" _ ") ||
                        s.Contains(" nothing ") || s.Contains("undefine") ||
                        s.Contains("$");

            if (b)
            {
                return(true && !s.Contains(" in ") && !s.Contains(" at ") && !s.Contains(" on "));
            }
            if (unifiable is Unifiable)
            {
                if (!((Unifiable)unifiable).IsWildCard)
                {
                    return(false);
                }
                return(true);
            }
            return(false);
            //switch (s)
            //{
            //    case "":
            //        return true;
            //    case "unknown":
            //        return true;
            //    case "nothing":
            //        return true;
            //    case "*":
            //        return true;
            //    case "_":
            //        return true;
            //    case "undefined":
            //        return true;
            //    default:
            //        return false;
            //}
        }