“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 321 — #331
i
i
i
i
i
i
i
i
B.4 Les opérateurs
321
declPart
: := variable | |pattern ´=´ expression | |statement
loopDec
: := variable in expression [ ´..´ expression ]
[ ´ ;´ expression ]
| |variable in
expression ´ ;´ expression ´ ;´ expression
| break ’:’ variable | continue ’:’ variable
| return ’:’ variable | default ’:’ expression
| collect ’:’ variable
unaryOp : := ´˜´ | ´@´ | ´ ! !´
binaryOp : := consBinOp | |evalBinOp
consBinOp : := ´#´ | ´|´
evalBinOp : := ´+´ | ´-´ | ´ * ´ | ´/´ | div | mod | andthen | orelse
| ’:=’ | ´,´ | ´=´ | ´==´ | ´\=´ | ´<´ | ´=<´ | ´>´ | ´>=´
| ´.´ | ’::’ | ’=:’ | ’\=:’ | ’=<:’
label
: := unit | true | false | |variable | |atom
feature
: := unit | true | false | |variable | |atom | |int
classDesc : := from { expression }+ | prop { expression }+
| attr { attrInit }+
attrInit
: := ( [ ´ !´ ] variable | |atom | unit | true | false )
[ ’:’ expression ]
methHead : := ( [ ´ !´ ] variable | |atom | unit | true | false )
[ ´(´ { methArg } [ ´...´ ] ´)´ ]
[ ´=´ variable ]
methArg : := [ feature ’:’ ] ( variable | ´_´ | ´$´ )
[ ´<=´ expression ]
Tableau B.6 Les autres symboles non terminaux.
Le tableau B.6 définit les non terminaux pour les déclarations dans les instructions declare, local et define, pour les opérateurs unaires, pour les opérateurs
binaires (les opérateurs « constructifs » consBinOp et les opérateurs « évaluatifs »
evalBinOp), pour les enregistrements (étiquettes et traits) et pour les classes (descripteurs, attributs, méthodes, etc.).
B.4 LES OPÉRATEURS
Le tableau B.7 donne la précédence et l’associativité de tous les opérateurs utilisés
dans ce livre et dans [97]. Tous les opérateurs sont binaires et infixés sauf dans trois
cas. Le signe minus « ˜ » est un opérateur unaire préfixé. Le symbole dièse « # » est
© Dunod – La photocopie non autorisée est un délit
Précédent

- 336/370

Suivant