A Theta programozási nyelv

Lexikális egységek

A szintaxis definiálásához a BNF nyelvtant használjuk. Ebből a következő formában építkezhetünk:

        <nem_terminális_elem> -> <alternatíva1> | <alternatíva2> | <alternatíva3> | "..."

A következő formával jelöljük, hogy az opcionális részt, ami egyszer, vagy egyszer sem szerepelhet:

        [<opcionális_rész>]

A következő forma azt jelenti, hogy az opcionális rész akárhányszor (akár egyszer sem) szerepelhet:

        [<optional>]*

A kis és nagy betűk azonosak

kis és nagy betűk azonosak a Theta-ban. Például a "THEN", then és "Then" ekvivalensek, mindannyian fenntartott szavak.

Tokenek és szeparátorok

Egy modul tokenek és szeparátorok sorozata. A token nyomtatható ASCII karakterek sorozat, lehet egy fenntartott szól, egy azonosító, egy literál, egy operátor vagy egy elválasztójel. A szeparátor egy "szóköz" karakter (szóköz (space), vertikális tabulátor, horizontális tabulátor, kocsivissza (CR), újsor (NL) vagy lapdobás) vagy egy komment. Nulla vagy több szeparátor lehet minden token között, de legalább egy szeparátornak kell állnia minden két egymás melletti nem önmagát termináló token: fenntartott szavak, azonosítók, egész literálok és valós literálok. A tokenekről bővebb leírás található a következő szakaszban.

Kommentek (megjegyzések)

kommentek (megjegyzések) egy százalék jellel (%) kezdődnek és a következő sor végét jelentő (vertikális tabulátor, kocsivissza, új sor vagy lapdobás) karakterig tartanak. A közbezárt karakterek egyetlen szeparátorként lesznek kezelve, egyébként a fordító figyelmen kívül hagyja őket.

Fenntartott szavak

A következő tokenek fenntartott szavak a nyelvben:

begin
bind
break
class
continue
do
else
elseif
end
except
exit
for
has
hides
if
implements
in
inherits
iter
make
makes
module
others
proc
provides
resignal
return
returns
same_object
self
signal
signals
tagcase
then
type
typecase
when
where
while
yield
yields

Ezeken kívül a következő szavak is foglaltak, mert ezek a nyelv beépített típusainak, paraméterezhető típusainak, vagy ezekhez tartozó literálok nevei:

any
array
bool
char
false
int
maybe
nil
null
oneof
real
record
sequence
string
struct
true
vector

A "failure" token speciális szó a nyelvben, ez egy exception neve, de ez nem fenntartott szó.

Azonosítók

Az azonosítók betűk, számok és aláhúzás-jelből álló sorozatok lehetnek, melyek betűvel vagy számmal kezdődnek.

Literálok

A nyelvben litarálok is találhatók, melyek a beépített típusok egyes objektumait nevezik meg, ezek a következők: "null", "bool", "int", "real", "char" és "string".

Operátorok és írásjelként használt szimbólumok

A tokenek egy részét operátorként és írásjelként használjuk. A következő táblázatban megtalálható a Theta összes operátora és írásjele. Ezen tokenek egy része rövidítésként használatos a különböző metódus hívásokkor. Minden egyszerű karakter tokenhez a táblázat megadja a hexadecimális ASCII kódját is. (A "b_c" jelölés a c számot jelenti b számrendszerben.)

"

16_22

<

16_3c

=

16_26

<=

 

'

16_27

=

16_3d

(

16_28

>

16_3e

)

16_29

>=

 

*

16_2a

[

16_5b

**

 

]

16_5d

+

16_2b

^

16_5e

,

16_2c

;

16_6b

-

16_2d

{

16_7b

.

16_2e

|

16_7c

..

 

||

 

/

16_2f

}

16_7d

//

 

~

16_7e

:

16_3a

~=

 

:=

 

\

16_5c

 

A következő nyomtatható ACSII karakterek nincsenek használva a nyelvben.

! Felkiáltójel

16_21

? kérdőjel

16_3f

# kettős kereszt

16_23

@ kukacjel

16_40

$ dollárjel

16_24

` fordított idézőjel

16_60

 

A % ASCII karaktert (ASCII 16_25) megjegyzésekhez használjuk.