Jelkészlet
A szabvány nem definiál konkrét karakterkódolást, a forráskódban előforduló karaktereket következő típusokra osztja:
- Szintaktikus karakterek & (ampersand) , szóköz, ' (aposztróf ), A-Z, :, vessző (,), =, !, <, >, ( ) - zárójelek,
- Extra betűk Az adott implementáció megengedhet a fentiektől eltérő karaktereket is. Ezeket nevezik extra karaktereknek.
- Egyéb üres hely karakterek Ezek az újsor, tabulátor, vízszintes és függőleges tabulátor, carriage return karakterek.
- Egyéb negátor karakterek Ezek a , karakterek.
- Egyéb karakterek Ezek az implementáció által megengedett karakterek.
A fentiekből látható, hogy a szabvány csak a szintaktikus karakterek meglétét követeli meg.
Kis- és nagybetű
A REXX nyelv a kis- és nagybetűket csak a sztring literálokban különbözteti meg, az azonosítókon és kulcsszavakon belül nem.
Azonosítók
Az azonosítók A-Z, a-z !, ?, 0-9 karakterekből és a fentiekben leírt extra karakterek típusába tartozó karakterekből állhatnak.
Az azonosítóknak betűvel kell kezdődniük, szintaxisukra egyéb megkötés nincs. Nincs megkötés az azonosítók hosszára.
A függvény nevét megadó azonosító nem végződhet ponttal. A nyelv egy azonosítója akkor tekintendő kulcsszónak, ha betűről-betűre
megegyezik egy kulcsszóval és megfelelő környezetben van, különben változónévnek tekintendő. Természetesen ez csak a szintaktikus
és lexikális elemzők együttműködésével valósulhat meg. A szabályok részletezve a következők (megértésükhöz az utasítások
szintaxisának ismerete szükséges, lásd a következő fejezet): Egy azonosító kulcsszó, ha:
- egy do_specification részben szerepel, WHILE vagy UNTIL szavakkal egyezik, és ha változóként lenne értelmezve, akkor az expression rész része lenne.
- do_rep részeként szerepel, megegyezik a TO, BY, FOR szavak egyikével.
- az IF vagy WHEN utáni expression részbe tarozna, ha változó név lenne, és megegyezik a THEN szóval.
- megegyezik a WITH szóval és vagy a PARSE utasítás parsevalue részében, vagy az ADDRESS utasítás taken_constant vagy expression részébe tartozna, ha változónév lenne.
- a fentiekhez nem illeszkedő esetben, ha megegyezik egy olyan kulcsszóval, amelyet a szintaktikus elemező az adott környezetben kulcsszónak ismer el. Azaz:
IF WHEN==2 THEN SAY 'OK'
kódrészlet megengedett. A kulcsszavak és az előre definiált szavak között nincs különbség.
Literálok
A nyelvben numerikus és sztring literálok vannak. A numerikus literálok lehetnek:
- Bináris literálok 0,1 karakterekből állnak
- Hexadecimális literálok hexadecimális számjegyekből (0-9, A,B,C,C,E,F) állnak.
- Decimális literálok 10-alapú számrendszerbeli számok, lehetnek egészek , fixpontosak, vagy lebegőpontosak.
A fixpontos és lebegőpontos alakot a szokásos módon, tizedesponttal, illetve kitevős alakban lehet megadni.
A szintaxis:
number ::= plain_number [exponent]
plain_number ::= [.] digit+ | digit+ '.' [digit+]
exponent ::= ( 'e' | 'E' )[ '+' | '-' ] digit+
A sztring literálok " vagy ' jelek által határolt karaktersorozatok. A sztring literálokat alkotó karakterek a következőek lehetnek:
;.,( ) + - |tartozó betűk, az egyéb karakterek típusába tartozó betűk, üres hely (blank) karakterek, számjegyek. A sztring literálok
lehetnek normál sztring literálok, hexadecimális sztringek, bináris sztringek. A hexadecimális sztringek végén 'x' vagy 'X' betű áll,
a bináris sztringek végén 'b' vagy 'B' áll. A hexadecimális és bináris sztringek rendszerint hexadecimális illetve bináris számok
reprezentálására szolgálnak. Egy sztring literál több sorra nem terjedhet ki.
Megjegyzések
Egy fajta kommentent létezik, a /* */ alakú. A komment többsoros is lehet, a /* karakterekkel után kezdődik és a záró */ karakterekkel végződik.