public CComplexDDExpression(CToken pToken) { m_pToken = pToken; m_vecExpressions = new EXPR_VECTOR(); }
EXPR_VECTOR m_vecExpressions; //each dim in actual array corresponds public CComplexDDExpression() { m_pToken = new CToken(); m_vecExpressions = new EXPR_VECTOR(); }
EXPR_VECTOR m_vecExpressions; //each dim in actual array corresponds public CArrayExpression() { m_pToken = new CToken(); m_vecExpressions = new EXPR_VECTOR(); }
public CArrayExpression(CToken pToken) { m_pToken = pToken; m_vecExpressions = new EXPR_VECTOR(); }
public override int visitArrayExpression(CArrayExpression pArrExp, CSymbolTable pSymbolTable, ref INTER_VARIANT pvar, RUL_TOKEN_SUBTYPE AssignType) { //try { int i32Idx = pArrExp.GetToken().GetSymbolTableIndex(); CVariable pVariable = pSymbolTable.GetAt(i32Idx); INTER_SAFEARRAY prgsa = pVariable.GetValue().GetValue().prgsa; //evaluate the expressions... EXPR_VECTOR pvecExpressions = pArrExp.GetExpressions(); List <int> vecDims = new List <int>(); prgsa.GetDims(ref vecDims); if (vecDims.Count != pvecExpressions.Count) { //throw (C_TC_ERROR_DIM_MISMATCH, pArrExp); } byte[] by; switch (prgsa.Type()) { case VARIANT_TYPE.RUL_CHAR: by = new byte[1]; //by[0] = ' '; by[0] = 0; pvar.SetValue(by, 0, prgsa.Type()); break; case VARIANT_TYPE.RUL_INT: by = new byte[4]; by = BitConverter.GetBytes((int)0); pvar.SetValue(by, 0, prgsa.Type()); break; case VARIANT_TYPE.RUL_BOOL: by = new byte[1]; by[0] = 0; pvar.SetValue(by, 0, prgsa.Type()); break; case VARIANT_TYPE.RUL_FLOAT: by = new byte[4]; by = BitConverter.GetBytes((float)0.0); pvar.SetValue(by, 0, prgsa.Type()); break; case VARIANT_TYPE.RUL_DOUBLE: by = new byte[4]; by = BitConverter.GetBytes((double)0.0); pvar.SetValue(by, 0, prgsa.Type()); break; case VARIANT_TYPE.RUL_CHARPTR: case VARIANT_TYPE.RUL_SAFEARRAY: case VARIANT_TYPE.RUL_DD_STRING: case VARIANT_TYPE.RUL_UNSIGNED_CHAR: by = new byte[1]; by[0] = 0; pvar.SetValue(by, 0, prgsa.Type()); break; } return(TYPE_SUCCESS); } /* * catch (CRIDEError* perr) * { * pvecErrors.push_back(perr); * } * catch (...) * { * throw (C_UM_ERROR_UNKNOWNERROR, pArrExp); * } * return TYPE_FAILURE; */ }