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