Bonjour,
Pour le moteur d'inférences RefPerSys ("reflexive persistent system") en
https://github.com/RefPerSys/RefPerSys sous licence GPLv3+ il me faut un generateur d'analyseur syntaxique (voir
https://en.wikipedia.org/wiki/Comparison_of_parser_generators ...)
qui génère du code C++, et le code généré doit être compatible avec un ramasse-
miettes précis que j'ai déjà écrit, et accepter en entrée une chaine (std::string) ou un flot générique d'octets (std::istream) encodé en UTF-8.
Pour fixer les idées le ramasse-miettes existant s'inspire vaguement de celui d'Ocaml ou bien de
http://starynkevitch.net/basile/qishintro.html et utilise des
macros existantes en C++. Dans la terminologie habituelle ce ramasse-miettes est
copieur pour les valeurs immuables mais marqueur pour les objets mutables et contenant chacun un verrou (le modèle objet de RefPerSys s'inspire d'ObjVLisp: héritage simple, métaclasses implémentés avec du code C++ existant)
J'hésite entre deux approches:
1. modifier un générateur d'analyse existant (par exemple GNU bison ou bison++),
mais j'ai besoin d'exemples. En particulier des exemples libres de fichier "skeleton" ou squelette pour ceux-ci.
2. modifier le code C++ généré par ce générateur (qui en pratique est régulier,
peu lisible par un humain...) probablement par un script GNU gawk; ça semble techniquement risqué (car le générateur -comme GNU bison- ne garantit rien sur
la forme syntaxique du code C++ généré).
sachant que j'ai déjà écrit du code C++ pour l'analyse lexicale (c'est dans le
fichier lexer_rps.cc)
la difficulté supplémentaire est que RefPerSys est multi-threadé. Un thread posix peut modifier le tas durant l'analyse syntaxique (mais les données sont vérouillées par des std::mutex).
Les idées de RefPerSys sont expliquées en anglais sur
http://refpersys.org/ et
je peux bien évidemment répondre par courriel à toute question technique.
En plus je cherche à intégrer un consortium ANR ou ITEA ou HorizonEurope existant pour soutenir et financer très partiellement ce projet logiciel libre et/ou des contributeurs bénévoles (au moins pour des suggestions de syntaxe et
d'applications).
Vos conseils et suggestions sont bienvenus.
--
Basile STARYNKEVITCH <
basile@starynkevitch.net>
8 rue de la Faïencerie
92340 Bourg-la-Reine, France
http://starynkevitch.net/Basile &
https://github.com/bstarynk
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)