Access to member variables in member functions

This commit is contained in:
drmortalwombat 2023-06-18 16:37:53 +02:00
parent 9e92c2863a
commit f72048383a

View File

@ -1772,6 +1772,26 @@ Expression* Parser::ParseSimpleExpression(void)
mScanner->NextToken();
break;
case TK_IDENT:
if (mThisPointer)
{
dec = mThisPointer->mBase->mBase->mScope->Lookup(mScanner->mTokenIdent);
if (dec)
{
Expression * texp = new Expression(mScanner->mLocation, EX_VARIABLE);
texp->mDecType = mThisPointer->mBase;
texp->mDecValue = mThisPointer;
Expression* dexp = new Expression(mScanner->mLocation, EX_PREFIX);
dexp->mToken = TK_MUL;
dexp->mDecType = texp->mDecType->mBase;
dexp->mLeft = texp;
exp = ParseQualify(dexp);
}
}
if (!exp)
{
dec = ParseQualIdent();
if (dec)
{
@ -1814,6 +1834,7 @@ Expression* Parser::ParseSimpleExpression(void)
mErrors->Error(mScanner->mLocation, EERR_INVALID_IDENTIFIER, "Invalid identifier", mScanner->mTokenIdent);
}
}
}
break;
case TK_SIZEOF: