Ce commit parachève la sortie de l'ensemble des functions "evaluate" de
l'AST et ajoute un "nodeKind" sur chaque nœud afin de les associer à la
bonne function d'évaluation.
L'API pour les mécanismes pourra être améliorée afin de ne pas appeler
`registerEvaluationFunction` sur chaque mécanisme mais en standardisant
l'interface exportée par les mécanismes, par exemple
export { name, parse, evaluate, render }
Par ailleurs il devrait être facile de sortir les fonctions `jsx` en se
basant sur les mêmes "nodeKind".
Enfin, il faudra nettoyer l'AST pour supprimer les attributs inutilisés
et ajouter du typage fort.
Si une inversion n'est pas trouvée à 0,1 près, fallback à 1 près.
Utile pour les cotisations des avocats, et permet de réaliser certaines
inversions qui étaient impossibles jusqu'à lors (cf. snapshots).
Build a dependencies graph and detect cycles:
* Types and guards for nodes of the ParsedRules AST
* Simple visitor framework for the nodes and their `formule` sub-nodes
* Build a directed graph for dependencies using @dagrejs/graphlib
Le mécanisme "allègement" proposaient ces deux paramètres ajoutant
beaucoup de complexité pour une seule utilisation dans la base de règle
qui peut être remplacée par une formule littérale.
Closes#1119
Donne l'occasion d'experimenter avec la génération automatique de formulaire
en publicodes. Pas mal de question à creuser, mais quelques pistes interessantes
Refacto qui avait été commencée sans aller au bout.
Sort aussi quelques fonctions `evaluate` des fonctions de parsage
lorsque qu'elle n'utilisent pas les paramètres de `parse`.
note : il faudra songer sérieusement à modifier ce mécanisme de composante, source de nombreux bug (cf #874)
Ajoute des tests de non regressions pour la page d'aide