1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00

Parser fixes

This commit is contained in:
Brian Fiete 2020-09-12 08:11:29 -07:00
parent 6b680d2b70
commit dc169fffda

View file

@ -951,20 +951,48 @@ static void BfSizedArrayInitIndirect(BfSizedArray<T>& sizedArray, const SizedArr
template <typename T>
class BfDeferredAstSizedArray : public SizedArray<T, 8>
{
public:
public:
BfSizedArray<ASTREF(T)>* mSizedArray;
BfAstAllocator* mAlloc;
public:
BfDeferredAstSizedArray(BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
{
{
mSizedArray = &arr;
mAlloc = alloc;
mAlloc = alloc;
}
~BfDeferredAstSizedArray()
{
BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc);
}
};
template <typename T>
class BfDeferredAstNodeSizedArray : public SizedArray<T, 8>
{
public:
BfAstNode* mParentNode;
BfSizedArray<ASTREF(T)>* mSizedArray;
BfAstAllocator* mAlloc;
public:
BfDeferredAstNodeSizedArray(BfAstNode* parentNode, BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
{
mParentNode = parentNode;
mSizedArray = &arr;
mAlloc = alloc;
}
~BfDeferredAstNodeSizedArray()
{
BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc);
if (!mSizedArray->IsEmpty())
{
int endPos = mSizedArray->back()->mSrcEnd;
if (endPos > mParentNode->mSrcEnd)
mParentNode->mSrcEnd = endPos;
}
}
};