Ci-dessous, les différences entre deux révisions de la page.
local:moodlescript:expressionsyntaxspecification [2022/08/17 11:16] admin |
local:moodlescript:expressionsyntaxspecification [2024/04/04 15:52] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== Spécification de syntaxe ===== | ||
- | ===== Expressions évaluables MoodleScript ===== | ||
- | Les expressions évaluables MoodleScript, définies à partir de la version 2022081700 du moteur MoodleScript, permettent d'écrire des tests sur des données de Moodle, indépendamment, ou au contraire en relation avec la situation courante de l'utilisateur. Une syntaxe générique a été définie pour permettre d'exprimer de nombreux cas de figure portant sur des données différentes. Cette syntaxe définit : | ||
- | |||
- | * Un jeu d'opérateur logiques pris en charge pour la combinaison "d'éléments évaluables" | ||
- | * La forme générale d'un élément évaluable | ||
- | * Le format des valeurs "littérales" | ||
- | |||
- | ==== Les opérateurs logiques ==== | ||
- | |||
- | Ils sont au nombre de 4 et correspondent à des combinatoires logiques classiques : | ||
- | |||
- | * NOT (opérateur unaire, négation) | ||
- | * AND (binaire, ET logique) | ||
- | * OR (binaire, OU logique) | ||
- | * XOR (binaire, OU exclusif) | ||
- | |||
- | Le traitement de la combinatoire logique ne supporte pas actuellement l'imbrication (nesting), et donc le marquage par parenthèses. Les règles de précédence des opérateurs est imposé : NOT > AND > OR ou XOR. | ||
- | |||
- | ==== forme générale d'un élément évaluable ==== | ||
- | |||
- | Un élément évaluable est une proposition à au plus deux opérandes : | ||
- | |||
- | * [Opérande 1] <operateur> [Opérande 2] | ||
- | * [Opérande 1] <operateur> (cette forme est donc admise pour un opérateur à une opérande.)ne | ||
- | |||
- | Deux types d'opérateurs sont définis : un type portant sur les "données", comme par exemple les opérateurs d'évaluation '=' ou '<'. Les opérandes sont alors des "valeurs" finales d'attributs, comparables arithmétiquement ou textuellement. | ||
- | |||
- | Exemple : | ||
- | |||
- | user:username:"marc":department = "Physics" ("marc" est il lié au département de Physique) | ||
- | |||
- | Le deuxième type porte sur des instances d'objets, comme par exemple l'opérateur 'isloggedin'. Dans ce cas, les opérandes sont des références à des instances d'objets Moodle et non des valeurs d'attributs. | ||
- | |||
- | Exemple : | ||
- | |||
- | user:username:"marc" isenrolled course:current ("marc" a-t-il une inscription active dans le cours courant) | ||
- | |||
- | D'après les définitions différentes ci-avant, on voit que les opérandes peuvent être de trois types : | ||
- | |||
- | * Une valeur scalaire littérale (numérique ou textuelle) | ||
- | * Une référence à un objet | ||
- | * Une référence à un attribut scalaire d'un objet (ce cas est une extension du précédent) | ||
- | |||
- | |||
- | |||
- | [[:local:moodlescript|Revenir à l'index du composant]] |