| 2542 | } |
| 2543 | |
| 2544 | void fxBreakContinueNodeCode(void* it, void* param) |
| 2545 | { |
| 2546 | txBreakContinueNode* self = it; |
| 2547 | txCoder* coder = param; |
| 2548 | txTargetCode* target = (self->description->token == XS_TOKEN_BREAK) ? coder->firstBreakTarget : coder->firstContinueTarget; |
| 2549 | while (target) { |
| 2550 | txLabelNode* label = target->label; |
| 2551 | while (label) { |
| 2552 | if (label->symbol == self->symbol) { |
| 2553 | fxCoderAdjustEnvironment(coder, target); |
| 2554 | fxCoderAdjustScope(coder, target); |
| 2555 | fxCoderAddBranch(param, 0, XS_CODE_BRANCH_1, target); |
| 2556 | return; |
| 2557 | } |
| 2558 | label = label->nextLabel; |
| 2559 | } |
| 2560 | target = target->nextTarget; |
| 2561 | } |
| 2562 | if (self->description->token == XS_TOKEN_BREAK) |
| 2563 | fxReportParserError(coder->parser, self->line, "invalid break"); |
| 2564 | else |
| 2565 | fxReportParserError(coder->parser, self->line, "invalid continue"); |
| 2566 | } |
| 2567 | |
| 2568 | void fxCallNodeCode(void* it, void* param) |
| 2569 | { |
nothing calls this directly
no test coverage detected