home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / REXXMN.ZIP / REXXMN.TXT
Text File  |  1992-02-17  |  6KB  |  271 lines

  1. REXXTACY USER MANUAL
  2.  
  3. Copyright 1991  Ruddock and Associates, Inc.
  4.  
  5.  
  6.  
  7.  
  8.  
  9. 1. Introduction
  10.  
  11. 1.1 REXXTACY - The REXX to C translator
  12.  
  13.  
  14.  
  15. REXXTACY is a package which will allow you to convert a REXX
  16. program into an OS/2 executable. It does this by first
  17. translating the REXX source into C code , invoking the Microsoft
  18. C compiler, and linking the resulting object file with the
  19. REXXTACY runtime library.
  20.  
  21. The process of converting the REXX program to C code consists of
  22. invoking two programs - REXXCSYM and REXXCGEN. REXXCSYM is a
  23. symbol semantics analyzer.
  24. By examining how REXX variables are used in a program, it is
  25. possible to emit highly optimized C code. The compiled C code
  26. may run hundreds of times faster than the original REXX
  27. program. REXXCSYM writes a temporary file to disk with it's
  28. analysis. It may also generate reports for the more advanced
  29. user to examine. Once this has been done, REXXCGEN may be
  30. invoked. REXXCGEN reads REXXCSYM's analysis and generates C
  31. source using the original REXX source and REXXCSYM's analysis.
  32. This C source is ready to compile with the Microsoft C
  33. compiler.
  34.  
  35.  
  36. 1.2 Using this manual
  37.  
  38. The organization of this manual has been loosly based on IBM's
  39. OS/2 REXX reference manual. Most sections of that manual have
  40. corresponding sections in this document. This will make it
  41. easier for the user who wishes to find any implementation
  42. differences between particular commands or control structures.
  43.  
  44. Since there are only a small number of differences or omissions
  45. from REXX in REXXTACY, the manual will seem rather sparse at
  46. points. Please be aware that this manual is not intended to be
  47. a REXX reference manual - but rather a description of the
  48. REXXTACY implementation.
  49.  
  50.  
  51. 1.3 Using REXXTACY
  52.  
  53. Both REXXCSYM and REXXCGEN have a number of options. Run
  54. "REXXCYSM -?" and "REXXCGEN -?" for online help.
  55.  
  56. REXXCSYM's other options include:
  57.         -o file         Write a report of REXXCSYM's findings to
  58.                                 the specified file.
  59.         -v              Verbose analysis
  60.         -p              Debug parser (this may only be useful to
  61. the developer s
  62.                         of REXXTACY)
  63.  
  64. REXXCGEN's other options include:
  65.         -c              Compile to C only. Do not invoke the C
  66. compiler.
  67.         -p              Debug parser
  68.         -P              Use protected mode library names (ending
  69. in "P")
  70.         -o              Compile C code with maximum optimization
  71.         -d              Compile C code with CodeView debugging
  72. information
  73.  
  74. If you have the TEMP or TMP environment variables set, then
  75. REXXCSYM and REXXCGEN will use that directory to write and read
  76. the temporary symbol file (which ends in ".tmp").
  77.  
  78. A batch file is provided (REXXTACY.CMD) which will, when invoked
  79. with the name of a REXX program, translate and compile in one
  80. step.
  81.  
  82. Many errors in a REXX program will be caught at compile time by
  83. REXXTACY. However, REXXTACY provides extensive runtime error
  84. checks. A compiled REXX program processing faulty data will emit
  85. descriptive error messages - with lin e
  86. numbers that refer back to the original REXX code.
  87.  
  88.  
  89. 2 General Concepts
  90.  
  91. 2.1 Structure and General Syntax
  92.  
  93. REXXTACY input can be structured exactly like REXX input. It
  94. supports implicit and explicit end of statement markers,
  95. statement continuation markers and C style comments. However,
  96. hexadecimal and binary strings are not supported at this time.
  97.  
  98.  
  99. 2.2 Expressions and Operators
  100.  
  101. All of REXX's logical, arithmentic and comparison expressions
  102. and operators ar e
  103. supported by REXXTACY - including string abuttals and operator
  104. precedence orders.
  105.  
  106.  
  107. 2.3 Clauses and Instructions
  108.  
  109. REXXTACY supports all five REXX clause types:
  110.  
  111.         1. NULL Clauses
  112.         2. Labels
  113.         3. Assignments
  114.         4. Keyword Instructions
  115.         5. Commands
  116.  
  117.  
  118. 2.4 Assignments and Symbols
  119.  
  120. Constant symbols, simple symbols, compound symbols and stems are
  121. all supported by REXXTACY. Assignments to these symbol types
  122. operate exactly as they do
  123. in REXX.
  124.  
  125.  
  126. 2.5 Commands to External Environments
  127.  
  128. The only command processing environment that REXXTACY
  129. currently supports is CMD. Commands to this environment may be
  130. issued exactly as they are in REXX.
  131.  
  132.  
  133. 3. Keyword Instructions
  134.  
  135. 3.1 ADDRESS
  136.  
  137. Not implemented. All commands are routed to the OS/2
  138. command shell, CMD.
  139.  
  140.  
  141. 3.2 ARG
  142.  
  143. Implementation identical to that of REXX.
  144.  
  145.  
  146. 3.3 CALL
  147.  
  148. Implementation identical to that of REXX, with the
  149. omission of:
  150.         - CALL ON
  151.         - CALL OFF
  152.  
  153.  
  154. 3.4 DO
  155.  
  156. Implementation identical to that of  REXX.
  157.  
  158.  
  159. 3.5 DROP
  160.  
  161. Not implemented.
  162.  
  163.  
  164. 3.6 EXIT
  165.  
  166. Implementation identical to that of REXX.
  167.  
  168.  
  169. 3.7 IF
  170.  
  171. Implementation identical to that of REXX.
  172.  
  173.  
  174. 3.8 INTERPRET
  175.  
  176. Not implemented.
  177.  
  178.  
  179. 3.9 ITERATE
  180.  
  181. Not implemented.
  182.  
  183.  
  184. 3.10 LEAVE
  185.  
  186. Not implemented.
  187.  
  188.  
  189. 3.11 NOP
  190.  
  191. Implementation identical to that of REXX.
  192.  
  193.  
  194. 3.12 NUMERIC
  195.  
  196. Not implemented.
  197.  
  198.  
  199. 3.13 OPTIONS
  200.  
  201. Not implemented.
  202.  
  203.  
  204. 3.14 PARSE
  205.  
  206. Implementation identical to that of REXX with the exception
  207. of the following omissions:
  208.         - PARSE SOURCE
  209.         - PARSE VERSION
  210.  
  211.  
  212. 3.15 PROCEDURE
  213.  
  214. Implementation identical to that of REXX.
  215.  
  216.  
  217. 3.16 PULL
  218.  
  219. Implementation identical to that of REXX.
  220.  
  221.  
  222. 3.17 PUSH
  223.  
  224. Not implemented.
  225.  
  226.  
  227. 3.18 QUEUE
  228.  
  229. Not implemented.
  230.  
  231.  
  232. 3.19 RETURN
  233.  
  234. Implementation identical to that of REXX.
  235.  
  236.  
  237. 3.20 SAY
  238.  
  239. Implementation identical to that of REXX.
  240.  
  241.  
  242. 3.21 SELECT
  243.  
  244. Implementation identical to that of REXX.
  245.  
  246.  
  247. 3.22 SIGNAL
  248.  
  249. Not implemented.
  250.  
  251.  
  252. 3.23 TRACE
  253.  
  254. Not implemented.
  255.  
  256.  
  257. 4. Functions
  258.  
  259. Function calls in REXXTACY operate exactly as they do in
  260. REXX. Built in functions that are supported in REXXTACY
  261. include:
  262.  
  263.         - LENGTH
  264.         - LINEIN (No support for device names, line or count
  265.                          parameters)
  266.         - LINES (No support for device names)
  267.         - RxFuncAdd
  268.         - RxFuncDrop
  269.  
  270.  
  271.