You are previewing Rexx Programmer's Reference.
O'Reilly logo
Rexx Programmer's Reference

Book Description

  • Originally developed for mainframes but highly portable across platforms-from servers to desktops to handhelds-Rexx is an easy yet powerful scripting language that's widely used for rapid application development.

  • Covers Rexx interpreters for specialized functions-object-oriented, mainframe, and handheld.

  • There are 8 different free Rexx interpreters optimized for different platforms and uses. This book shows how to use them all.

  • Shows how to script for GUIs, databases, web servers, XML, and other interfaces.

  • Details how to make the best use of Rexx tools and interfaces, with examples for both Linux and Windows.

  • Includes a tutorial with lots of examples to help people get up and running.

Table of Contents

  1. Copyright
  2. About the Author
  3. Credits
  4. Foreword
  5. Acknowledgments
  6. Introduction
    1. Who This Book Is For
    2. What This Book Covers
    3. How This Book Is Structured
    4. What You Need to Use This Book
    5. Conventions
    6. Source Code
    7. Errata
    8. p2p.wrox.com
  7. I. Part I
    1. 1. Introduction to Scripting and Rexx
      1. 1.1. Overview
      2. 1.2. Why Scripting?
      3. 1.3. Why Rexx?
      4. 1.4. Power and Flexibility
      5. 1.5. Universality
      6. 1.6. Typical Rexx Applications
      7. 1.7. What Rexx Doesn't Do
      8. 1.8. Which Rexx?
      9. 1.9. Downloading Regina Rexx
      10. 1.10. Installing Regina under Windows
      11. 1.11. Installing Regina under Linux and Unix
        1. 1.11.1. Installing Regina with Red Hat Package Manager
      12. 1.12. Summary
      13. 1.13. Test Your Understanding
    2. 2. Language Basics
      1. 2.1. Overview
      2. 2.2. A First Program
      3. 2.3. Language Elements
      4. 2.4. Operators
      5. 2.5. Summary
      6. 2.6. Test Your Understanding
    3. 3. Control Structures
      1. 3.1. Overview
      2. 3.2. Structured Programming in Rexx
      3. 3.3. IF Statements
      4. 3.4. DO Statements
      5. 3.5. A Sample Program
      6. 3.6. SELECT Statements
      7. 3.7. CALL Statements
      8. 3.8. Another Sample Program
      9. 3.9. Unstructured Control Instructions
      10. 3.10. Summary
      11. 3.11. Test Your Understanding
    4. 4. Arrays
      1. 4.1. Overview
      2. 4.2. The Basics
      3. 4.3. A Sample Program
      4. 4.4. Associative Arrays
      5. 4.5. A Sample Associative Array Program
      6. 4.6. Creating Data Structures Based on Arrays
      7. 4.7. Summary
      8. 4.8. Test Your Understanding
    5. 5. Input and Output
      1. 5.1. Overview
      2. 5.2. The Conceptual I/O Model
      3. 5.3. Line-Oriented Standard I/O
      4. 5.4. Character-Oriented Standard I/O
      5. 5.5. Conversational I/O
      6. 5.6. Redirected I/O
      7. 5.7. I/O Issues
      8. 5.8. Summary
      9. 5.9. Test Your Understanding
    6. 6. String Manipulation
      1. 6.1. Overview
      2. 6.2. Concatenation and Parsing
      3. 6.3. A Sample Program
      4. 6.4. String Functions
      5. 6.5. The Word-Oriented Functions
      6. 6.6. The Bit String Functions and Conversions
      7. 6.7. Summary
      8. 6.8. Test Your Understanding
    7. 7. Numbers, Calculations, and Conversions
      1. 7.1. Overview
      2. 7.2. The Basics
      3. 7.3. More Numeric Functions
      4. 7.4. Conversions
      5. 7.5. A Sample Program
      6. 7.6. Summary
      7. 7.7. Test Your Understanding
    8. 8. Subroutines, Functions, and Modularity
      1. 8.1. Overview
      2. 8.2. The Building Blocks
      3. 8.3. Internal Functions and Subroutines
      4. 8.4. Passing Parameters into a Script from the Command Line
      5. 8.5. Passing Parameters into Subroutines and Functions
      6. 8.6. A Sample Program
      7. 8.7. The Function Search Order
      8. 8.8. Recursion
      9. 8.9. More on Scoping
      10. 8.10. Another Sample Program
      11. 8.11. Summary
      12. 8.12. Test Your Understanding
    9. 9. Debugging and the Trace Facility
      1. 9.1. Overview
      2. 9.2. The say Instruction
      3. 9.3. The trace Instruction
      4. 9.4. Reading Trace Output
      5. 9.5. The trace Function
      6. 9.6. Interactive Tracing
      7. 9.7. Summary
      8. 9.8. Test Your Understanding
    10. 10. Errors and Condition Trapping
      1. 10.1. Overview
      2. 10.2. Error Trapping
      3. 10.3. How to Trap Errors
      4. 10.4. A Sample Program
      5. 10.5. An Improved Program
      6. 10.6. Special Variables
      7. 10.7. signal versus call
      8. 10.8. The condition Function
      9. 10.9. A Generic Error-Trap Routine
      10. 10.10. Limitations
      11. 10.11. Summary
      12. 10.12. Test Your Understanding
    11. 11. The External Data Queue, or "Stack"
      1. 11.1. Overview
      2. 11.2. What Is the Stack?
      3. 11.3. An Example — Placing Data into the Stack and Retrieving It
      4. 11.4. Another Example — The Stack for Interroutine Communication
      5. 11.5. Practical Use of the Stack
      6. 11.6. Summary
      7. 11.7. Test Your Understanding
    12. 12. Rexx with Style
      1. 12.1. Overview
      2. 12.2. Capitalize on Capitalization
      3. 12.3. Good Variable Naming
      4. 12.4. Use Spacing and Indentation
      5. 12.5. Limit Nesting
      6. 12.6. Comment Code
      7. 12.7. Write Modular Code
      8. 12.8. Write Structured Code
      9. 12.9. Handle Errors
      10. 12.10. Additional Suggestions
        1. 12.10.1. Subscripts
        2. 12.10.2. Quotation marks for commands
        3. 12.10.3. Consider declaring all variables
        4. 12.10.4. Rexx-aware editors
        5. 12.10.5. Publish site standards for coding style
        6. 12.10.6. Consider automated tools to ensure standards compliance
        7. 12.10.7. Consider code reviews
      11. 12.11. Avoid Common Coding Errors
        1. 12.11.1. Failing to end a comment
        2. 12.11.2. Failing to end a literal string or parenthetical expression
        3. 12.11.3. Improper coding of functions
        4. 12.11.4. Forgetting that functions return a string
        5. 12.11.5. Using parentheses on call
        6. 12.11.6. Failure to use commas on call or in parse arg
        7. 12.11.7. Confusing command-line arguments with internal routine arguments
        8. 12.11.8. Global variables
        9. 12.11.9. Forgetting return or exit
        10. 12.11.10. Forgetting about automatic uppercase conversion
        11. 12.11.11. Incorrectly continuing a statement
        12. 12.11.12. Failing to use strict comparisons
        13. 12.11.13. Incorrectly coding strict comparisons for numbers
      12. 12.12. Summary
      13. 12.13. Test Your Understanding
    13. 13. Writing Portable Rexx
      1. 13.1. Overview
      2. 13.2. Factors Affecting Portability
      3. 13.3. Rexx Standards
      4. 13.4. How a Script Learns about Its Environment
      5. 13.5. A Sample Program
      6. 13.6. Techniques for Command Portability
      7. 13.7. Issues in Code Portability
      8. 13.8. I/O and Code Portability
      9. 13.9. Interfaces for Portability — RexxUtil
      10. 13.10. Summary
      11. 13.11. Test Your Understanding
    14. 14. Issuing System Commands
      1. 14.1. Overview
      2. 14.2. Issuing Operating System Commands
      3. 14.3. Feedback from OS Commands
      4. 14.4. Controlling Command I/O
      5. 14.5. A Few Examples
      6. 14.6. Discovering Defaults — the address Function
      7. 14.7. Issuing Commands to Other Environments
      8. 14.8. A Sample Program
      9. 14.9. Using the Stack for Command I/O
      10. 14.10. Summary
      11. 14.11. Test Your Understanding
    15. 15. Interfacing to Relational Databases
      1. 15.1. Overview
      2. 15.2. Rexx/SQL Features
      3. 15.3. Downloading and Installing Rexx/SQL
      4. 15.4. The Basics
      5. 15.5. Example — Displaying Database Information
      6. 15.6. Example — Create and Load a Table
      7. 15.7. Example — Select All Results from a Table
      8. 15.8. Example — Select and Update Table Rows
      9. 15.9. Example — Cursor Processing
      10. 15.10. Bind Variables
      11. 15.11. Working with Other Databases
        1. 15.11.1. Connecting to Oracle
        2. 15.11.2. Connecting to DB2 UDB
        3. 15.11.3. Connecting using ODBC
        4. 15.11.4. Connecting to MySQL
        5. 15.11.5. Ot\her database differences
      12. 15.12. Other Database Interfaces
      13. 15.13. Summary
      14. 15.14. Test Your Understanding
    16. 16. Graphical User Interfaces
      1. 16.1. Overview
        1. 16.1.1. Rexx/Tk
        2. 16.1.2. Rexx/DW
        3. 16.1.3. Rexx Dialog
        4. 16.1.4. OODialog and the Object REXX GTK+ Project
        5. 16.1.5. Dr. Dialog, VX*Rexx, VisPro Rexx
      2. 16.2. Rexx/Tk
        1. 16.2.1. Downloading and installing
        2. 16.2.2. Basic script design
        3. 16.2.3. A simple example
        4. 16.2.4. Your next steps
      3. 16.3. Rexx/DW
        1. 16.3.1. Components
        2. 16.3.2. Downloading and Installing Rexx/DW
        3. 16.3.3. Basic script design
        4. 16.3.4. Your next steps
      4. 16.4. Graphical Images with Rexx/gd
        1. 16.4.1. The logic of a Rexx/gd routine
        2. 16.4.2. A sample program
      5. 16.5. Summary
      6. 16.6. Test Your Understanding
    17. 17. Web Programming with CGI and Apache
      1. 17.1. Overview
      2. 17.2. Common Gateway Interface
        1. 17.2.1. The cgi-lib.rxx library
        2. 17.2.2. The Internet/REXX HHNS WorkBench
      3. 17.3. Programming Apache with Mod_Rexx
        1. 17.3.1. Functions and special variables
        2. 17.3.2. Installation
        3. 17.3.3. A sample script
        4. 17.3.4. Example — Rexx Server Pages
        5. 17.3.5. Further Information
      4. 17.4. Summary
      5. 17.5. Test Your Understanding
    18. 18. XML and Other Interfaces
      1. 18.1. Overview
      2. 18.2. XML with RexxXML
        1. 18.2.1. Licensing, downloading, and installation
        2. 18.2.2. Common operations
        3. 18.2.3. A sample script
      3. 18.3. Other Rexx Tools, Interfaces and Extensions
      4. 18.4. Summary
      5. 18.5. Test Your Understanding
  8. II. Part II
    1. 19. Evolution and Implementations
      1. 19.1. Overview
      2. 19.2. The Evolution of Rexx
      3. 19.3. Free Rexx Implementations
      4. 19.4. Which Rexx?
      5. 19.5. Rexx Intepreters
        1. 19.5.1. Regina
        2. 19.5.2. Rexx/imc
        3. 19.5.3. BRexx
        4. 19.5.4. Reginald
        5. 19.5.5. Rexx for Palm OS
        6. 19.5.6. r4
      6. 19.6. Object-Oriented Rexx
        1. 19.6.1. roo!
        2. 19.6.2. Open Object Rexx
      7. 19.7. NetRexx
      8. 19.8. Mainframe Rexx
      9. 19.9. Other IBM Rexxes
      10. 19.10. Rexx for Handhelds and Embedded Programming
      11. 19.11. Commercial Rexxes
        1. 19.11.1. uni-Rexx by The Workstation Group
        2. 19.11.2. Personal Rexx by Quercus Systems
        3. 19.11.3. S/Rexx by Treehouse Software Inc.
        4. 19.11.4. Amiga Rexx
      12. 19.12. Rexx Compilers and Tokenizers
      13. 19.13. Running Rexx in the Shell
      14. 19.14. Rexx As an API
      15. 19.15. Rexx As a Macro Language
      16. 19.16. Multiple Rexx Interpreters on One Computer
      17. 19.17. The Future of Rexx
      18. 19.18. Summary
      19. 19.19. Test Your Understanding
    2. 20. Regina
      1. 20.1. Overview
      2. 20.2. Advantages
      3. 20.3. Regina's Extras
        1. 20.3.1. Interpreter options
        2. 20.3.2. Functions
          1. 20.3.2.1. Bit manipulation
          2. 20.3.2.2. String Manipulation
          3. 20.3.2.3. Environmental functions
          4. 20.3.2.4. Input/output
        3. 20.3.3. Access to function libraries
          1. 20.3.3.1. The stack
      4. 20.4. Regina's SAA API
      5. 20.5. Sample Scripts
      6. 20.6. Summary
      7. 20.7. Test Your Understanding
    3. 21. Rexx/imc
      1. 21.1. Overview
      2. 21.2. Advantages
      3. 21.3. Installing Rexx/imc
      4. 21.4. Features
      5. 21.5. The C-language I/O Model
      6. 21.6. Interfaces and Tools
      7. 21.7. A Sample Program — Environmental Information
      8. 21.8. A Sample Program — I/O
      9. 21.9. Summary
      10. 21.10. Test Your Understanding
    4. 22. BRexx
      1. 22.1. Overview
      2. 22.2. Advantages
      3. 22.3. Downloading and Installation
        1. 22.3.1. Windows installation
        2. 22.3.2. Windows or DOS installation
        3. 22.3.3. Linux installation
        4. 22.3.4. Unix installation
        5. 22.3.5. Windows CE installation
      4. 22.4. Extra Built-in Functions
      5. 22.5. Input/Output
      6. 22.6. The External Function Libraries
      7. 22.7. Windows CE
      8. 22.8. Issuing Operating System Commands
      9. 22.9. Example — C-like I/O
      10. 22.10. Example — ANSI Screen I/O with Random Data Access
      11. 22.11. Example — Direct Data Access
      12. 22.12. Example — DOS Functions
      13. 22.13. Summary
      14. 22.14. Test Your Understanding
    5. 23. Reginald
      1. 23.1. Overview
      2. 23.2. Advantages
      3. 23.3. Download and Installation
      4. 23.4. Tools
      5. 23.5. Windows GUI
      6. 23.6. GUI Development Aids
      7. 23.7. Input/output
      8. 23.8. Documentation and Tutorials
      9. 23.9. Other Features and Functions
        1. 23.9.1. Operating system commands
        2. 23.9.2. Options
        3. 23.9.3. Windows Registry
        4. 23.9.4. GUI trace panel
        5. 23.9.5. Error conditions
        6. 23.9.6. Windows DLLs
        7. 23.9.7. Sorting
        8. 23.9.8. Multiple stacks
        9. 23.9.9. Parameter passing
        10. 23.9.10. do over loop
        11. 23.9.11. Array indexing
        12. 23.9.12. Improved interpret instruction
        13. 23.9.13. Other functions
      10. 23.10. Leveraging Reginald
      11. 23.11. Sample Scripts — File, Directory, and Drive Management
        1. 23.11.1. Example — display file information
      12. 23.12. Sample Scripts — GUIs
        1. 23.12.1. Another GUI Example
      13. 23.13. Let My Computer Speak!
        1. 23.13.1. MIDI Rexx
      14. 23.14. Accessing the Windows Registry
      15. 23.15. Summary
      16. 23.16. Test Your Understanding
    6. 24. Handhelds and Embedded Programming
      1. 24.1. Overview
      2. 24.2. Programming Handhelds
      3. 24.3. Running Native — Symbian/EPOC32
      4. 24.4. DOS Emulation
        1. 24.4.1. PocketDOS
        2. 24.4.2. XTM
      5. 24.5. Embedded Device Programming
      6. 24.6. Summary
      7. 24.7. Test Your Understanding
    7. 25. Rexx for Palm OS
      1. 25.1. Overview
      2. 25.2. Advantages
      3. 25.3. Downloading and Installation
      4. 25.4. A Tutorial
      5. 25.5. Summary
      6. 25.6. Test Your Understanding
    8. 26. r4 and Object-Oriented roo!
      1. 26.1. Overview
      2. 26.2. Advantages
      3. 26.3. Downloading and Installation
        1. 26.3.1. Preinstall
        2. 26.3.2. Verification
        3. 26.3.3. Documentation
      4. 26.4. Tools
      5. 26.5. Object-Oriented Programming with roo!
      6. 26.6. Summary
      7. 26.7. Test Your Understanding
    9. 27. Open Object Rexx
      1. 27.1. Overview
      2. 27.2. Background
      3. 27.3. Features
      4. 27.4. Open Object Rexx for Linux
        1. 27.4.1. Installation Using Red Hat Package Manage
        2. 27.4.2. Installation without Red Hat Package Manager
        3. 27.4.3. Postinstall Steps
      5. 27.5. The Basics
      6. 27.6. The Class Libraries
      7. 27.7. Other Object Rexx Additions
        1. 27.7.1. New operators
        2. 27.7.2. Directives
        3. 27.7.3. Built-in objects
        4. 27.7.4. Special variables
        5. 27.7.5. New instructions
        6. 27.7.6. New functions
        7. 27.7.7. New condition traps
        8. 27.7.8. New utility functions
        9. 27.7.9. Rexx API
      8. 27.8. Open Object Rexx for Windows
      9. 27.9. Summary
      10. 27.10. Test Your Understanding
    10. 28. Open Object Rexx Tutorial
      1. 28.1. Overview
      2. 28.2. A First Program
      3. 28.3. Squaring a Number — Using Our Own Class and Method
      4. 28.4. Another Simple OO Program
      5. 28.5. Implementing a Stack through Objects
      6. 28.6. A Video Circulation Application
      7. 28.7. Concurrency
      8. 28.8. Summary
      9. 28.9. Test Your Understanding
    11. 29. IBM Mainframe Rexx
      1. 29.1. Overview
      2. 29.2. VM Rexx Differences
        1. 29.2.1. First line
        2. 29.2.2. Online help facility
        3. 29.2.3. File types
        4. 29.2.4. "Not" symbol
        5. 29.2.5. OS commands
        6. 29.2.6. Instructions
        7. 29.2.7. Functions
        8. 29.2.8. Function packages and external functions
        9. 29.2.9. CMS immediate commands
        10. 29.2.10. Compiler
        11. 29.2.11. Useful CMS commands
      3. 29.3. OS/TSO Rexx Differences
        1. 29.3.1. Additional instructions and functions
        2. 29.3.2. TSO/E external functions
        3. 29.3.3. TSO/E Rexx commands
        4. 29.3.4. TSO/E programming services
      4. 29.4. Mainframe Rexx and the Language Standards
        1. 29.4.1. Interfaces
      5. 29.5. Sample Scripts
      6. 29.6. Migrating Mainframe Scripts to Other Platforms
      7. 29.7. Applying Your Rexx Skills to Other Platforms
      8. 29.8. Further Information
      9. 29.9. Summary
      10. 29.10. Test Your Understanding
    12. 30. NetRexx
      1. 30.1. Overview
      2. 30.2. Why NetRexx?
      3. 30.3. Do You Have to Know Java to Use NetRexx?
      4. 30.4. Downloading and Installation
      5. 30.5. Ways to Run NetRexx Programs
      6. 30.6. Features
      7. 30.7. Sample Programs
        1. 30.7.1. A simple sample applet
      8. 30.8. Summary
      9. 30.9. Test Your Understanding
  9. III. Part III
    1. A. Resources
      1. A.1. User Groups
      2. A.2. Web Forums
      3. A.3. The Rexx Standards
      4. A.4. Rexx Home Page at IBM
      5. A.5. Downloading IBM Rexx Manuals
      6. A.6. Rexx Books
    2. B. Instructions
      1. B.1. ADDRESS
        1. B.1.1. Example
        2. B.1.2. Example
      2. B.2. ARG
        1. B.2.1. Example
      3. B.3. CALL
        1. B.3.1. Example
      4. B.4. DO
        1. B.4.1. Example
      5. B.5. DROP
        1. B.5.1. Example
      6. B.6. EXIT
        1. B.6.1. Example
      7. B.7. IF
        1. B.7.1. Example
      8. B.8. INTERPRET
        1. B.8.1. Example
      9. B.9. ITERATE
        1. B.9.1. Example
      10. B.10. LEAVE
        1. B.10.1. Example
      11. B.11. NOP
        1. B.11.1. Example
      12. B.12. NUMERIC
        1. B.12.1. Example
      13. B.13. OPTIONS
        1. B.13.1. Example
      14. B.14. PARSE
        1. B.14.1. Example
      15. B.15. PROCEDURE
        1. B.15.1. Example
      16. B.16. PULL
        1. B.16.1. Example
      17. B.17. PUSH
        1. B.17.1. Example
      18. B.18. QUEUE
        1. B.18.1. Example
      19. B.19. RETURN
        1. B.19.1. Example
      20. B.20. SAY
        1. B.20.1. Example
      21. B.21. SELECT
        1. B.21.1. Example
      22. B.22. SIGNAL
        1. B.22.1. Example
      23. B.23. TRACE
        1. B.23.1. Example
    3. C. Functions
      1. C.1. ABBREV
        1. C.1.1. Example
      2. C.2. ABS
        1. C.2.1. Example
      3. C.3. ADDRESS
        1. C.3.1. Example
      4. C.4. ARG
        1. C.4.1. Example
      5. C.5. BITAND
        1. C.5.1. Example
      6. C.6. BITOR
      7. C.7. BITXOR
        1. C.7.1. Example
      8. C.8. B2X
        1. C.8.1. Example
      9. C.9. CENTER or CENTRE
        1. C.9.1. Example
      10. C.10. CHANGESTR
        1. C.10.1. Example
      11. C.11. CHARIN
        1. C.11.1. Example
      12. C.12. CHAROUT
        1. C.12.1. Example
      13. C.13. CHARS
        1. C.13.1. Example
      14. C.14. COMPARE
        1. C.14.1. Example
      15. C.15. CONDITION
        1. C.15.1. Example
      16. C.16. COPIES
        1. C.16.1. Example
      17. C.17. COUNTSTR
        1. C.17.1. Example
      18. C.18. C2D
        1. C.18.1. Example
      19. C.19. C2X
        1. C.19.1. Example
      20. C.20. DATATYPE
        1. C.20.1. Example
      21. C.21. DATE
        1. C.21.1. Example
      22. C.22. DELSTR
        1. C.22.1. Example
      23. C.23. DELWORD
        1. C.23.1. Example
      24. C.24. DIGITS
        1. C.24.1. Example
      25. C.25. D2C
        1. C.25.1. Example
      26. C.26. D2X
        1. C.26.1. Example
      27. C.27. ERRORTEXT
        1. C.27.1. Example
      28. C.28. FORM
        1. C.28.1. Example
      29. C.29. FORMAT
        1. C.29.1. Example
      30. C.30. FORMAT
        1. C.30.1. Example
      31. C.31. FUZZ
        1. C.31.1. Example
      32. C.32. INSERT
        1. C.32.1. Example
      33. C.33. LASTPOS
        1. C.33.1. Example
      34. C.34. LEFT
        1. C.34.1. Example
      35. C.35. LENGTH
        1. C.35.1. Example
      36. C.36. LINEIN
        1. C.36.1. Example
      37. C.37. LINEOUT
        1. C.37.1. Example
      38. C.38. LINES
        1. C.38.1. Example
        2. C.38.2. Example
      39. C.39. MAX
        1. C.39.1. Example
      40. C.40. MIN
        1. C.40.1. Example
      41. C.41. OVERLAY
        1. C.41.1. Example
      42. C.42. POS
        1. C.42.1. Example
      43. C.43. QUALIFY
        1. C.43.1. Example
      44. C.44. QUEUED
        1. C.44.1. Example
      45. C.45. RANDOM
        1. C.45.1. Example
      46. C.46. REVERSE
        1. C.46.1. Example
      47. C.47. RIGHT
        1. C.47.1. Example
      48. C.48. SIGN
        1. C.48.1. Example
      49. C.49. SOURCELINE
        1. C.49.1. Example
      50. C.50. SPACE
        1. C.50.1. Example
      51. C.51. STREAM
        1. C.51.1. Example
      52. C.52. STRIP
        1. C.52.1. Example
      53. C.53. SUBSTR
        1. C.53.1. Example
      54. C.54. SUBWORD
        1. C.54.1. Example
      55. C.55. SYMBOL
        1. C.55.1. Example
      56. C.56. TIME
        1. C.56.1. Example
        2. C.56.2. Example
      57. C.57. TRACE
        1. C.57.1. Example
      58. C.58. TRANSLATE
        1. C.58.1. Example
      59. C.59. TRUNC
        1. C.59.1. Example
      60. C.60. VALUE
        1. C.60.1. Example
      61. C.61. VERIFY
        1. C.61.1. Example
      62. C.62. WORD
        1. C.62.1. Example
      63. C.63. WORD
        1. C.63.1. Example
      64. C.64. WORDLENGTH
        1. C.64.1. Example
      65. C.65. WORDPOS
        1. C.65.1. Example
      66. C.66. WORDS
        1. C.66.1. Example
      67. C.67. XRANGE
        1. C.67.1. Example
      68. C.68. X2B
        1. C.68.1. Example
      69. C.69. X2C
        1. C.69.1. Example
      70. C.70. X2D
        1. C.70.1. Example
    4. D. Regina Extended Functions
      1. D.1. B2C
        1. D.1.1. Example
      2. D.2. BEEP
        1. D.2.1. Example
      3. D.3. BITCHG
        1. D.3.1. Example
      4. D.4. BITCLR
        1. D.4.1. Example
      5. D.5. BITCOMP
        1. D.5.1. Example
      6. D.6. BITSET
        1. D.6.1. Example
      7. D.7. BITTST
        1. D.7.1. Example
      8. D.8. BUFTYPE
        1. D.8.1. Example
      9. D.9. C2B
        1. D.9.1. Example
      10. D.10. CD or CHDIR
        1. D.10.1. Example
      11. D.11. CLOSE
        1. D.11.1. Example
      12. D.12. COMPRESS
        1. D.12.1. Example
      13. D.13. CRYPT
        1. D.13.1. Example
      14. D.14. DESBUF
        1. D.14.1. Example
      15. D.15. DIRECTORY
        1. D.15.1. Example
      16. D.16. DROPBUF
        1. D.16.1. Example
      17. D.17. EOF
        1. D.17.1. Example
      18. D.18. EXISTS
        1. D.18.1. Example
      19. D.19. EXPORT
        1. D.19.1. Example
      20. D.20. FIND
        1. D.20.1. Example
      21. D.21. FORK
        1. D.21.1. Example
      22. D.22. FREESPACE
        1. D.22.1. Example
      23. D.23. GETENV
        1. D.23.1. Example
      24. D.24. GETPID
        1. D.24.1. Example
      25. D.25. GETSPACE
        1. D.25.1. Example
      26. D.26. GETTID
        1. D.26.1. Example
      27. D.27. HASH
        1. D.27.1. Example
      28. D.28. IMPORT
        1. D.28.1. Example
      29. D.29. INDEX
        1. D.29.1. Example
      30. D.30. JUSTIFY
        1. D.30.1. Example
      31. D.31. MAKEBUF
        1. D.31.1. Example
      32. D.32. OPEN
        1. D.32.1. Example
      33. D.33. POOLID
        1. D.33.1. Example
      34. D.34. POPEN
        1. D.34.1. Example
      35. D.35. RANDU
        1. D.35.1. Example
      36. D.36. READCH
        1. D.36.1. Example
      37. D.37. READLN
        1. D.37.1. Example
      38. D.38. RXFUNCADD
        1. D.38.1. Example
      39. D.39. RXFUNCDROP
        1. D.39.1. Example
      40. D.40. RXFUNCERRMSG
        1. D.40.1. Example
      41. D.41. RXFUNCQUERY
        1. D.41.1. Example
      42. D.42. RXQUEUE
      43. D.43. SEEK
        1. D.43.1. Example
      44. D.44. SHOW
        1. D.44.1. Example
      45. D.45. SLEEP
        1. D.45.1. Example
      46. D.46. STATE
        1. D.46.1. Example
      47. D.47. STORAGE
        1. D.47.1. Example
      48. D.48. STREAM
      49. D.49. TRIM
        1. D.49.1. Example
      50. D.50. UNAME
        1. D.50.1. Example
      51. D.51. UNIXERROR
        1. D.51.1. Example
      52. D.52. UPPER
        1. D.52.1. Example
      53. D.53. USERID
        1. D.53.1. Example
      54. D.54. WRITECH
        1. D.54.1. Example
      55. D.55. WRITELN
        1. D.55.1. Example
    5. E. Mainframe Extended Functions
      1. E.1. EXTERNALS
        1. E.1.1. Example
        2. E.1.2. Example
      2. E.2. FIND
        1. E.2.1. Example
      3. E.3. INDEX
        1. E.3.1. Example
      4. E.4. JUSTIFY
        1. E.4.1. Example
      5. E.5. LINESIZE
        1. E.5.1. Example
        2. E.5.2. Example
      6. E.6. USERID
        1. E.6.1. Example
    6. F. Rexx/SQL Functions
      1. F.1. SQLCLOSE
        1. F.1.1. Example
      2. F.2. SQLCOMMAND
        1. F.2.1. Example
        2. F.2.2. Example
      3. F.3. SQLCOMMIT
        1. F.3.1. Example
      4. F.4. SQLCONNECT
        1. F.4.1. Example
      5. F.5. SQLDEFAULT
      6. F.6. SQLDESCRIBE
        1. F.6.1. Example
      7. F.7. SQLDISCONNECT
        1. F.7.1. Example
      8. F.8. SQLDISPOSE
        1. F.8.1. Example
      9. F.9. SQLDROPFUNCS
        1. F.9.1. Example
      10. F.10. SQLEXECUTE
      11. F.11. SQLFETCH
        1. F.11.1. Example
      12. F.12. SQLGETDATA
      13. F.13. SQLGETINFO
        1. F.13.1. Example
      14. F.14. SQLLOADFUNCS
        1. F.14.1. Example
      15. F.15. SQLOPEN
        1. F.15.1. Example
      16. F.16. SQLPREPARE
        1. F.16.1. Example
      17. F.17. SQLROLLBACK
        1. F.17.1. Example
      18. F.18. SQLVARIABLE
        1. F.18.1. Example
    7. G. Rexx/Tk Functions
      1. G.1. Rexx/Tk Extensions
        1. G.1.1. Rexx/Tk Extensions
    8. H. Tools, Interfaces, and Packages
    9. I. Open Object Rexx: Classes and Methods
      1. I.1. Collection Classes and Their Methods
        1. I.1.1. Array Class
        2. I.1.2. Bag Class
        3. I.1.3. Directory Class
        4. I.1.4. List Class
        5. I.1.5. Queue Class
        6. I.1.6. Relation Class
        7. I.1.7. Set Class
        8. I.1.8. Table Class
      2. I.2. Other Classes and Their Methods
        1. I.2.1. Alarm Class
        2. I.2.2. Class Class
        3. I.2.3. Message Class
        4. I.2.4. Method Class
        5. I.2.5. Monitor Class
        6. I.2.6. Object Class
        7. I.2.7. Stem Class
        8. I.2.8. Stream Class
        9. I.2.9. String Class
        10. I.2.10. Supplier Class
      3. I.3. Classes Unique to Windows
        1. I.3.1. WindowsProgramManager Class
        2. I.3.2. WindowsRegistry Class
        3. I.3.3. WindowsEventLog Class
        4. I.3.4. WindowsManager Class
        5. I.3.5. WindowObject Class
        6. I.3.6. MenuObject Class
        7. I.3.7. WindowsClipBoard Class
        8. I.3.8. OLEObject Class
    10. J. Mod_Rexx: Functions and Special Variables
      1. J.1. General Functions
      2. J.2. Apache Request Record Functions
      3. J.3. Updatable Apache Request Record Functions
      4. J.4. Apache Server Record Functions
      5. J.5. Special Variables
    11. K. NetRexx: Quick Reference
      1. K.1. NetRexx Special Names
      2. K.2. Special Methods
      3. K.3. Instruction Syntax
      4. K.4. CLASS
      5. K.5. DO
      6. K.6. EXIT
      7. K.7. IF
      8. K.8. IMPORT
      9. K.9. ITERATE
      10. K.10. LEAVE
      11. K.11. LOOP
      12. K.12. METHOD
      13. K.13. NOP
      14. K.14. NUMERIC
      15. K.15. OPTIONS
      16. K.16. PACKAGE
      17. K.17. PARSE
      18. K.18. PROPERTIES
      19. K.19. RETURN
      20. K.20. SAY
      21. K.21. SELECT
      22. K.22. SIGNAL
      23. K.23. TRACE
    12. L. Interpreter System Information
      1. L.1. Table L-1 parse source system Strings
      2. L.2. Table L-2 Default Environment Strings
    13. M. Answers to "Test Your Understanding" Questions
      1. M.1. Chapter 1
      2. M.2. Chapter 2
      3. M.3. Chapter 3
      4. M.4. Chapter 4
      5. M.5. Chapter 5
      6. M.6. Chapter 6
      7. M.7. Chapter 7
      8. M.8. Chapter 8
      9. M.9. Chapter 9
      10. M.10. Chapter 10
      11. M.11. Chapter 11
      12. M.12. Chapter 12
      13. M.13. Chapter 13
      14. M.14. Chapter 14
      15. M.15. Chapter 15
      16. M.16. Chapter 16
      17. M.17. Chapter 17
      18. M.18. Chapter 18
      19. M.19. Chapter 19
      20. M.20. Chapter 20
      21. M.21. Chapter 21
      22. M.22. Chapter 22
      23. M.23. Chapter 23
      24. M.24. Chapter 24
      25. M.25. Chapter 25
      26. M.26. Chapter 26
      27. M.27. Chapter 27
      28. M.28. Chapter 28
      29. M.29. Chapter 29
      30. M.30. Chapter 30