1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-11 04:52:21 +02:00

Fixed some decltype and rettype parsing

This commit is contained in:
Brian Fiete 2020-01-31 06:11:13 -08:00
parent 36bf9df1f5
commit 1c876af91c

View file

@ -266,7 +266,7 @@ bool BfReducer::IsTypeReference(BfAstNode* checkNode, BfToken successToken, int*
{
// Tuple start
}
else if (checkToken == BfToken_Decltype)
else if ((checkToken == BfToken_Decltype) || (checkToken == BfToken_RetType))
{
// Decltype start
}
@ -759,12 +759,18 @@ bool BfReducer::IsTypeReference(BfAstNode* checkNode, BfToken successToken, int*
checkIdx = funcEndNode;
continue;
}
else if (checkToken == BfToken_Decltype)
else if ((checkToken == BfToken_Decltype) || (checkToken == BfToken_RetType))
{
int endNodeIdx = checkIdx + 1;
auto nextNode = mVisitorPos.Get(checkIdx + 1);
if (auto tokenNode = BfNodeDynCast<BfTokenNode>(nextNode))
{
if (tokenNode->mToken != BfToken_LParen)
{
isDone = true;
}
else
{
int openCount = 1;
@ -789,7 +795,9 @@ bool BfReducer::IsTypeReference(BfAstNode* checkNode, BfToken successToken, int*
}
}
}
}
identifierExpected = false;
checkIdx = endNodeIdx;
/*if (outEndNode != NULL)
@ -4590,7 +4598,10 @@ BfTypeReference* BfReducer::DoCreateTypeRef(BfAstNode* firstNode, CreateTypeRefF
tokenNode = ExpectTokenAfter(declTypeRef, BfToken_RParen);
MEMBER_SET_CHECKED(declTypeRef, mCloseParen, tokenNode);
return declTypeRef;
isHandled = true;
firstNode = declTypeRef;
//return declTypeRef;
}
else if (token == BfToken_LParen)
{