| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| int amgc_init_unit_meta( |
| const struct amgc_unit_ctx * uctx, |
| struct amgc_unit_meta * meta) |
| { |
| union entity_t * entity; |
| |
| entity = uctx->ccunit->ast->scope.first_entity; |
| |
| for (; entity; entity=entity->base.next) { |
| if (strcmp(*uctx->path,entity->base.pos.input_name)) |
| continue; |
| |
| if ((is_declaration(entity)) && (entity->declaration.implicit)) |
| meta->ngenerated++; |
| |
| else { |
| switch (entity->kind) { |
| case ENTITY_ENUM: |
| meta->nenums++; |
| break; |
| |
| case ENTITY_ENUM_VALUE: |
| meta->nenumvals++; |
| break; |
| |
| case ENTITY_TYPEDEF: |
| meta->ntypedefs++; |
| break; |
| |
| case ENTITY_STRUCT: |
| if (entity->base.symbol || entity->compound.alias) |
| meta->nstructs++; |
| break; |
| |
| case ENTITY_UNION: |
| if (entity->base.symbol || entity->compound.alias) |
| meta->nunions++; |
| break; |
| |
| case ENTITY_FUNCTION: |
| meta->nfunctions++; |
| break; |
| |
| default: |
| break; |
| } |
| } |
| } |
| |
| return 0; |
| } |