mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-12 21:34:11 +02:00
Parser fixes
This commit is contained in:
parent
6b680d2b70
commit
dc169fffda
1 changed files with 31 additions and 3 deletions
|
@ -951,20 +951,48 @@ static void BfSizedArrayInitIndirect(BfSizedArray<T>& sizedArray, const SizedArr
|
||||||
template <typename T>
|
template <typename T>
|
||||||
class BfDeferredAstSizedArray : public SizedArray<T, 8>
|
class BfDeferredAstSizedArray : public SizedArray<T, 8>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BfSizedArray<ASTREF(T)>* mSizedArray;
|
BfSizedArray<ASTREF(T)>* mSizedArray;
|
||||||
BfAstAllocator* mAlloc;
|
BfAstAllocator* mAlloc;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
BfDeferredAstSizedArray(BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
|
BfDeferredAstSizedArray(BfSizedArray<ASTREF(T)>& arr, BfAstAllocator* alloc)
|
||||||
{
|
{
|
||||||
mSizedArray = &arr;
|
mSizedArray = &arr;
|
||||||
mAlloc = alloc;
|
mAlloc = alloc;
|
||||||
}
|
}
|
||||||
|
|
||||||
~BfDeferredAstSizedArray()
|
~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);
|
BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc);
|
||||||
|
if (!mSizedArray->IsEmpty())
|
||||||
|
{
|
||||||
|
int endPos = mSizedArray->back()->mSrcEnd;
|
||||||
|
if (endPos > mParentNode->mSrcEnd)
|
||||||
|
mParentNode->mSrcEnd = endPos;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue