Szintaxis
A Cayenne szintaxisa nagyon közel áll a
Haskell nyelv szintaxisához.
Lexikális struktúra
Azonosítók
Az azonosítók betűvel kezdődnek, majd követheti ezt több betű,
számok, sima aposztróf ('), vagy dollár jel ($).
Ha egy azonosító dollár jelet tartalmaz akkor az egy modul azonosító
és csak
modulok megnevezésére használható.
Néhány egyszerű azonosító: x, x',
foo, Bool.
Néhány modul azonosító: foo$bar, System$Bool
Fenntartott szavak
Néhány azonosító fentartott szó a nyelvben, ezért nem használható változónévként:
abstract, case, concrete, data, do, in, interface, let, module
of, open, native, private, public, sig, struct, type, use
Operátorok
Az operátorok karakterek sorozatából épülnek fel:
! @ # $ % & * + . / < = > ? \ ^ | : - ~ ,
ˇ ˘ Ł ¤ Ą ¦ § ¨ © Ş « ¬ ® Ż ° ± ˛ ł ´ µ
¶ · ¸ ą ş » Ľ ˝ ľ ż × ÷
Fenntartott operátorok
Néhány operátor fentartott a rendszer által:
::, =, @, \, |, #, ->, |->, ., <-
Operátor precedenciák
Operátor precedenciák halmaza:
Operátor | Asszociativitás | Precedencia |
->,|-> | jobb | 0 |
=== | none | 1 |
, | bal | 1 |
|| | jobb | 2 |
&& | jobb | 3 |
==,/=,<=,>=,<,>
| none | 4 |
:,++ | jobb | 5 |
+,- | bal | 6 |
*,/ | bal | 7 |
· | jobb | 8 |
other | bal | 9 |
Literálok
Numerikus literálok
Numerikus literálok számok egy nemüres sorozataiból állnak pl:
4711.
Numerikus literálok típusa: System$Int.Int.
Karakter literálok és Sztring literálok
Karakter literálokat aposztrófok közé írjuk, mint pl.
'a', a sztringeket pedig idézőjelek közé, pl.
"Hello".
A charesc kategória
is magában foglalja a hordozható reprezentációit a következő karaktereknek "alert"
(\a), "backspace" (\b), "form feed" (\f), "new line" (\n), "carriage
return" (\r), "horizontal tab" (\t), and "vertical tab" (\v).
Karakter literálok típusa System$Char.Char valamint a sztring literálok típusa System$String.String.
Szerkezet (Layout)
Cayenne ugyan azokat a szerkezeti szabályokat használja mint a Haskell.