bool CDB_Params::SetParam(unsigned int param_no, const string& param_name, CDB_Object* param, bool is_out) { param_no = GetParamNum(param_no, param_name); m_Params[param_no].Set(param_name, param, is_out); return true; }
void Call::WriteToFile(FILE* fp, int indent)const { #if _DEBUG int paramClass = GetParamClass(); if (paramClass == Call::PARAM_CLASS_OPERATOR){ if (GetParamNum() == 2){ ISyntaxComponent& component0 = *GetParam(0); WriteComponent(fp, component0, indent); fwrite(" ", 1, 1, fp); if (IsHighOrder() && NULL != m_Name.GetCall()){ Call& call = *m_Name.GetCall(); call.WriteToFile(fp, 0); } else { m_Name.WriteToFile(fp, 0); } fwrite(" ", 1, 1, fp); ISyntaxComponent& component1 = *GetParam(1); WriteComponent(fp, component1, 0); } else { fwrite(" ", 1, 1, fp); if (IsHighOrder() && NULL != m_Name.GetCall()){ Call& call = *m_Name.GetCall(); call.WriteToFile(fp, 0); } else { m_Name.WriteToFile(fp, 0); } fwrite(" ", 1, 1, fp); ISyntaxComponent& component0 = *GetParam(0); WriteComponent(fp, component0, indent); } } else { if (IsHighOrder() && NULL != m_Name.GetCall()){ Call& call = *m_Name.GetCall(); call.WriteToFile(fp, indent); } else { m_Name.WriteToFile(fp, indent); } if (HaveParam()){ switch (paramClass){ case Call::PARAM_CLASS_PARENTHESIS: fwrite("(", 1, 1, fp); break; case Call::PARAM_CLASS_BRACKET: fwrite("[", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD: fwrite(".", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD_PARENTHESIS: fwrite(".(", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD_BRACKET: fwrite(".[", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD_BRACE: fwrite(".{", 1, 1, fp); break; } for (int ix = 0; ix < GetParamNum(); ++ix){ if (ix > 0){ fwrite(",", 1, 1, fp); } ISyntaxComponent& component = *GetParam(ix); WriteComponent(fp, component, 0); } switch (paramClass){ case Call::PARAM_CLASS_PARENTHESIS: fwrite(")", 1, 1, fp); break; case Call::PARAM_CLASS_BRACKET: fwrite("]", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD: break; case Call::PARAM_CLASS_PERIOD_PARENTHESIS: fwrite(")", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD_BRACKET: fwrite("]", 1, 1, fp); break; case Call::PARAM_CLASS_PERIOD_BRACE: fwrite("}", 1, 1, fp); break; } } } #endif }