MCPcopy Create free account
hub / github.com/WheretIB/nullc / AddIfElseNode

Function AddIfElseNode

NULLC/Callbacks.cpp:4670–4689  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4668 CodeInfo::nodeList.back()->SetCodeInfo(pos);
4669}
4670void AddIfElseNode(const char* pos)
4671{
4672 CodeInfo::lastKnownStartPos = pos;
4673 assert(CodeInfo::nodeList.size() >= 3);
4674
4675 if(OptimizeIfElse(true))
4676 return;
4677
4678 NodeZeroOP *bodyE = CodeInfo::nodeList.back(); CodeInfo::nodeList.pop_back();
4679 NodeZeroOP *bodyT = CodeInfo::nodeList.back(); CodeInfo::nodeList.pop_back();
4680
4681 if(CodeInfo::nodeList.back()->typeInfo->type == TypeInfo::TYPE_COMPLEX && CodeInfo::nodeList.back()->typeInfo != typeObject)
4682 AddFunctionCallNode(pos, "bool", 1, true);
4683
4684 CodeInfo::nodeList.push_back(bodyT);
4685 CodeInfo::nodeList.push_back(bodyE);
4686
4687 CodeInfo::nodeList.push_back(new NodeIfElseExpr(true));
4688 CodeInfo::nodeList.back()->SetCodeInfo(pos);
4689}
4690void AddIfElseTermNode(const char* pos)
4691{
4692 CodeInfo::lastKnownStartPos = pos;

Callers 1

ParseIfExprFunction · 0.85

Calls 7

assertFunction · 0.85
OptimizeIfElseFunction · 0.85
AddFunctionCallNodeFunction · 0.85
SetCodeInfoMethod · 0.80
sizeMethod · 0.45
pop_backMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected