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
Debug:
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] }
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'); }
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 :
3 - Sous Windows ...
le code 1 donne
Dans les cas 2 et 3 j'ai une erreur dés le début
que je ne m'explique pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception Thrown | Died
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,
Partager