Aller au contenu
EN FR

Patterns testés et formes invalides

Statut documentaire : reference — voir Maturité et preuves.

La documentation H-Logic doit se comporter comme une spécification exécutable. Les exemples doivent rester alignés sur la grammaire courante et sur les catégories de tests du parser/évaluateur.

Familles de patterns stables

Les familles de référence validées couvrent les expressions primitives et collections, les définitions, rôles typés et attributs, instances nommées et anonymes, attachement d’interface, quantificateurs, relations logiques, définitions composites/projetées, commandes et requêtes.

Exemples :

#an_apple;
1;
'abc';
1.75;
true;
();
(x,);
(x, y);
[a, b];
{#a, #b};
define .:#Transfer(me)[sender:#Person, receiver:#Person, amount::#float];
#alice::#Customer;
any x:#A, exists y:#B on .:#Pair(x, y);
ask .:#A(x) and .:#R(x, y) return x;

Formes à rejeter

Ne pas publier d’exemples utilisant ces formes invalides ou trompeuses :

  • variables de requête préfixées comme ?x ;
  • &name utilisé comme nom de rôle ;
  • pseudo-fonctions de contexte non supportées ;
  • application structurelle d’un type non défini ;
  • rôle public projeté absent du corps composite ;
  • forme quantifiée combinant type et égalité (y:#A=&a) ;
  • wildcard interprété comme contrainte nil exacte ;
  • ordre des slots du descendant supposé identique à celui de l’ancêtre ;
  • résultat singleton artificiellement enveloppé dans une liste.

Gate de revue

Avant d’ajouter ou modifier un exemple H-Logic, le valider avec la grammaire cible et, lorsque possible, identifier ou ajouter un test parser/évaluation couvrant le même construct. Si ce travail n’est pas fait, marquer la page architecture ou guide plutôt que de revendiquer le niveau reference.