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

Inline anonymous type declarations

This commit is contained in:
Brian Fiete 2025-01-02 11:42:33 -08:00
parent f609062c2a
commit 958fc30310
20 changed files with 600 additions and 48 deletions

View file

@ -62,6 +62,22 @@ enum MaybeBool
MaybeBool_True = 1,
};
class BfParseFileData
{
public:
Array<int> mUniqueIDList;
int mRefCount;
public:
BfParseFileData()
{
mRefCount = 0;
}
~BfParseFileData();
int GetUniqueId(int idx);
};
class BfParserData : public BfSourceData
{
public:
@ -81,8 +97,9 @@ public:
OwnedVector<String> mStringLiterals;
Dictionary<int, BfParserWarningEnabledChange> mWarningEnabledChanges;
std::set<int> mUnwarns;
BfParseFileData* mParseFileData;
bool mFailed; // Don't cache if there's a warning or an error
bool mDidReduce;
bool mDidReduce;
public:
BfParserData();
@ -94,6 +111,7 @@ public:
return this;
}
void InitFileData();
virtual BfParser* ToParser() override;
int GetCharIdAtIndex(int findIndex);
void GetLineCharAtIdx(int idx, int& line, int& lineChar);
@ -130,6 +148,7 @@ public:
int mRefCount;
BfAstAllocManager mAstAllocManager;
HashSet<DataEntry> mEntries;
Dictionary<String, BfParseFileData*> mParseFileDataMap;
public:
BfParserCache();