예제 #1
0
        private bool IsDefine_impl(DefineObject define)
        {
            bool ret = false;

            if (define is DefineString)
            {
                ret = m_script.ContainDefine(((DefineString)define).Define);
            }
            else
            {
                DefineOperate oper = (DefineOperate)define;
                bool          left = IsDefine_impl(oper.Left);
                if (left && !oper.and)
                {
                    ret = true;
                }
                else if (!left && oper.and)
                {
                    ret = false;
                }
                else if (oper.and)
                {
                    ret = left && IsDefine_impl(oper.Right);
                }
                else
                {
                    ret = left || IsDefine_impl(oper.Right);
                }
            }
            if (define.Not)
            {
                ret = !ret;
            }
            return(ret);
        }