Bonjour,
J'ai un problème d'expression régulière, et je ne suis pas un spécialiste, loin de là de ce genre de choses.
Il s'agit de récupérer le numéro de ligne indiqué dans un message d'erreur issu d'un assembleur AVR (Gavrasm) pour qu'elle soit reconnue par Geany et me permettre d'aller à la ligne défectueuse de mon code assembleur en cliquant dessus.
Les messages d'erreur générés par l'assembleur sont mis en forme comme ci dessous:
[adc8dev.asm,42]: "rjm main" > Error 070: Unknown instruction or macro!
Il s'agit d'isoler (ou de faire un "full-match") sur la valeur (ici 42 mais ça peut être n'importe quel autre nombre) délimité par "," et "]" (une virgule et une croche fermante).
Ce que je voudrais pouvoir faire est d'insérer cette expression régulière dans le dialogue de construction de Geany (regex_error=) afin de permettre le saut à la ligne provoquant cette erreur en cliquant sur le message indiquant la ligne défectueuse.
J'ai essayé plein d'expressions régulières sur des sites web, mais le résultat me laisse ",42" ou "42]" selon les formules essayées, mais jamais le "42" tout seul n'est full-matché.
Voici une expression que j'ai essayée, qui me laisse "42]" au lieu du "42" attendu:
([0-9]+)[^\(0-9)+:(0-9)+.(a-z)+.] laisse "42]".
Geany est très documenté, mais pas ou pas suffisamment sur ce point.
Je ne comprend rien a ces expressions régulières, et ce que j'en essaie est frustrant (je préfère le codage en "dur", le scripting n'est pas pour moi). Par contre, je peux changer le format du message d'erreur pour que ce soit plus facile à interpréter, comme:
[adc8dev.asm,(42)]: "rjm main" > Error 070: Unknown instruction or macro!
Je vous remercie d'avance si vous pouviez m'aider, j'ai passé beaucoup de temps là dessus sans comprendre quoi que ce soit.
Cordialement
JF (Kuki el Gato)
Partager