| 2354 | } |
| 2355 | |
| 2356 | static void compile_append_chain( PARSE * parse, compiler * c ) |
| 2357 | { |
| 2358 | assert( parse->type == PARSE_APPEND ); |
| 2359 | if ( parse->left->type == PARSE_NULL ) |
| 2360 | compile_parse( parse->right, c, RESULT_STACK ); |
| 2361 | else |
| 2362 | { |
| 2363 | if ( parse->left->type == PARSE_APPEND ) |
| 2364 | compile_append_chain( parse->left, c ); |
| 2365 | else |
| 2366 | compile_parse( parse->left, c, RESULT_STACK ); |
| 2367 | compile_parse( parse->right, c, RESULT_STACK ); |
| 2368 | compile_emit( c, INSTR_PUSH_APPEND, 0 ); |
| 2369 | } |
| 2370 | } |
| 2371 | |
| 2372 | static void compile_parse( PARSE * parse, compiler * c, int result_location ) |
| 2373 | { |
no test coverage detected