| 3528 | } |
| 3529 | |
| 3530 | static struct arg_list arg_compile_impl( struct argument_compiler * c, |
| 3531 | OBJECT * file, int32_t line ) |
| 3532 | { |
| 3533 | struct arg_list result; |
| 3534 | switch ( c->state ) |
| 3535 | { |
| 3536 | case ARGUMENT_COMPILER_START: |
| 3537 | case ARGUMENT_COMPILER_DONE: |
| 3538 | break; |
| 3539 | case ARGUMENT_COMPILER_FOUND_TYPE: |
| 3540 | err_printf( "%s:%d: missing argument name after type name: %s\n", |
| 3541 | object_str( file ), line, object_str( c->arg.type_name ) ); |
| 3542 | exit( EXITBAD ); |
| 3543 | case ARGUMENT_COMPILER_FOUND_OBJECT: |
| 3544 | dynamic_array_push( c->args, c->arg ); |
| 3545 | break; |
| 3546 | } |
| 3547 | result.size = c->args->size; |
| 3548 | result.args = (struct argument*)BJAM_MALLOC( c->args->size * sizeof( struct argument ) ); |
| 3549 | if ( c->args->size != 0 ) |
| 3550 | memcpy( result.args, c->args->data, |
| 3551 | c->args->size * sizeof( struct argument ) ); |
| 3552 | return result; |
| 3553 | } |
| 3554 | |
| 3555 | static struct arg_list arg_compile( PARSE * parse ) |
| 3556 | { |
no test coverage detected