The REXX2C® translator is a software tool that will convert existing REXX programs to "C". The powerful REXX2C® translator accepts REXX programs, checks their syntax and outputs C code. The comments are move transparently from the source file to the target file. Any built-in functions for math, string manipulation and I/O in REXX are converted to calls to external procedures (see sample translation) .
The REXX2C® translator contains a syntax analyzer, an REXX to tertiary converter, and a tertiary to "C converter. The syntax analyzer scans the REXX input file for syntactic errors and generates a listing file of the REXX program. Any syntactic errors will be flagged with detailed English messages in the listing file. If no errors are encountered, the REXX input file is converted to tertiary language. Then the tertiary file is checked and, if no errors are detected, it is converted to "C". A command line control is provided to allow translation with errors in the source file. This is helpful when translating code fragments that are not complete programs.
The translation of the REXXsource language into an intermediate tertiary language ensures the logical equivalence between the source and target languages. This sophisticated tertiary language, which is common to our entire family of translators, allows complex mapping from source language to the target. The tertiary language is automatically converted to "C" while maintaining the logical equivalence between the output "C" program and the input REXX program.
The "C" output file will be generated in Standard ANSI C code.
WITH REPLACE ERROR STEM STREAM ASSIGNMENT LABEL THEN ELSE WHEN OTHERWISE END EOS IF SELECT ADDRESS REXX_VALUE INPUT NORMAL OUTPUT APPEND
TAKEN_CONSTANT CONNECTION ADIO RESOURCEI RESOURCEO ADEO REXX_ERROR ADEI RESOURCES VREF ARG
CALLON_SPEC NAME OFF CALLABLE_CONDITION FAILURE HALT NOTREADY DO_SPECIFICATION DO_SIMPLE
DO DO_REPETITIVE FOREVER DO_COND WHILE DOREP DOCOUNT DOBF DOTF DOTB FOR DROP EXIT INTERPRET
ITERATE NOP NUMERIC DIGITS FORM ENGINEERING SCIENTIFIC FUZZ PARSE UPPER PARSE_TYPE PULL
SOURCE LINEIN VERSION PARSE_VALUE VAR EXPOS PUSH QUEUE SAY SIGNAL_SPEC NOVALUE SYNTAX
LOSTDIGIT TRACE TEMPLATE TARGET TRIGGER PATTERN VREFP POSITIONAL ABSOLUTE_POSITIONAL
RELATIVE_POSITIONAL SYMBOL EXPR EXPR_ALIAS CALL ON UNTIL TO BY LEAVE OPTIONS PROCEDURE
RETURN SIGNAL CONDITION POSITION