4 pièce(s) jointe(s)
[perl6] perl6-debug-m et debug de grammaire
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:
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:
Pièce jointe 531733
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:
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');
} |
Pièce jointe 531735
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 :
Pièce jointe 531737
3 - Sous Windows ...
le code 1 donne
Pièce jointe 531741
Dans les cas 2 et 3 j'ai une erreur dés le début
Code:
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,