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

Show comptime emits as embedded sourceviews

This commit is contained in:
Brian Fiete 2022-04-16 06:27:54 -07:00
parent ee27f6fd02
commit 4d1e14a1c3
65 changed files with 3360 additions and 633 deletions

View file

@ -18,9 +18,24 @@ BfResolvePassData::BfResolvePassData()
mSymbolTypeGenericParamIdx = -1;
mAutoComplete = NULL;
mSourceClassifier = NULL;
mResolveType = BfResolveType_None;
mParser = NULL;
mIsClassifying = false;
mHasCursorIdx = false;
}
BfResolvePassData::~BfResolvePassData()
{
for (auto& emitEntryKV : mEmitEmbedEntries)
{
auto parser = emitEntryKV.mValue.mParser;
if (parser != NULL)
{
delete parser->mSourceClassifier;
parser->mSourceClassifier = NULL;
parser->mParserFlags = ParserFlag_None;
parser->mCursorCheckIdx = -1;
}
}
}
void BfResolvePassData::RecordReplaceNode(BfParserData* parser, int srcStart, int srcLen)
@ -179,3 +194,20 @@ void BfResolvePassData::HandleNamespaceReference(BfAstNode* node, const BfAtomCo
RecordReplaceNode(baseNode);
}
}
BfSourceClassifier* BfResolvePassData::GetSourceClassifier(BfAstNode* astNode)
{
if (!mIsClassifying)
return NULL;
auto parser = astNode->GetParser();
if (parser == NULL)
return NULL;
return parser->mSourceClassifier;
}
BfSourceClassifier* BfResolvePassData::GetSourceClassifier(BfParser* parser)
{
if (!mIsClassifying)
return NULL;
return parser->mSourceClassifier;
}