bonjour,
je souhaite parser une ligne du style macro toto(x,y,z) = x+y
Or, je ne me souviens plus comment on fait pour sauvegarder l'endroit ou c'est arrete une recherche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
#si on a une macro
if ($ligne =~ /^\s*macro\s+(\w+)\s*\(\s*/g) {
    $nom_macro=$1;
    #on parse les parametres
     while ($ligne =~ /\G(\w+)\s*[,]?\s*/g) {
         push(@param,$1);
     }
    # maintenant je veux parser a partir de la ou je me suis arreter ! 
    if (! ($ligne =~/\G\)/g) ) {
        exit(1);
    }
Le probleme est que l'on sort de la boucle de recuperation des parametres lorsque le matching echoue, et donc \G n'a plus de signification !

Aurriez-vous des souvenirs/idees ? ?