| 4112 | } |
| 4113 | |
| 4114 | BF_EXPORT bool BF_CALLTYPE BfParser_Reduce(BfParser* bfParser, BfPassInstance* bfPassInstance) |
| 4115 | { |
| 4116 | BP_ZONE("BfParser_Reduce"); |
| 4117 | if (bfParser->mUsingCache) |
| 4118 | return true; // Already reduced |
| 4119 | |
| 4120 | bfParser->FinishSideNodes(); |
| 4121 | int startFailIdx = bfPassInstance->mFailedIdx; |
| 4122 | int startWarningCount = bfPassInstance->mWarningCount; |
| 4123 | BfReducer bfReducer; |
| 4124 | bfReducer.mSource = bfParser; |
| 4125 | bfReducer.mCompatMode = bfParser->mCompatMode; |
| 4126 | bfReducer.mPassInstance = bfPassInstance; |
| 4127 | bfReducer.HandleRoot(bfParser->mRootNode); |
| 4128 | if ((startFailIdx != bfPassInstance->mFailedIdx) || |
| 4129 | (startWarningCount != bfPassInstance->mWarningCount)) |
| 4130 | bfParser->mParserData->mFailed = true; |
| 4131 | bfParser->mParserData->mDidReduce = true; |
| 4132 | bfParser->Close(); |
| 4133 | |
| 4134 | return startFailIdx == bfPassInstance->mFailedIdx; |
| 4135 | } |
| 4136 | |
| 4137 | static Array<int> gCharMapping; |
| 4138 | BF_EXPORT const char* BF_CALLTYPE BfParser_Format(BfParser* bfParser, int formatStart, int formatEnd, int** outCharMapping, int maxCol, int tabSize, bool wantsTabsAsSpaces, |
no test coverage detected