Bonjour,

Je trouve l'usage du débogueur perl6-debug-m fantastique pour mettre au point une règle de grammaire. L'outil permet de bien comprendre ce qui se passe comme le montre l'exemple suivant :

code 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use v6;
use lib <.>;
 
grammar langageFundementals  {
 
  token character_literal { \'<char>\' }
  token char              {<-[\']> || [\'\']}
 
}
 
sub MAIN() {
my $T1 = "\'T\'";
  my $resu = langageFundementals.parse($T1, rule=> 'character_literal');[ATTACH=CONFIG]531733[/ATTACH]
}
Debug:
Nom : ok.png
Affichages : 145
Taille : 41,7 Ko

On voit très bien ce qui est consommé (ou non) dans le regex en cours.

Néanmoins, j'ai plusieurs situations où ce fonctionnement ne marche pas.

1 - Si ma grammaire est dans un autre fichier.

exemple:
code 2 ( la grammaire utilisée est dans le fichier langageFundamentals.pm6)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
use v6;
use lib <.>;
use langageFundamentals;
 
sub MAIN() {
my $T1 = "\'T\'";
  my $resu = langageFundementals.parse($T1, rule=> 'character_literal');
}
Nom : nok.png
Affichages : 125
Taille : 39,0 Ko

2 - Sous Linux, si je lance le débogueur à partir d'un autre compte que postgres (compte d'installation de la BD PostgreSQL) ( J'ai essayé root ou un compte utilisateur simple mais sans succès .)
le code 1 donne :
Nom : nok2.png
Affichages : 111
Taille : 39,9 Ko

3 - Sous Windows ...
le code 1 donne
Nom : nokWindows.PNG
Affichages : 114
Taille : 30,8 Ko

Dans les cas 2 et 3 j'ai une erreur dés le début

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Exception Thrown
| Died
que je ne m'explique pas.

Dans le cas 1, il n'y a pas d'exception mais tout se passe comme si le débogueur "sautait" la grammaire ...

Des idées ?

Merci beaucoup pour votre aide.
Bien cordialement,