// MEMBER -> [ OBJECT s_dot ] < // k_type | k_name | k_attrib | k_version | k_uuid | k_uunm | // k_clsid | k_iid | k_value > // int P_Member(LubeToken token) { ObjectType object; MemberType member; PSTATEDESC pDesc; if (IsObjectToken(token)) { object = GetObjectType(token); if (Object_None == object) object = s_pContext->m_curObject; if (_PeekToken() != Token_S_dot) { ErrorReport(Lube_E_InvalidMember, g_szCurrentToken); return Ret_Continue; } _GetToken(); // skip s_dot token = _GetToken(); } else { object = s_pContext->m_curObject; } member = GetMemberType(object, token); if (Member_None == member) return Ret_Continue; pDesc = s_pContext->CreateBlockette(State_Member); if (!pDesc) { ErrorReport(Lube_E_OutOfMemory); return Ret_AbortOnError; } pDesc->object = object; pDesc->member = member; return Ret_Continue; }
static void ChangeName ( PopuP p ) { AlistDialogPtr adp; IntBadgPtr ibp; SscBadgPtr sbp; SscTablesPtr stp; CharPtr str; adp = (AlistDialogPtr) GetObjectExtra (p); if (adp == NULL) return; sbp = (SscBadgPtr) adp->userdata; if (sbp == NULL) return; stp = sbp->tables; if (stp == NULL) return; ibp = GetBadgInfo (sbp, sbp->currItem); if (ibp == NULL) return; str = GetEnumPopupByName (sbp->name, stp->payers.alist); if (StringCmp (str, "-") == 0) { str [0] = ' '; SetEnumPopupByName (sbp->name, stp->payers.alist, str); } ibp->name = MemFree (ibp->name); ibp->name = str; /* allocated by GetEnumPopupByName */ ibp->type = GetMemberType (str, stp); UpdateDocument (sbp->badglog, sbp->currItem, sbp->currItem); Update (); CheckExtendTable (sbp); }
static int GetTypeOfStructInstance(ea_t ea, ea_t head, flags_t flags) { typeinfo_t ti; if (!get_typeinfo(head, 0, flags, &ti)) return T_UNK; struc_t *sptr = get_struc(ti.tid); if (!sptr) return T_UNK; member_t *mptr = get_best_fit_member(sptr, ea - head); if (!mptr || mptr->soff != ea - head) return T_UNK; return GetMemberType(mptr); }
void ParseStringToken() { int n = 0; char *s, buf[c_nStrBufSize]; LubeToken token; ObjectType object; MemberType member; s = g_szCurrentToken; while (*s) { if (c_nEmbedPrefix != *s) { buf[n++] = *s++; } else { s++; // skip prefix char token = *(LubeToken *)s; s += sizeof(LubeToken); // skip token if (IsObjectToken(token)) { if (*s != '.' || *(s + 1) != c_nEmbedPrefix) { ErrorReport(Lube_E_InvalidEmbed); return; } s += 2; object = GetObjectType(token); if (Object_None == object) return; token = *(LubeToken *)s; s += sizeof(LubeToken); // skip token } else { object = s_pContext->m_curObject; } if (!IsMemberToken(token)) { ErrorReport(Lube_E_InvalidEmbed); return; } member = GetMemberType(object, token); if (Member_None == member) return; buf[n++] = c_nEmbedPrefix; buf[n++] = (char)object; buf[n++] = (char)member; } } buf[n] = 0; strcpy(g_szCurrentToken, buf); }
int GetMemberObject(LubeToken token, PSTATEDESC pDesc) { if (IsObjectToken(token)) { pDesc->object = GetObjectType(token); if (Object_None == pDesc->object) { pDesc->object = s_pContext->m_curObject; } if (Object_LubeOption == pDesc->object) { pDesc->member = Member_Name; return Ret_Continue; } if (Object_CompilingEnv== pDesc->object) { pDesc->member = Member_Name; return Ret_Continue; } if (Object_InuptType== pDesc->object) { pDesc->member = Member_Name; return Ret_Continue; } if (_PeekToken() != Token_S_dot) return Ret_Continue; _GetToken(); // skip s_dot token = _GetToken(); } else { pDesc->object = s_pContext->m_curObject; } if (IsMemberToken(token)) { pDesc->member = GetMemberType(pDesc->object, token); } else { ErrorReport(Lube_E_UnexpectSymbol, g_szCurrentToken); } return Ret_Continue; }
UINT CComputerInfo::GetUserClassId() const { return CNetBarConfig::GetInstance()->GetUserClassId(GetMemberType()); }