Évalue l'expression dans le contexte du moteur (règle et situation).
Pour des raisons de performance, les résultats intermédiaires sont enregistrés
dans un cache. Par conséquent, les prochains appels seront plus rapides.
**Arguments**
-`expression`: la formule à évaluer (type `string`). Cela peut-être une
référence vers une règle, une expression arithmétique, tout ce que la
grammaire publicode permet.
-`options`: un objet de configuration pour l'évaluation
-`unit`: spécifie l'unité dans laquelle le résultat doit être retourné.
Si la valeur retournée par le calcul est un nombre, ce dernier sera converti dans l'unité demandée. Ainsi `evaluate('prix', {unit: '€'})` équivaut à `evaluate('prix [€]')`. Une erreur est levée si l'unité n'est pas compatible avec la formule.
**Retourne**
Un objet javascript de type `EvaluatedNode` contenant la valeur calculée.
> **Attention !** Il est déconseillé d'utiliser directement les valeurs présentes
> dans l'objet retourné, étant donné que leur forme va très probablement changer
> au cours des prochaines versions du moteur.
> Utilisez la fonction `formatNode(evaluationResult)` autant que possible pour
-`evaluatedNode` : l'objet retourné lors de l'appel à la fonction
d'évaluation du moteur `evaluate(expression)`
-`options` : configuration pour le formatage
-`language`: le langage utilisé pour le formatage (par défaut `fr`)
-`precision`: le nombre de chiffre après la virgule pour le formatage des nombres (par défaut `2`)
-`displayedUnit`: l'unité à afficher pour le formatage des nombres. Outrepasse l'unité définie dans le calcul (on peut donc forcer l'unité affichée à une autre que celle retournée par le calcul, même si elle ne sont pas compatibles)
**Retourne**
La chaîne de caractère correspondant à la valeur bien formatée.
Publicodes exporte des composants react permettant d'afficher une documentation
explorable des calculs. Cette documentation est auto-générée en s'appuyant sur
les données descriptives contenues dans les règles publicodes (description,
références, titre, note, etc.) et en affichant pour chaque règle les étapes
intermédiaires qui permettent d'aboutir au résultat affiché.
[Voir un exemple sur mon-entreprise.fr](https://mon-entreprise.fr/documentation/imp%C3%B4t/foyer-fiscal/imp%C3%B4t-sur-le-revenu/imp%C3%B4t-brut-par-part)
#### <Documentation />
Composant react permettant d'afficher une documentation explorable d'une base de règles
publicodes. Se base sur react-router pour créer une arborescence de pages
correspondant aux espaces de noms existants dans les règles.
Voir le [bac à sable](https://publi.codes/studio) pour voir le composant en
action (il est affiché sur l'écran de droite).
**Props**
-`engine`: l'objet moteur dont on veut afficher les calculs.
-`documentationPath` : (`string`) le chemin de base sur lequel la documentation sera
montée. Par exemple, si c'est `/documentation` l'url de la règle 'rémunération
. primes' sera `/documentation/rémunération/primes`
-`language`: le language dans lequel afficher la documentation (pour l'instant,
seul `fr` et `en` sont supportés)
#### <RuleLink />
Composant react permettant de faire un lien vers une page de la documentation.
Par défaut, le texte affiché est le nom de la règle.
**Props**
-`engine`: l'objet moteur dont on veut afficher la règle.
-`documentationPath` : (`string`) le chemin de base sur lequel la documentation est
montée. Doit correspondre à celui précisé pour le composant `<Documentation />`
-`dottedName`: le nom de la règle à afficher
-`displayIcon`: affiche l'icône de la règle dans le lien (par défaut à `false`)
-`children`: N'importe quel noeud react. Par défaut, c'est le nom de la règle qui est utilisé.