| 4280 | } |
| 4281 | |
| 4282 | BF_EXPORT void BF_CALLTYPE BfParser_CreateClassifier(BfParser* bfParser, BfPassInstance* bfPassInstance, BfResolvePassData* resolvePassData, BfSourceClassifier::CharData* charData) |
| 4283 | { |
| 4284 | resolvePassData->mIsClassifying = true; |
| 4285 | bfParser->mSourceClassifier = new BfSourceClassifier(bfParser, charData); |
| 4286 | bfParser->mSourceClassifier->mClassifierPassId = bfPassInstance->mClassifierPassId; |
| 4287 | |
| 4288 | if ((resolvePassData->mParsers.IsEmpty()) || (bfParser != resolvePassData->mParsers[0])) |
| 4289 | resolvePassData->mParsers.Add(bfParser); |
| 4290 | |
| 4291 | bool doClassifyPass = (charData != NULL) && (resolvePassData->mResolveType <= BfResolveType_Autocomplete_HighPri); |
| 4292 | bfParser->mSourceClassifier->mEnabled = doClassifyPass; |
| 4293 | |
| 4294 | bfParser->mSourceClassifier->mSkipMethodInternals = true; |
| 4295 | bfParser->mSourceClassifier->mSkipTypeDeclarations = true; |
| 4296 | if (charData != NULL) |
| 4297 | { |
| 4298 | if ((doClassifyPass) && (bfParser->mRootNode != NULL)) |
| 4299 | bfParser->mSourceClassifier->Visit(bfParser->mRootNode); |
| 4300 | } |
| 4301 | bfParser->mSourceClassifier->mSkipTypeDeclarations = false; |
| 4302 | bfParser->mSourceClassifier->mSkipMethodInternals = false; |
| 4303 | } |
| 4304 | |
| 4305 | BF_EXPORT void BF_CALLTYPE BfParser_FinishClassifier(BfParser* bfParser, BfResolvePassData* resolvePassData) |
| 4306 | { |