Ejemplo n.º 1
0
// 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;
}
Ejemplo n.º 2
0
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);

}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
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;
}
Ejemplo n.º 6
0
UINT CComputerInfo::GetUserClassId() const
{
	return CNetBarConfig::GetInstance()->GetUserClassId(GetMemberType());
}