From alain at barbason.be Mon Jul 6 08:06:48 2020 From: alain at barbason.be (Alain Barbason) Date: Mon, 6 Jul 2020 08:06:48 +0200 Subject: [Perl] Raku : Grammaire et fichier Org In-Reply-To: References: <31dfcb12-16cb-20ba-fad5-5a228a1ad9ba@barbason.be> Message-ID: <7a659b8a-a437-7189-1a51-811d28e5e688@barbason.be> Bonjour, Désolé pour le retour tardif, mais je n'ai reçu le mail qu'aujourd'hui. J'ai du mal expliquer mon exemple . Dans le programme, j'ai une variable $mail où j'ai mis une série d'exemple, avec un split \n\n pour faire "comme ci" c'était des fichiers lu séparément. Et chaque résultat est séparé par une ligne ------------------------------------- (c'est plus facile pour tester et à poster) Tous fonctionnent sauf le dernier. Alain. Le 28/06/20 à 23:06, Laurent Rosenfeld a écrit : > Bonsoir, > > pourrais-tu donner des exemples simples de données pour lesquels ton > programme marche (avec le résultat obtenu, si possible) et des > exemples pour lesquels ça ne marche pas ? > > Bonne soirée, > Laurent. > > Le dim. 28 juin 2020 à 18:15, Alain Barbason > a écrit : > > Bonjour, > > Pour mon programme d'interfaçage graphique de fichier Org > (https://github.com/alainbebe/org-mode-gtk.raku), j'aimerais lire > les fichiers Org à l'aide la grammaire de Raku. > > Je suis parvenu à lire des fichiers en liste et/ou en récursif, > mais quand le fichier contient une nouvelle tâche avec une > indentation en moins, je coince. > Le code ci-dessous match chaque fichier (simulé dans $file), mais > , dernier exemple, place en niveau 2 une tâche qui devrait être en > niveau 1. Ce qui me paraît normal vu le code. J'ai essayé la ligne > 12, mais ça ne match pas. > > Une idée ? > > (posté déjà sur developpez.com ) > > AlainBB > > #!/usr/bin/env perl6 > > use v6; > use Data::Dump; > use Grammar::Tracer; > > my $level; > grammar OrgMode{ > rule TOP{ ^ $} > rule tasks{ \n?+ %%\n} > token task{ ?{$level=""}} > # token task { ? {$level=$level.substr(0, *-1)}} > token content{ ^^($level "*"+)" " .+? $${$level=$0.Str}} > } > > class OM-actions{ > method TOP($/) { > make$.made; > } > method tasks($/) { > make$».made ; > } > method task($/) { > my %task; > %task{"task"}=$.made; > %task{"sub-task"}=$.madeif $.made; > make%task; > } > method content($/) { > make$/.Str ; > } > } > > my $file = > "* juste un header 1 > > * juste deux header 1 > * header 2 > > * juste 3 header 1 > * header 2 > * header 3 > > * juste un header 1 et un sub > ** sub-header 1 > > * juste un header 1 et deux sub * > ** sub-header 1 > ** sub-header 2 > > * juste un header 1 et un sub et un sub-sub > ** sub-header 1 > *** sub-sub-header 1 > > * 2 header 1 et un sub au milieu > ** sub-header 1 > * header 2" > ; > > say"\n" x10; > sub parse_file($file) { > say$file; > say""; > $level=""; > # say OrgMode.parse($file); > say Dump OrgMode.parse($file,:actions(OM-actions)).made; > say"---------------------------------------------------------------------------------------"; > } > > parse_file($_) for split("\n\n",$file); > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques > > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From alain at barbason.be Mon Jul 6 08:22:00 2020 From: alain at barbason.be (Alain BarBason) Date: Mon, 6 Jul 2020 08:22:00 +0200 Subject: [Perl] Raku : Grammaire et fichier Org In-Reply-To: <7a659b8a-a437-7189-1a51-811d28e5e688@barbason.be> References: <31dfcb12-16cb-20ba-fad5-5a228a1ad9ba@barbason.be> <7a659b8a-a437-7189-1a51-811d28e5e688@barbason.be> Message-ID: Le 6/07/20 à 08:06, Alain Barbason a écrit : > Bonjour, > > Désolé pour le retour tardif, mais je n'ai reçu le mail qu'aujourd'hui. > > J'ai du mal expliquer mon exemple . > > Dans le programme, j'ai une variable $mail où j'ai mis une série pas $mail, mais $file évidemment From alain at barbason.be Fri Jul 17 09:36:40 2020 From: alain at barbason.be (Alain BarBason) Date: Fri, 17 Jul 2020 09:36:40 +0200 Subject: [Perl] Raku : Grammaire et fichier Org In-Reply-To: <7a659b8a-a437-7189-1a51-811d28e5e688@barbason.be> References: <31dfcb12-16cb-20ba-fad5-5a228a1ad9ba@barbason.be> <7a659b8a-a437-7189-1a51-811d28e5e688@barbason.be> Message-ID: Bonjour, J'ai trouvé. my $level; grammar OrgMode { rule TOP { ^ $ } rule tasks { + } token task { ? {$level=$level.substr(0,*-1)}} token content { ^^ ($level "*"+)" "{$level=$0} .+? } } Le 6/07/20 à 08:06, Alain Barbason a écrit : > Bonjour, > > Désolé pour le retour tardif, mais je n'ai reçu le mail qu'aujourd'hui. > > J'ai du mal expliquer mon exemple . > > Dans le programme, j'ai une variable $mail où j'ai mis une série > d'exemple, avec un split \n\n pour faire "comme ci" c'était des fichiers > lu séparément. > > Et chaque résultat est séparé par une ligne > ------------------------------------- > > (c'est plus facile pour tester et à poster) > > Tous fonctionnent sauf le dernier. > > > Alain. > > Le 28/06/20 à 23:06, Laurent Rosenfeld a écrit : >> Bonsoir, >> >> pourrais-tu donner des exemples simples de données pour lesquels ton >> programme marche (avec le résultat obtenu, si possible) et des >> exemples pour lesquels ça ne marche pas ? >> >> Bonne soirée, >> Laurent. >> >> Le dim. 28 juin 2020 à 18:15, Alain Barbason > > a écrit : >> >> Bonjour, >> >> Pour mon programme d'interfaçage graphique de fichier Org >> (https://github.com/alainbebe/org-mode-gtk.raku), j'aimerais lire >> les fichiers Org à l'aide la grammaire de Raku. >> >> Je suis parvenu à lire des fichiers en liste et/ou en récursif, >> mais quand le fichier contient une nouvelle tâche avec une >> indentation en moins, je coince. >> Le code ci-dessous match chaque fichier (simulé dans $file), mais >> , dernier exemple, place en niveau 2 une tâche qui devrait être en >> niveau 1. Ce qui me paraît normal vu le code. J'ai essayé la ligne >> 12, mais ça ne match pas. >> >> Une idée ? >> >> (posté déjà sur developpez.com ) >> >> AlainBB >> >> #!/usr/bin/env perl6 >> >> use v6; >> use Data::Dump; >> use Grammar::Tracer; >> >> my $level; >> grammar OrgMode{ >> rule TOP{ ^ $} >> rule tasks{ \n?+ %%\n} >> token task{ ?{$level=""}} >> # token task { ? {$level=$level.substr(0, *-1)}} >> token content{ ^^($level "*"+)" " .+? $${$level=$0.Str}} >> } >> >> class OM-actions{ >> method TOP($/) { >> make$.made; >> } >> method tasks($/) { >> make$».made ; >> } >> method task($/) { >> my %task; >> %task{"task"}=$.made; >> %task{"sub-task"}=$.madeif $.made; >> make%task; >> } >> method content($/) { >> make$/.Str ; >> } >> } >> >> my $file = >> "* juste un header 1 >> >> * juste deux header 1 >> * header 2 >> >> * juste 3 header 1 >> * header 2 >> * header 3 >> >> * juste un header 1 et un sub >> ** sub-header 1 >> >> * juste un header 1 et deux sub * >> ** sub-header 1 >> ** sub-header 2 >> >> * juste un header 1 et un sub et un sub-sub >> ** sub-header 1 >> *** sub-sub-header 1 >> >> * 2 header 1 et un sub au milieu >> ** sub-header 1 >> * header 2" >> ; >> >> say"\n" x10; >> sub parse_file($file) { >> say$file; >> say""; >> $level=""; >> # say OrgMode.parse($file); >> say Dump OrgMode.parse($file,:actions(OM-actions)).made; >> say"---------------------------------------------------------------------------------------"; >> } >> >> parse_file($_) for split("\n\n",$file); >> >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques >> >> >> _______________________________________________ >> Perl mailing list >> Perl at mongueurs.net >> http://listes.mongueurs.net/mailman/listinfo/perl >> Attention, les archives sont publiques > > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques > From emmanuel at seyman.fr Wed Jul 29 23:53:54 2020 From: emmanuel at seyman.fr (Emmanuel Seyman) Date: Wed, 29 Jul 2020 23:53:54 +0200 Subject: [Perl] Raku: Programmation fonctionnelle Message-ID: <20200729215354.GA152743@orient.home> Je transmets un lien vers un article de blog que j'ai trouvé intéressant : https://wimvanderbauwhede.github.io/articles/decluttering-with-functional-programming/ Wim Vanderbauwheide a écrit sur la programmation fonctionnelle et a choisi d'illustrer ses propos avec des exemples en Raku (et Python). Emmanuel From pdupre at gmx.com Thu Jul 30 17:41:35 2020 From: pdupre at gmx.com (Patrick Dupre) Date: Thu, 30 Jul 2020 17:41:35 +0200 Subject: [Perl] Balloon in Tk Message-ID: Bonsoir, Est-ce que je peux attacher un Balloon a 2 frames ? genre : my $help_par = $frame_par_1 -> Balloon () ; $help_par -> attach ($frame_par_1, -initwait => '150', -balloonmsg => 'QN (like +-)', -state => 'balloon') ; et $help_par -> attach ($frame_par_2, -initwait => '150', -balloonmsg => 'QN (like +-)', -state => 'balloon') ; Merci. =========================================================================== Patrick DUPRÉ | | email: pdupre at gmx.com Laboratoire interdisciplinaire Carnot de Bourgogne 9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE Tel: +33 (0)380395988 =========================================================================== From laurent.rosenfeld at googlemail.com Thu Jul 30 22:40:41 2020 From: laurent.rosenfeld at googlemail.com (Laurent Rosenfeld) Date: Thu, 30 Jul 2020 22:40:41 +0200 Subject: [Perl] Raku: Programmation fonctionnelle In-Reply-To: <20200729215354.GA152743@orient.home> References: <20200729215354.GA152743@orient.home> Message-ID: Oui, j'avais également trouvé cet article sur la programmation fonctionnelle en Raku et en Python fort intéressant. Bonne idée de fournir un lien, Emmanuel. Bonne soirée, Laurent. Le mer. 29 juil. 2020 à 23:54, Emmanuel Seyman a écrit : > > Je transmets un lien vers un article de blog que j'ai trouvé intéressant : > > https://wimvanderbauwhede.github.io/articles/decluttering-with-functional-programming/ > > Wim Vanderbauwheide a écrit sur la programmation fonctionnelle et a choisi > d'illustrer ses propos avec des exemples en Raku (et Python). > > Emmanuel > _______________________________________________ > Perl mailing list > Perl at mongueurs.net > http://listes.mongueurs.net/mailman/listinfo/perl > Attention, les archives sont publiques > -------------- section suivante -------------- Une pièce jointe HTML a été nettoyée... URL: From pdupre at gmx.com Fri Jul 31 23:51:50 2020 From: pdupre at gmx.com (Patrick Dupre) Date: Fri, 31 Jul 2020 23:51:50 +0200 Subject: [Perl] PDL et min Message-ID: Bonjour, Ce morceau de code me donne une erreur (parfois une alarme) #!/usr/bin/perl use PDL; use List::Util qw [min max] ; print min (4, 5), "\n" ; Prototype mismatch: sub main::min: none vs (@) at /usr/share/perl5/vendor_perl/Exporter.pm line 66. at ./pl.pl line 4. Prototype mismatch: sub main::max: none vs (@) at /usr/share/perl5/vendor_perl/Exporter.pm line 66. at ./pl.pl line 4. Comment l'eviter ? =========================================================================== Patrick DUPRÉ | | email: pdupre at gmx.com Laboratoire interdisciplinaire Carnot de Bourgogne 9 Avenue Alain Savary, BP 47870, 21078 DIJON Cedex FRANCE Tel: +33 (0)380395988 ===========================================================================