Forte

Nyelvi elemek, változók, kifejezések, láthatóság

Változók

A változók nevének a következő feltételeknek kell megfelelniük:
  1. Az első karakternek alfabetikus karakternek kell lennie.
  2. Nem tartalmazhat space-t, illetve szimbólumokat (kivéve: _).
  3. Bármilyen hosszú lehet a változó neve.
  4. Ez alól csak a foglalt szavak kivételek.
  5. Nem "case sensitive" a TOOL, azaz nem tesz különbséget nagy- és kisbetűk között.

A változót nem szükséges deklaráláskor inicializálni. Ez késöbb is megtehető, de legkésöbb a változó első használata előtt meg kell történnie. Az inicializálatlan változó értéke NIL.

Kötött szavak

TOOL által foglalt szavak:
and, attribute, begin, case, changed, class, constant, continue, copy, cursor, do, else, elseif, end, enum, event, exception, exit, false, for, forward, from, handler, has, if, in, includes, inherits, input, is, loop, method, new, nil, not, of, or, output, post, postregister, preregister, private, property, public, raise, register, return, service, sql, start, struct, super, task, then to, transaction, true, typedef, union, virtual, when, where, while

SQL által foglalt szavak:
all, any, as, asc, between, by, close, connect, current, default, delete, desc, distinct, escape, execute, exists, extend, extent, fetch, fragment, from, grant, group, having, immediate, insert, into, like, minus, null, on, open, order, procedure, raise, revoke, select, session, set, some, unique, update, values, where

Kifejezések

A kifejezések mindig jobbról balra, illetve a zárójelek által meghatározott sorrendben értékelődnek ki. A kifejezések infix formátumúak. Operátor túlterhelés nem lehetséges a Forté-ban.
A kifejezések összehasonlítására a következő operátorok állnak rendelkezésre: =, , !=, , =. (Az összehasonlító műveleteknek létezik objektum szintű változata is.)
Logikai operátorok: not, and, or
Numerikus oparátorok: +, -, *, /, -(unáris), +(unáris), %(maradékos osztás), &(bitenkénti és), | (bitenkénti vagy), ^ (bitenkénti kizáró vagy), ~ (unáris bitenkénti negálás) Ezek precedencia-sorrendje:
Precedencia szint Operátor:
1
[], ->
2
* (pointer), & (address of)
3
- (unáris), +(unáris)
4
*, /, %
5
+, -
6
, =, =, , !=
7
& (bitenkénti és)
8
^ (bitenkénti kizáró vagy)
9
| (bitenkénti vagy)
10
not
11
and
12
or

Láthatóság:

A változó láthatósága arra a blokkra és alblokkjaira terjed ki, ahol deklarálásra került (és nem arra a blokkra, ahol inicializálásra került). Amennyiben a változó egy metódus elején lett deklarálva, abban az esetben a láthatóság a metódus végéig érvényes. Az osztály attributumainak és metódusainak láthatósága lehet privát és publikus is. Privát attributumok esetén értékadás csak a publikus és osztályon belüli metódusok segitségével történhet.

Literálok

Az egész típusú literálok alakja a következő: [+|-]számjegyek (számjegyek=0-9). Használható még a hexadecimális számrendszer is, amelynek szintaxisa a következő: 0xszámjegyek (számjegyek = 0-9, A-F, a-f). A lebegőpontos számok alakja a következő: [+|-]számjegyek.számjegyek[e|E[+|-]egész]
A string-ek esetében a többsoros literálok megengedettek. Vezérlő karaktereket is használhatunk. Ezek a következőek:
Speciális karakterek: Beírásuk módja:
'
\'
\
\\
új sor
\n
kocsi vissza
\r
tab
\t
csengő
\a
törlés
\b
lapdobás
\f
függőleges tab
\v
oktális szám
\000, ahol 0=0-7
hexadecimális szám
\xhh, ahol 0=0-9,A-F,a-f

Commentezés

Egysoros commentezésre a már C-ből és Ada-ból is jól ismert // illetve -- is használható. Hatásköre a sor végéig terjed ki. Példa:
// Ez egy egysoros comment. -- Ez is egy egysoros comment.
Több sor vagy tömb commentezésére pedig a /* */ használható. Pl.: Példa:
/* Ez egy többsoros comment rész. */
Dokumentációs megjegyzéseket nem támogat a nyelv.