| 2405 | } |
| 2406 | |
| 2407 | static void compile_append_chain( PARSE * parse, compiler * c ) |
| 2408 | { |
| 2409 | assert( parse->type == PARSE_APPEND ); |
| 2410 | if ( parse->left->type == PARSE_NULL ) |
| 2411 | compile_parse( parse->right, c, RESULT_STACK ); |
| 2412 | else |
| 2413 | { |
| 2414 | if ( parse->left->type == PARSE_APPEND ) |
| 2415 | compile_append_chain( parse->left, c ); |
| 2416 | else |
| 2417 | compile_parse( parse->left, c, RESULT_STACK ); |
| 2418 | compile_parse( parse->right, c, RESULT_STACK ); |
| 2419 | compile_emit( c, INSTR_PUSH_APPEND, 0 ); |
| 2420 | } |
| 2421 | } |
| 2422 | |
| 2423 | static void compile_parse( PARSE * parse, compiler * c, int result_location ) |
| 2424 | { |
no test coverage detected