Mon espoir est que c'est pas forcément toujours une erreur. E.g. `(_+_ () 4)` ne devrait pas signaler une erreur du tout, mais devrait à la place être reconnu comme un usage du "unary plus".
Le "dummy_epsilon" *est* justement une représentation d'une erreur d'un argument manquant, mais sans le jugement "c'est une erreur" vu qu'à ce stade on ne sait pas si ça le sera.
De manière générale, autant l'analyse lexicale que syntaxique ne devraient presque jamais signaler d'erreur. À la place, les erreurs "de syntaxe" sont reconnues pendant l'élaboration.
Ok, je vois. Donc idéalement, `_+_` serait un macro qui détecterait le ε. Je pense quand même que le ε devrait contenir plus d'information pour permettre au macro de donner un message d'erreur potable, mais c'est probablement une tâche pour une autre fois.
Sinon, voici la branche qui continent les changements pour que les `Node`s aient la location de tous leurs composantes et non pas juste celui de la tête. Elle est prête si vous voulez la réviser.
https://gitlab.com/monnier/typer/-/tree/simon--sexp-node-location
Aussi, j'allais rebaser la branche pour l'amélioration du logging. Je voulais regarder si ce serait plus facile de merger celle pour finaliser les sinfo en premier. Quel est le nom de la branche déjà? Est-ce que c'est `location-sinfo` et est-ce qu'elle est encore à jour?
Simon