| 3256 | } |
| 3257 | |
| 3258 | static struct arg_list arg_compile_impl( struct argument_compiler * c, |
| 3259 | OBJECT * file, int line ) |
| 3260 | { |
| 3261 | struct arg_list result; |
| 3262 | switch ( c->state ) |
| 3263 | { |
| 3264 | case ARGUMENT_COMPILER_START: |
| 3265 | case ARGUMENT_COMPILER_DONE: |
| 3266 | break; |
| 3267 | case ARGUMENT_COMPILER_FOUND_TYPE: |
| 3268 | printf( "%s:%d: missing argument name after type name: %s\n", |
| 3269 | object_str( file ), line, object_str( c->arg.type_name ) ); |
| 3270 | exit( 1 ); |
| 3271 | case ARGUMENT_COMPILER_FOUND_OBJECT: |
| 3272 | dynamic_array_push( c->args, c->arg ); |
| 3273 | break; |
| 3274 | } |
| 3275 | result.size = c->args->size; |
| 3276 | result.args = BJAM_MALLOC( c->args->size * sizeof( struct argument ) ); |
| 3277 | memcpy( result.args, c->args->data, c->args->size * sizeof( struct argument |
| 3278 | ) ); |
| 3279 | return result; |
| 3280 | } |
| 3281 | |
| 3282 | static struct arg_list arg_compile( PARSE * parse ) |
| 3283 | { |
no test coverage detected