Lazi

Opparenth

Présentation de Opparenth

Opparenth est ingégré à lazi-translate mais est une librairie indépendante qui peut être utilisée pour n'importe type t d'expression mathématique basé sur l'application.

La fonction d'Opparenth est de gérer les parenthèses, que ce soit en lecture ou écriture. C'est donc lui qui fait en sorte qu'il y ait le moins de parenthèses possibles en écriture et qui associe les sous-expressions suivant les priorités en lecture.

Structure des expressions Opparenth

  • parenthèsage d'une liste d'expressions Opparenth
  • Item(i), i est l'expression de type t correspondant à l'item.
    • Non opérateur
      • À protéger à droite (comme $F x -> x x) : si l'expression se trouve en tant que fonction d'une application alors il faut la parenthèser.
      • Sans besoin de protection (comme $L[ ... ])
    • Opérateur(precedance)
      • Préfix (une forme spéciale de préfix est utilisé en interne et provient d'un infix associé par sa gauche)
      • Postfix
      • Infix
        • non associatif
        • associatif à droite
        • associatif à gauche

Interface

La librairie fournie deux fonctions, une pour l'analyse syntaxique et une pour le rendu.

Parsing : assemble

assemble prend en argument une expression Opparenth et retourne une expression de type t.

Rendering : reduceParenth

reduceParenth prend en argument une expression Opparenth et la retourne avec toutes les parenthèses inutiles enlevées.