Programmeren in REXX/Syntaxis
Uit Wikibooks
|
|
|
|
Inhoud |
[bewerken] Lussen
De DO-structuur begint altijd met DO en eindigt met END:
DO UNTIL:
do until [conditie] [instructies] end
DO WHILE:
do while [conditie is waar] [instructies] end
Door een variabele lopen:
do i = x to y by z [instructies] end
Eindeloze lus tot eruit springen met LEAVE:
do forever
if [conditie] then leave
end
Een lus een vast aantal keren doorlopen:
do i = x to y by z for a [instructies] end
[bewerken] Condities
Condities testen met IF:
if [conditie] then
do
[instructies]
end
else
do
[instructies]
end
Voor enkelvoudige instructies kunnen DO en END worden weggelaten:
if [conditie] then
[instructie]
else
[instructie]
[bewerken] Meerdere condities testen
SELECT is de CASE-structuur van REXX
select
when [conditie] then
[instructie]
when [conditie] then
do
[instructies]
end
otherwise
[instructies] of NOP
end
NOP (=no operation) geeft aan dat er geen instructie moet worden uitgevoerd.
[bewerken] PARSE
De PARSE-instructie is erg krachtig. Deze combineert een aantal nuttige tekenreeksbewerkingen. De syntaxis is:
parse [upper] bron sjabloon
bron geeft de bron aan:
- arg (commandlinevariabele)
- linein (toetsenbord)
- pull (REXX-dataqueue)
- source (OS/2-info over hoe een programma werd uitgevoerd)
- value (een constante of functie) het woord with is verplicht om aan te geven waar een constante eindigt
- var (een variabele)
- version (versienummer)
en sjabloon (template) kan zijn:
- een lijst van variabelen
- kolomnaambegrenzers
- letterlijke begrenzers
upper is optioneel; als het wordt gebruikt, wordt alles omgezet naar hoofdletters.
Voorbeelden:
Een lijst met variabelen gebruiken als sjabloon:
myVar = "John Smith" parse var MyVar firstName lastName say "First name is:" firstName say "Last name is:" lastName
laat het volgende zien:
First name is: John Last name is: Smith
Een begrenzer als sjabloon gebruiken:
myVar = "Smith, John" parse var MyVar LastName "," FirstName say "First name is:" firstName say "Last name is:" lastName
levert het volgende op:
First name is: John Last name is: Smith
Kolombegrenzers gebruiken:
myVar = "(202) 123-1234" parse var MyVar 2 AreaCode 5 7 SubNumber say "Area code is:" AreaCode say "Subscriber number is:" SubNumber
laat dit zien:
Area code is: 202 Subscriber number is: 123-1234