コード例 #1
0
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;
}
コード例 #2
0
ファイル: Dsl.cpp プロジェクト: CQiao/DSL
  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
  }