| 3355 | } |
| 3356 | |
| 3357 | static struct arg_list arg_compile_impl( struct argument_compiler * c, |
| 3358 | OBJECT * file, int line ) |
| 3359 | { |
| 3360 | struct arg_list result; |
| 3361 | switch ( c->state ) |
| 3362 | { |
| 3363 | case ARGUMENT_COMPILER_START: |
| 3364 | case ARGUMENT_COMPILER_DONE: |
| 3365 | break; |
| 3366 | case ARGUMENT_COMPILER_FOUND_TYPE: |
| 3367 | err_printf( "%s:%d: missing argument name after type name: %s\n", |
| 3368 | object_str( file ), line, object_str( c->arg.type_name ) ); |
| 3369 | exit( EXITBAD ); |
| 3370 | case ARGUMENT_COMPILER_FOUND_OBJECT: |
| 3371 | dynamic_array_push( c->args, c->arg ); |
| 3372 | break; |
| 3373 | } |
| 3374 | result.size = c->args->size; |
| 3375 | result.args = BJAM_MALLOC( c->args->size * sizeof( struct argument ) ); |
| 3376 | memcpy( result.args, c->args->data, c->args->size * sizeof( struct argument |
| 3377 | ) ); |
| 3378 | return result; |
| 3379 | } |
| 3380 | |
| 3381 | static struct arg_list arg_compile( PARSE * parse ) |
| 3382 | { |
no test coverage detected