summaryrefslogtreecommitdiff
path: root/tests/examplefiles/example.rexx
blob: ec4da5ad5e3f6397c170329f1ae96e6cee58572f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/* REXX example. */

/* Some basic constructs. */
almost_pi = 0.1415 + 3
if almost_pi < 3 then
   say 'huh?'
else do
   say 'almost_pi=' almost_pi || " - ok"
end
x = '"' || "'" || '''' || """" /* quotes */

/* A comment
 * spawning multiple
   lines. /* / */

/* Built-in functions. */
line = 'line containing some short text'
say WordPos(line, 'some')
say Word(line, 4)

/* Labels and procedures. */
some_label :

divide: procedure
    parse arg some other
    return some / other

call divide(5, 2)

/* Loops */
do i = 1 to 5
    do j = -3 to -9 by -3
        say i '+' j '=' i + j
    end j
end i

do forever
  leave
end

/* Print a text file on MVS. */
ADDRESS TSO
"ALLOC F(TEXTFILE) DSN('some.text.dsn') SHR REU"
"EXECIO * DISKR TEXTFILE ( FINIS STEM LINES."
"FREE F(TEXTFILE)"
I = 1
DO WHILE I <= LINES.0
    SAY ' LINE ' I ' : ' LINES.I
    I = I + 1
END