ARexxBox - ARexx Interface Design Tool
FREEWARE, (C) 1992 Michael Balzer
ARexxBox (inspired by the GadToolsBox) is a tool for designing
ARexx interfaces for your programs, with the special goal to
greatly simplify this procedure while coming as close as possible
to the suggestions and ideas stated in the User Interface Style
Guide's ARexx section.
ARexxBox is for ARexx, what GadToolsBox is for the GUI.
FEATURES:
- Syntax and results of the ARexx commands follow
exactly the conventions suggested by the Style Guide,
e.g. command arguments are parsed using the AmigaDOS
ReadArgs function, and the keywords VAR and STEM are
supported automatically.
- Each command may have an unlimited number of arguments
and results.
- All ReadArgs template options are allowed for arguments
and are supported automatically. For results, the
switches /N and /M are supported.
- Graphical user interface (designed using GadToolsBox :-).
- Generates ANSI C or Oberon-2 source.
- ARexxBox can generate source for CommandShells, shells
in which the user may enter ARexx commands directly
and view their output.
- CommandShells can be used to execute external macros.
- A program may open as many ARexx ports and
CommandShells as the system memory will allow.
- ARexx commands can use an extended error return feature
using a secondary return code.
- I already entered all standard commands suggested by
the Style Guide. Example code for some of them is also
included.
REQUIREMENTS:
ARexxBox and the generated code will only run on AmigaOS 2.04
(or better). The Box (but not the generated source) needs
reqtools.library by Nico Francois.
HISTORY SINCE LAST RELEASE:
V1.12
FIXED: The HELP command produced Enforcer hits (strlen(0)).
(Report: Klaas Hermanns)
ENHANCED: Introduced tag #2 for commands: External status flag,
"New" state of this flag will only be reset by external programs,
e.g. documentation aids like ARB2TeXinfo by Albert Weinert.
(Suggestion: Albert Weinert)
FIXED: The command list was generated not alphabetically but
numerically sorted (by their IDs).
(Report: Klaas Hermanns)
ENHANCED: Instead of the binary search algorithm, the Box now
generates a real finite state machine for searching of commands
(FindRXCommand). The binary search method had a big design flaw
with abbreviations on the alphabetically sorted list of commands.
(ATT: This has been implemented for C only up to now!)
(Report: Klaas Hermanns)
FIXED: For SAS C, toupper() will be #undefined. Also there is now
the real function cast in the list of commands.
(Report: Klaas Hermanns)
FIXED: The MIN and MAX results of Misc.arb/GETATTR have to be
numbers, of course.
(Report: Klaas Hermanns)
FIXED: "Merge" trashed the command list when merging in existing
commands.
CHANGED: Now declares the external library bases with their
appropriate types (C).
(Wunsch: Klaas Hermanns)
CHANGED: In arb/advanced.arb, commands REQUESTNUMBER and
REQUESTSTRING, I changed the argument called "DEFAULT" to "DEFAULTNUM"
resp. "DEFAULTSTR" to avoid conflicts with the 'default' keyword in C.
(Report: Klaas Hermanns)
ENHANCED: There's now another parameter for all interface functions
called "struct RexxMsg *rexxmsg", which will contain the address of
the message from REXX if called by ARexx. If called from a command
shell, it will contain NULL, so you can also use it to determine the
caller. This is to support GetRexxVar(), which needs this pointer.
(Report: Klaas Hermanns)
FIXED: I now define toupper() as a function for GCC. The macro caused
problems by evaluating the parameter more than once.
FIXED: The command shell parameter parsing had a bug (the ReadArgs
buffer wasn't cleared).
Michael Balzer
--
Michael Balzer, Wildermuthstr.18, W-5828 Ennepetal, Germany
At work: balzer@heike.informatik.uni-dortmund.de // Pure
At home: bilbo@bagsend.aworld.de +49 2333 80908 \X/ Amiga
|