| 3245 | } |
| 3246 | |
| 3247 | void fxYieldExpression(txParser* parser) |
| 3248 | { |
| 3249 | txInteger aLine = parser->states[0].line; |
| 3250 | if (!(parser->flags & mxYieldFlag)) |
| 3251 | fxReportParserError(parser, parser->states[0].line, "invalid yield"); |
| 3252 | else |
| 3253 | parser->flags |= mxYieldingFlag; |
| 3254 | fxMatchToken(parser, XS_TOKEN_YIELD); |
| 3255 | if ((!parser->states[0].crlf) && (parser->states[0].token == XS_TOKEN_MULTIPLY)) { |
| 3256 | fxGetNextToken(parser); |
| 3257 | fxAssignmentExpression(parser); |
| 3258 | fxPushNodeStruct(parser, 1, XS_TOKEN_DELEGATE, aLine); |
| 3259 | return; |
| 3260 | } |
| 3261 | if ((!parser->states[0].crlf) && (gxTokenFlags[parser->states[0].token] & XS_TOKEN_BEGIN_EXPRESSION)) { |
| 3262 | fxAssignmentExpression(parser); |
| 3263 | } |
| 3264 | else { |
| 3265 | fxPushNodeStruct(parser, 0, XS_TOKEN_UNDEFINED, aLine); |
| 3266 | } |
| 3267 | fxPushNodeStruct(parser, 1, XS_TOKEN_YIELD, aLine); |
| 3268 | } |
| 3269 | |
| 3270 | void fxParameters(txParser* parser) |
| 3271 | { |
no test coverage detected