[comp.sys.amiga] Scripting language

sja@sjami.UUCP (Steve Ahlstrom) (08/17/89)

A while back there was discussion on a scripting language for Amiga.
Now there is a very powerful script language called Scripit from 
Khalid Aldoseri.  Khalid was looking for something to do and I mentioned
the need for a scripting program.  Here's a bit more info about it ....

____________________________________

You've been asking for a scripting language for the Amiga, eh?  Well,
you're in luck!  Khalid Aldoseri has been working on just such a beast
for quite a while now, and it's finally ready!

It's called 'Scripit', and it can do almost anything you would normally
do with the mouse and keyboard, but through a script.  It can control
any program by triggering its menus and gadgets (as well as clicking
anywhere) just like ARexx does, but without the need for any special
ports in the program being controlled.

Scripit comes as several programs, a Script Player, a Recorder, a Lister
a WB Interfacer, and a few more programming aids.

It has an ARexx port and can be totally driven from ARexx if you need
to do that.  In essence, giving ARexx control over programs that don't
have ARexx ports.  Also, the WB Interfacer hooks into WorkBench and
allows Scripit to drive WB as it likes: selecting icons, opening and
closing drawers, loading programs, moving icons, snapshots .. etc.
All via a text script!  And you only have to specify icons by name,
no need for coordinates!

Plus, Scripit has extensive window/screen control commands allowing
you to move, resize, close, front/back windows as well as move and
front/back screens.  And, a full set of console commands that provide
means to open and close consoles, and virtually send any ANSI command
to consoles in a format readily understandable by most human beings.

Other commands include a set of graphics commands that allow you to
draw on any program's window or type any text on it!  Plus all sorts
of strange and wonderful commands.  :-)

Scripit can be run either from CLI as a single task or as a resident
module (for ARexx support) or from WorkBench via icons and a file
requester.  It also has an interactive mode that allows you to issue
commands to Scripit 'live' via the keyboard.  There is a lot more to
Scripit than this, but it would take a few more pages to describe. (grin)

Khalid Aldoseri.
____________________________________

That was info from the initial release version -- a third release is
due within the next week or so.  Here is a message that outlines some of
the most current additions.

____________________________________

#: 62160 S13/Tool Box
    17-Aug-89  06:03:40
Sb: #62059-#Scripit
Fm: Khalid Aldoseri 75166,2531
To: Roy S. Laufer 72435,1025 (X)

Roy, thanks.  (grin)  I have thought a lot about selecting screen or window
by its address and decided against it.  It is just way too dangerous. 
Anyway, I currently check whether the selected window is still in the
system _everytime_ I do a command that affects it.  I'll think about the
address idea.. Thanks.  (scratching head)

Version 1.02 is moving along pretty fast.. (I should call it 1.10 :-) Among
the new things added to it are:  String and integer variables! (yeah,
finally ;-)  Those are free-form and do not need to be defined before they
are used.  (like Basic variables.)  String variables start with $ .. e.g. 
$name  and integer variables start with % .. e.g. %width.  If fact, the
variable %test and $test is the same variable, except it controls how it is
treated, as an integer or as a string.  i.e. you can set $test = "123" and
read it as %test, which is 123.  Makes sense??

Also, some more flow control commands like  IF/ELSE/ENDIF and GOSUB/RETURN
as well.  I had a hard time implementing the IF commands but now they work
very well (with unlimited recursiveness :-)  Another important thing is a
full-fledged expression parser which allows it to handle stuff like:

%length = %arg1 * 3
if %length >= (%arg2 / 2) ^ (2 & 3)
echo "Length too much.. readjusting"
length = 640
else
echo "Length is ok."
endif

It can handle the following operators.. + - / * ^ | & ( ).  It's very
similar to BASIC.  Oh, and the %arg1 to %arg9 are arguments entered
directly from the CLI when running:  i.e.  Scripit test arg1 arg2 .. etc.
(and, of course, $arg1 to $arg9)

It'll probably be another week before all those new facilities are working
smoothly.  (ironing out some problems right now)

Khalid. (hey, the weekend's almost here!)

____________________________________



--
 ----------------------------------------------------------------------
|    //                        Ooooooommmmmmmm                         |
|  \X/                                                                 |
|                              Steven Ahlstrom                         |
| CompuServe: 76703,2006                      ...boulder!tcr!sjami!sja |
|                                                         or           |
|                                            76703.2006@compuserve.com |
 ----------------------------------------------------------------------