[Résolu]Script : extraction des appels de fonctions

Script : extraction des appels de fonctions [Résolu] - Shell/Batch - Programmation

Marsh Posté le 20-06-2005 à 11:35:14    

Bonjour,
 
j'essaie de me faire un script pour extraire d'un fichier les appels de fonction. J'ai pensé que la définition d'un appel de fonction serait : "blabla("  .A partir de là, j'ai essayé  
grep -E "[^(!= ]+[(]" test.c | sed -r "s/.* ([^(!= ]+)[(](.*)/\1/g"
et
grep -E "[(]?[a-zA-Z_]*+[(]" test.c | sed -r "s/.* ([(]?[a-zA-Z_]*+)[(](.*)/\1/g"
 
mais je n'obtient pas de résultat satisfaisant, surtout que le fichier n'est pas normalisé (espaces irréguliers autour des affectations par exemple, on a tout de même pas d'espace entre la fonction et la "(" ). J'obtiens bien les appels de fonction mais avec les arguments... et je voudrai aussi virer  les parenthèses. Les deux donnent le même résultat, pas mal, mais je n'arrive pas non plus à virer les '=' comme dans  i=fonction() comment dire "une chaîne qui contient des lettres et _ mais pas de ="?
 
Merci pour les pistes que vous me donnerez!
 
Nifnef


Message édité par nifnef le 20-06-2005 à 13:19:11
Reply

Marsh Posté le 20-06-2005 à 11:35:14   

Reply

Marsh Posté le 20-06-2005 à 11:35:52    

man indent pour retapper un peu ton fichier :)


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 20-06-2005 à 12:42:51    

black_lord a écrit :

man indent pour retapper un peu ton fichier :)


J'aimerai autant que possible ne pas y toucher...
Je l'ai fait et c'est cool, je n'ai plus les pb de tablations non plus  :wahoo:  
Voilà mon dernier essai en date, c'est pas mal, juste qu'il faudrait pouvoir simplifier l'expression reguliere!
grep -E -o "[^\(!= *\)\>\<\)&\+\-\/\*]+[(]" machin.c
 
Je crois que mon problème est résolu!
Merci!


Message édité par nifnef le 20-06-2005 à 13:18:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed