_
~ DAMOLAB - XBNF Neurotranslator ~
"Comme tu peux le voir, mon jeune élève, tes amis ont échoué. Tu vas maintenant admirer la puissance de feu et l'efficacité de ma toute nouvelle station spaciale de combat." - Empereur à Luke
DAMOLAB _./._ [ XBNF (#TAGS) ] _./._ Blog (Life) _./._ Brico (#TAGS) _./._ Nous contacter

XBNF neurotranslator v1.15


| FR | par DAMO | | 12/07/2026 20h30 | (last update 13/07/2026 18h55) | Commentaires |
#XBNF #LINUX
Nouvelle mouture de XBNF Neurotranslator : le compilateur de compilateur ultime
|


Pour le détail voir la RELEASE_NOTE.

/!\\ la librairie associée à la v1.15 est validée.

Pour plus de détails, regardez (panneau droit du blog XBNF).

1) XBNF Neurotranslator - v1.15 - Quoi de neuf ?

  • debugger:
    • possibilité de debugger depuis une autre console ou à distance
  • bugs :
    • o_max_depth_analyze / o_max_depth_produce : correction du comportement
    • @var.set : initialisation d'une variable
  • fonctionnalités :
    • (EVAL)
    • (CONSTRAINT*)
    • ajout d'opérations sur variable
  • refactoring que je ne détaillerais pas ici:
    • controller : refonte complète et majeure
    • call_xbnf.h/cc : regroupement des fonctions de manipulation de XBNF
    • beaucoup d'autres refactoring dans cette release


2) Améliorations majeurs



2.1) debugging externe


/!\\ cette v1.15, le debugger externe ne fonctionne pas avec le controller.
Cela vient d'être corrigé en v1.16-dev (en cours) et donc embarquée pour la prochaine v1.16.

Qu'est ce que le debugger externe ?
Jusque la, debugger une grammaire nécessitait d'avoir accès aux entrées/sorties de la console de la commande lancée,
si vous utilisez déja l'entrée ou la sortie standard (pipe), il y a conflit, c'est le cas dès vous utilisez les options:
(-i -) ou (-o -) ou (-c -).
Si vous appelez xbnf via script ou application qui utilisent un ou plusieurs pipe, le debugger n'est plus disponible.

L'option -de permet de palier à cela, il suffit de positionner l'option dans l'appel à XBNF,
dans votre programme qui utilise XBNF, peut importe que vous utilisiez déja des redirections, pipe, ...

Vous pouvez aussi déclencher le mode externe du debugger en positionnant :
 (PARAM* o_debug_ext 1) 


Sur la même machine, mais depuis une nouvelle console, vous accéder au débugger:
tail -f /tmp/xbnf.out&
cat >> /tmp/xbnf.in


Après utilisation, refermer la console, il faut dans la console de debug:
[Control-C] => sort du cat
fg
[Control-C] => sort du tail


Depuis une autre machine, vous pouvez utiliser un wrapper type netcat et debugger à distance.

Avec le controller, donc avec plusieurs fichiers à analyser, il faut utiliser [N] pour basculer les phases,
et donc avancer d'un fichier à l'autre.


2.2) bugs corrigés


       
2.2.1) o_max_depth_analyze / o_max_depth_produce


La profondeur de l'analyse ou production étaient à tord dans la règle et donc erronée,
la correction consiste simplement à stocker la profondeur dans l'arbre courant (Choice).

Cette fois-ci, la profondeur est correctement géré.


       
2.2.2) initialisation de variable


L'initialisation de variable nécessite de cloner l'object pointé comme valeur.
Précédement, une fois la valeur initialisée, le set appelé une seconde fois ne remettait pas la valeur,
la valeur courante était conservée, pas de raz possible.


2.3) fonctionnalités


       
2.3.3) (EVAL <string>)


La fonction EVAL permet d'évaluer une chaine comme élément de grammaire XBNF, l'évaluation se fait en production (output).

En conjonction avec une definition directe, il est possible de modifier le comportement de la grammaire durant
l'analyse.

Voir les cas d'usage avec le test samples/test.call_EVAL.xbnf.

Il est interressant de l'utiliser avec un argument ou variable d'environnement (ARG*/ENV*).

Voir les cas d'usage avec les tests samples/test.ENV.xbnf et samples/test.ARG.xbnf.

       
2.3.4) (CONSTRAINT* <constrained> <rule constraint>)


Cette fonction permet de limiter l'analyse à une taille donnée <rule constraint>,
la categorie <constrained> ne pourra pas dépasser la taille analysée.

/!\\ Cette fonction ne contextualise pas cette limite de taille, elle agit de manière globale.
Le dernier CONSTRAINT sera appliqué en tant que limite.

/!\\ ne support pas le mode o_rt_enable (flux temps-réel).

La fonction (EOF) et l'analyse sera contraint par cette limite.

Voir les cas d'usage avec le test samples/test.call_CONSTRAINT.xbnf.

       
2.3.5) nouvelles opérations sur variable


/!\\ Les variables sont un concept encore expérimentales de XBNF, tout ce fait de manière dynamique.
(les typages, les opérations, l'analyse et la production.

Les fonctions push/pop/unshift/shift permettent manipuler une variable en tant que règle.

Les fonctions ++ / -- / add / to_base permettent de manipuler une variable en tant d'élément de type Number.

Les fonctions to_lower / to_upper permettent de manipuler une variable en tant d'élément de type String.

Voir les cas d'usage avec le test samples/operation.xbnf.


Joyeuses translations ...





Nom/surnom:
Message:


revenir sur l'article
#XBNF #LINUX

Aucun commentaire.

dans
une
galaxy
lointaine
Charte du site damolab.zapto.org est motorisé par

"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 -