Preface
  Intro
  What is REXX?
  What do I need to get started?

Fundamentals
Your first REXX script
A REXX comment
Literal Strings (and Concatenation)
  Special characters
Numeric Strings
Math Expressions and Operators
  Precedence
  Precision
Variables (assigning values)
Getting input
Terminating a REXX script
An example script
Notes about formatting

Comparisons and Decisions
Making a comparison/decision
ELSE keyword
SELECT keyword
Multiple instructions within a conditional (ie, DO/END)
Nested conditionals
NOP (no operation) keyword
Strict (exact) comparison
Boolean comparisons (ie, combining expressions)

Variable Arrays
Stem/compound variables

Loops
Loops
  Repeat a set number of times
  Repeat until a condition is met
  Prematurely ending a loop

Functions (non-REXX)
Functions
  Operations upon words
  Operations upon strings
  Math operations
  Conversions
  Files and Directories
  Error/Debug
  System Information
  Args/Variables
  Data stack
  External Functions
  Miscellaneous

Parsing
Breaking data into separate pieces
VAR
Using search strings (to break apart tokens)
Throwing away pieces
Parse at particular character positions
VALUE
ARG
SOURCE
PULL
LINEIN
VERSION

Data stacks
PUSHing, QUEUEing, and PULLing
Multiple stacks
Buffers/Buffer markers

REXX Functions/Subroutines
Labels (ie, marking a place in your script), and jumping there
Writing REXX Functions/Subroutines
PROCEDURE (ie, different set of variables for a Function versus the rest of the program)
Functions in a separate script

Issuing commands to Environments
An environment
Running executables/shell commands

Errors
Handling errors that REXX reports
SYNTAX
NOTREADY
NOVALUE
HALT
ERROR
FAILURE
Built-in Debugger (Tracing)

Miscellaneous topics INTERPRET instruction Converting between numeric bases OPTIONS instruction (optional features) Registry keys

Errata About this book