Fix cascaded assignment
This commit is contained in:
parent
438a926b88
commit
545b9a6aba
|
@ -1565,13 +1565,14 @@ Expression* Parser::ParseAssignmentExpression(void)
|
||||||
{
|
{
|
||||||
Expression* exp = ParseConditionalExpression();
|
Expression* exp = ParseConditionalExpression();
|
||||||
|
|
||||||
while (mScanner->mToken >= TK_ASSIGN && mScanner->mToken <= TK_ASSIGN_OR)
|
if (mScanner->mToken >= TK_ASSIGN && mScanner->mToken <= TK_ASSIGN_OR)
|
||||||
{
|
{
|
||||||
Expression* nexp = new Expression(mScanner->mLocation, EX_ASSIGNMENT);
|
Expression* nexp = new Expression(mScanner->mLocation, EX_ASSIGNMENT);
|
||||||
nexp->mToken = mScanner->mToken;
|
nexp->mToken = mScanner->mToken;
|
||||||
nexp->mLeft = exp;
|
nexp->mLeft = exp;
|
||||||
mScanner->NextToken();
|
mScanner->NextToken();
|
||||||
nexp->mRight = ParseConditionalExpression();
|
nexp->mRight = ParseAssignmentExpression();
|
||||||
|
nexp->mDecType = exp->mDecType;
|
||||||
exp = nexp;
|
exp = nexp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue