예제 #1
0
        protected override Unifiable ProcessChangeU()
        {
            if (FinalResultValid)
            {
                return(FinalResult);
            }
            TemplateInfo queryTemplate = query.CurrentTemplate;

            if (queryTemplate != null)
            {
                if (queryTemplate.IsDisabledOutput)
                {
                    return(Unifiable.INCOMPLETE);
                }
                Succeed();
                request.MarkTemplate(queryTemplate);
            }
            Unifiable templateResult = RecurseReal(templateNode, false);
            Unifiable test           = templateResult;

            if (Unifiable.IsEMPTY(test))
            {
                if (QueryHasFailed)
                {
                    return(FAIL);
                }
                if (IsSilentTag(templateNode))
                {
                    return(templateResult);
                }
                ResetValues(true);
                templateResult = RecurseReal(templateNode, false);
            }
            if (templateResult == null)
            {
                return(null);
            }
            return(AltBot.ReTrimAndspace(AltBot.CleanupCyc(templateResult)));
        }