mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-13 22:04:09 +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
|
// Tuple start
|
||||||
}
|
}
|
||||||
else if (checkToken == BfToken_Decltype)
|
else if ((checkToken == BfToken_Decltype) || (checkToken == BfToken_RetType))
|
||||||
{
|
{
|
||||||
// Decltype start
|
// Decltype start
|
||||||
}
|
}
|
||||||
|
@ -759,12 +759,18 @@ bool BfReducer::IsTypeReference(BfAstNode* checkNode, BfToken successToken, int*
|
||||||
checkIdx = funcEndNode;
|
checkIdx = funcEndNode;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
else if (checkToken == BfToken_Decltype)
|
else if ((checkToken == BfToken_Decltype) || (checkToken == BfToken_RetType))
|
||||||
{
|
{
|
||||||
int endNodeIdx = checkIdx + 1;
|
int endNodeIdx = checkIdx + 1;
|
||||||
|
|
||||||
auto nextNode = mVisitorPos.Get(checkIdx + 1);
|
auto nextNode = mVisitorPos.Get(checkIdx + 1);
|
||||||
if (auto tokenNode = BfNodeDynCast<BfTokenNode>(nextNode))
|
if (auto tokenNode = BfNodeDynCast<BfTokenNode>(nextNode))
|
||||||
|
{
|
||||||
|
if (tokenNode->mToken != BfToken_LParen)
|
||||||
|
{
|
||||||
|
isDone = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
int openCount = 1;
|
int openCount = 1;
|
||||||
|
|
||||||
|
@ -789,7 +795,9 @@ bool BfReducer::IsTypeReference(BfAstNode* checkNode, BfToken successToken, int*
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
identifierExpected = false;
|
||||||
checkIdx = endNodeIdx;
|
checkIdx = endNodeIdx;
|
||||||
|
|
||||||
/*if (outEndNode != NULL)
|
/*if (outEndNode != NULL)
|
||||||
|
@ -4590,7 +4598,10 @@ BfTypeReference* BfReducer::DoCreateTypeRef(BfAstNode* firstNode, CreateTypeRefF
|
||||||
tokenNode = ExpectTokenAfter(declTypeRef, BfToken_RParen);
|
tokenNode = ExpectTokenAfter(declTypeRef, BfToken_RParen);
|
||||||
MEMBER_SET_CHECKED(declTypeRef, mCloseParen, tokenNode);
|
MEMBER_SET_CHECKED(declTypeRef, mCloseParen, tokenNode);
|
||||||
|
|
||||||
return declTypeRef;
|
isHandled = true;
|
||||||
|
firstNode = declTypeRef;
|
||||||
|
|
||||||
|
//return declTypeRef;
|
||||||
}
|
}
|
||||||
else if (token == BfToken_LParen)
|
else if (token == BfToken_LParen)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue