Sommaire
Le langage de description de scène, comme tout langage, peut se décrire à l'aide d'une grammaire, qui correspond au programme d'un automate vérifiant la syntaxe d'une expression. On commence par décrire le méta-langage nous permettant d'écritre la grammaire. On utilise 5 opérations présentées de la moins prioritaire à la plus prioritaire :
1. Alternative |2. Suite Absence de symbole3. Ensemble &4. Répétition ...5. Facultatif []
Expression
Description Opération Nom détaillé de l'opération Nom court A | BA ou B. |Opérateur binaire d'alternative. Alternative A BA puis B dans cet ordre précis. Absence de symboleOpérateur binaire de regroupement en suite. Suite A&BA et B dans un ordre quelconque. &Opérateur binaire de regroupement en ensemble. Ensemble A...A une ou plusieurs fois de suite. ...Opérateur unaire de répétition. Répétition [A]A ou rien. [ ]Opérateur unaire pour rendre facultatif. Facultatif
Puis nous n'allons pas détailler la grammaire complète, mais une partie simplifiée, pour permettre l'apprentissage rapide du langage.
Exemple |
Grammaire |
| Chiffre : 0 5 9 | Chiffre = 0|1|2|3|4|5|6|7|8|9 |
| Entier : 3 -2 +1 123 | Entier = [+|-] Chiffre... |
| Nombre : 3 -2 +2.0 0.6 2e-5 +3.4e6 -.5e4 .0 |
Nombre = Entier [e Entier]| [Entier|+|-] . Chiffre... [e Entier] |
Exemple |
Grammaire |
| Vecteur : <0,1,1> <0,1,1,0.5> <0,1.1,2,1,2> |
Vecteur3 = < Nombre , Nombre , Nombre > Vecteur4 = < Nombre , Nombre , Nombre , Nombre > Vecteur5 = < Nombre , Nombre , Nombre , Nombre , Nombre > |
Exemple |
Grammaire |
| Couleur : rgb<1,.2,.2> red 1 blue .8
Soit une couleur C, alors C.red, C.green, C.blue, C.filter, C.transmit, C.gray #declare C = rgbft <.8,.7,.5,.2,.1>; |
Couleur = (rgb Vecteur3| |
L'ensemble des ordres de grandeurs de `bar("*"RR)` forme encore un corps ordonné isomorphe à `bar("*"RR)` .