| 4035 | } |
| 4036 | |
| 4037 | txFlag fxOptionNodeCodeThis(void* it, void* param, txFlag flag) |
| 4038 | { |
| 4039 | txUnaryExpressionNode* self = it; |
| 4040 | txCoder* coder = param; |
| 4041 | txTargetCode* swapTarget = fxCoderCreateTarget(param); |
| 4042 | txTargetCode* skipTarget = fxCoderCreateTarget(param); |
| 4043 | self->right->flags |= (self->flags & mxTailRecursionFlag); |
| 4044 | flag = fxNodeDispatchCodeThis(self->right, param, flag); |
| 4045 | fxCoderAddBranch(param, 0, XS_CODE_BRANCH_CHAIN_1, swapTarget); |
| 4046 | fxCoderAddBranch(param, 1, XS_CODE_BRANCH_1, skipTarget); |
| 4047 | fxCoderAdd(param, 0, swapTarget); |
| 4048 | fxCoderAddByte(param, 0, XS_CODE_SWAP); |
| 4049 | fxCoderAddByte(param, -1, XS_CODE_POP); |
| 4050 | fxCoderAddBranch(param, 0, XS_CODE_BRANCH_1, coder->chainTarget); |
| 4051 | fxCoderAdd(param, 0, skipTarget); |
| 4052 | return flag; |
| 4053 | } |
| 4054 | |
| 4055 | void fxOrExpressionNodeCode(void* it, void* param) |
| 4056 | { |
nothing calls this directly
no test coverage detected