_
~ DAMOLAB - Les tambouilles textes, teks et hacks ~
"N'oublie pas, un Jedi doit sentir la Force filtrer à travers son esprit" - Obi-Wan à Luke

DAMOLAB (#) ._o_. Blog ._o_. Contact/signalement/... ._o_.

rescue NEO... (Ɨ)


#XBNF #LINUX

XBNF neurotranslator v1.08

Nouvelle mouture de XBNF Neurotranslator : le compilateur de compilateur ultime

| FR | par DAMO |
| 02/01/2024 12h00
| 12/10/2024 18h18 (maj) | Commentaires |




Evolution du compilateur de compilateur Neurotranslator présenté lors du billet (v1.07).

News /!\\ v1.09 en cours de développement :

XBNF Neurotranslator - v1.08 - Quoi de neuf




--------


Le controller


Il est maintenant possible de parser/produire plusieurs fichiers de donnée sans devoir relancer la commande.
Le temps de chargement d'une grammaire XBNF nécessite des ressources afin de créer la structure interne et donc du temps.
Le controller permet de ne pas devoir recharger la grammaire pour chaque nouveau fichier de donnée,
chaque bloc de control, séparé par un %, spécifie les flux d'entré et sortie que la grammaire va lire et produire.

xbnf -c - grammaire.xbnf

_ctrl :
(INFLUX* "fichier1.txt" axiome-de-la-grammaire)
#
(OUTFLUX* "fichier1.out" axiome-de-la-grammaire))
%
_ctrl :
(INFLUX* "fichier2.txt" axiome-de-la-grammaire)
#
(OUTFLUX* "fichier2.out" axiome-de-la-grammaire))
%


Il est toujours possible de paramétrer (fichier, mode ajout, stdin, stdout, ...).

La meilleur application pratique est utiliser sur le moteur de ce blog Sourceforge - Damo-blog-engine
le controller est utilisé lors de la génération des articles par le script dwb-generate.rb.

fonctions


(SNAP <rule>) permet de prendre une photo de ce que la règle aura parsé, et donc de produire la chaine
qui a été parcourue.

EX: A: c0 (SNAP c1 c2 c3) cn # (SNAP)

La catégorie A produira ce qui a été lu par c1 c2 c3.

(STOP) permet de sortir vainqueur d'une compilation sans allez plus loin.
C'est utile pour identifier le comportement à un point donnée.
Cela peut aussi permettre de rechercher une donnée et sortir rapidement sans devoir continuer l'analyse.

(INCLUDE <filename>) inclue le fichier en sortie dont le chemin aura été produit en entré.

(ARRANGEMENT) le tirage aléatoire est effectué à la lecture et non à l'initialisation de la grammaire.

Flux temps-réels


Les options -if et -of cèdent la place à une option globale -f permettant de passer XBNF en mode
flux temps-réel et donc de lire et produire une traduction en temps-réel et piloter selon le flux.

Utilisé conjointement avec l'opérateur "=>" XBNF valide et produit des régles sans attendre la validation de l'axiome de grammaire.

Cas pratiques :

axiome :
// (PARAM* o_rt_flush_stdin_character "\n")
(PARAM* o_rt_flush_duration 100)
(PARAM* o_MTU 1500)
packets

packets : {* <L2 packet> *}

<L2 packet> :
<id>
(! "\n") (! (EOF))
<L2 MAC dst> <L2 MAC src> <L3 packet> <padding> (RC)
=>
"l2_packet={ "
<id> ", "
<L2 MAC src> ", "
<L2 MAC dst> ", "
<L3 packet>
" 'remaining'=> " <padding>
" } \n"

<L2 packet> : {* (! "\n") . *} "\n"
...



axiome : prompt

prompt: pt "\n" prompt
prompt: ()

pt: (SNAP {* (! "\n") . *}) => "Command=" [0] "\n"
pt: () => "# empty command.\n"


Debugger


Plusieurs améliorations :


#XBNF #LINUX

Nom/surnom:
Message:



Aucun commentaire.

dans
une
galaxy
lointaine

"La force est une sorte de fluide crée par tout être vivant, une énergie qui nous entoure et nous pénètre, et qui maintient la galaxie en un tout unique."
- Obi-Wan à Luke Yoda

Charte du site
damolab.zapto.org
Tous les contenus (texte, images, ...) du site
restent la propriété du site.
motorisation grâce à