Using SAS/IML Software to Generate IML Statements

Generating and Executing Statements

You can push generated statements into the input command stream (queue) with the PUSH, QUEUE, and EXECUTE subroutines. This can be very useful in situations that require added flexibility, such as menu-driven applications or interrupt handling.

The PUSH command inserts program statements at the front of the input command stream, whereas the QUEUE command inserts program statements at the back. In either case, if they are not input to an interactive application, the statements remain in the queue until IML enters a pause state, at which point they are executed. The pause state is usually induced by a program error or an interrupt control sequence. Any subsequent RESUME statement resumes execution of the module from the point where the PAUSE command was issued. For this reason, the last statement put into the command stream for PUSH or QUEUE is usually a RESUME command.

The EXECUTE statement also pushes program statements like PUSH and QUEUE, but it executes them immediately and returns. It is not necessary to push a RESUME statement when you use the CALL EXECUTE command.


Executing a String Immediately

Feeding an Interactive Program

Calling the Operating System

Calling the SAS Windowing Environment

Executing Any Command in an EXECUTE Call

Making Operands More Flexible

Interrupt Control

Specific Error Control

General Error Control

Macro Interface

IML Line Pushing Contrasted with Using the Macro Facility

Example 15.1: Full-Screen Editing

Previous Page | Next Page | Top of Page