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:
parent
36bf9df1f5
commit
1c876af91c
1 changed files with 29 additions and 18 deletions
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue