Construct est un DSL implémenté en Python utilisé pour décrire les structures de données (binaires et textuelles). Une fois que vous avez décrit la structure de données, construct peut l'analyser et la construire pour vous. Ce qui est bon (« sec », « déclaratives », « dénotationnelle-Sémantique » ...)Haskell équivalent de "Construct" de Python
Exemple d'utilisation:
# code from construct.formats.graphics.png
itxt_info = Struct("itxt_info",
CString("keyword"),
UBInt8("compression_flag"),
compression_method,
CString("language_tag"),
CString("translated_keyword"),
OnDemand(
Field("text",
lambda ctx: ctx._.length - (len(ctx.keyword) +
len(ctx.language_tag) + len(ctx.translated_keyword) + 5),
),
),
)
Je suis dans le besoin d'un tel outil pour Haskell et Je me demande si quelque chose comme ça existe.
Je sais de:
- Data.Binary: L'utilisateur met en œuvre l'analyse syntaxique et la construction séparement
- parsec: Seulement pour l'analyse syntaxique? Seulement pour le texte?
Je suppose qu'il faut utiliser Template Haskell pour y parvenir?
+1. J'adore 'construire' –