Je suis sur un parser de .h
je doit récupérer les variables,structures,enums,fonctions,defines etc...
En ce qui concerne les structures et enums, je doit extraire imdépendament leur contenus, c'est a dire des variables. D'ou mon hash de hash!
Même avec \%H_str, j'ai la même erreur : 0dd number of elements in hash assignment at ... lorsque que je fait
1 2
| while ( my($str,%hash) = each(%H_str2) )
... |
Si un expert des expréssions régulière passe par ici :
pour l'instant je fait des imbrications de if pour diférencié mes variable:
- const <type> <nom>;
- unsigned <type> <nom>;
- <type> <nom>;
$ligne =~ m/(const\sint|const\sfloat|const\s...char[\s\*]*)\s([*\w,]*);/
(...) = premier module type de ma varible, const int - const char ...
[\s\*]* = si présence d'un pointeur (*) dans le premier module char* - int* - char * ...
([*\w,]*) = deuxieme module, correspond au nom de la variable, nb - *nb - un_char ...
j'ai essaye de mettre [const|unsigned\s]* mais ca ne fonctionnement pas
je voudrais que lorsque la variable est déclarée en const ou unsigned je puisse récupérer ça dans mon premier module ($1) sans etre obligé de faire const\sint|const\s....
Partager