1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-11 12:54:15 +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

@ -968,6 +968,34 @@ public:
}
};
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;
}
}
};
typedef void(*BfAstAcceptFunc)(BfAstNode* node, BfStructuralVisitor* visitor);
class BfAstTypeInfo