Witam wszystkich zainteresowanych Arexxem. ARexx jest prosty i potężny jednocześnie. Po nauczeniu się podstaw będziesz w stanie uwolnić wielką, ukrytą siłę zawartą w AmigaOS i długo jeszcze będziesz się dziwić dlaczego nie zacząłeś eksperymentów z Arexxem wcześniej. Najistotniejszą rzeczą jest jednak po prostu radość z tworzenia. Jeśli to co robisz Cię nie bawi, nie jest wtedy warte robienia. Zasadniczo moim celem jest ukazanie możliwośći związanych z wykorzystaniem oprogramowania udostępniającego tzw. port Arexxa. Dlatego nie będę się skupiał na szczegółach samego języka jako takiego.
Arexx jest jedną z cech, która powoduje że Amiga jest tak dobrym komputerem. Wykorzystuje on wielozadaniowość AmigaOS w sposób nie spotykany w podobnej skali na innych systemach operacyjnych. Dzięki niej, Arexx pozwala na łatwe modyfikowanie zachowań konkretnych programów do swoich własnych celów. Jakkolwiek, nie trzeba pisać skryptów Arexxowych tylko pod kątem poszczególnych programów. Można również pisać skrypty same w sobie będące aplikacjami i niezależne od jakichkolwiek programów. Jednak najważniejszą zaletą Arexxa jest kontrola innych programów, czy nawet wymiana danych między programami, wyposażonymi w tzw. port Arexxa.
Arexx jest nierozłącznym elementem systemu AmigaOS od wersji 2.0. Aby korzystać z jego dobrodziejstw należy go przede wszystkim uaktywnić poprzez uruchomienie polecenia RexxMast, ale proponuję dokonać następujących czynności:
Jako że Arexx jest językiem interpretowanym, oznacza to że każdy jego skrypt czy program jest niczym innym jak zwykłym plikiem tekstowym. Do napisania skryptu wystarcza każdy, choćby najprostszy, edytor tekstu. Skrypty ARexxa, generalnie rzecz ujmując, powinny posiadać w swej nazwie rozszerzenie .rexx. Dzięki temu rozszerzeniu są one rozpoznawane przez system amigowy.
Każdy program, czy skrypt Arexxa musi posiadać jako pierwszą linijkę komentarza np.
/* Moj pierwszy skrypt ARexxa */
czy np.
/* $VER: MojSkrypt.rexx v1.0 (01/12/2006) */
Arexx posiada swój własny zestaw poleceń które można wykorzystywać w skryptach, jak np. polecenie SAY, które otwiera okienko CLI i wyświetla zadany tekst. Polecenia Arexxa można pisać tak małymi jak i dużymi literami, ale stosownie do niepisanego standardu lepiej je pisać drukowanymi literami. Skrypt nabiera przez to czytelności.
Poniżej prosty przykład:
/* $VER: hello.rexx v1.0 (01/12/2006) */
SAY "hello, world!"
/* Koniec skryptu */
Otwieramy edytor tekstu, wpisujemy te linijki, po czym zapisujemy skrypt do pliku pod nazwą hello.rexx do RAM:. Otwieramy okno CLI, po czym wklepujemy z klawiatury:
rx Ram:hello.rexx
Jako rezultat otrzymujemy "hello, world!" w nowej linijce okienka CLI.
Poniżej następny przykład skryptu, który pozwala na obliczenia matematyczne, będący jednocześnie prostą aplikacją:
/* kalk.rexx - prosty kalkulatorek */
parse arg args
interpret 'say 'args
exit
/* End */
Aby użyć ten skrypt, zapisz go do pliku jako RAM:kalk.rexx. Nie zapomnij o linijkach komentarza, zwłaszcza pierwszej linijce. Istnieje kilka sposobów na uruchamianie skryptów Arexxa. Najprostszy wymaga konsoli CLI i użycia polecenia RX (z katalogu SYS:RexxC):
rx Ram:kalk.rexx 2+2
lub po prostu:
rx Ram:kalk 2+5
Zamiast "2+2" czy "2+5" można oczywiście użyć dowolnych wyrażeń numerycznych rozumianych przez AmigaOS.
I to by było na tyle tytułem wstępu do Arexxa. Poniżej zamieszczam zestaw funkcji wbudowanych w Arexxa:
ABBREV() ABS() ADDLIB() ADDRESS() ARG() B2C() BITAND() BITCHG() BITCLR() BITCOMP() BITOR() BITSET() BITTST() BITXOR() C2B() C2D() C2X() CENTER() lub CENTRE() CLOSE() COMPRESS() COMPARE() COPIES() DC2() DATATYPE() DELSTR() DELWORD() |
EOF() ERRORTEXT() EXISTS() EXPORT() FREESPACE() GETCLIP() GETSPACE() HASH() IMPORT() INDEX() INSERT() LASTPOS() LEFT() LENGTH() MAX() MIN() OPEN() OVERLAY() POS() PRAGMA() RANDOM() RANDU() READCH() READLN() REMLIB() REVERSE() RIGHT() |
SEEK() SETCLIP() SHOW() SIGN() SPACE() STORAGE() STRIP() SUBSTR() SUBWORD() SYMBOL() TIME() TRACE() TRANSLATE() TRIM() UPPER() VALUE() VERIFY() WORD() WORDINDEX() WORDLENGTH() WORDS() WRITECH() WRITELN() X2C() XRANGE() |
oraz zestaw poleceń:
ADDRESS ARG BREAK CALL DO DROP ECHO ELSE END EXIT IF INTERPRET ITERATE LEAVE NOP NUMERIC |
OPTIONS OTHERWISE PARSE PROCEDURE PULL PUSH QUEUE RETURN SAY SELECT SHELL SIGNAL THEN TRACE UPPER WHEN |
Jak widać powyżej, bezpośrednio po uruchomieniu Arexxa mamy do dyspozycji, co może zaskakiwać, całkiem sporo tych funkcji i poleceń. Co ciekawe, może ich być nawet zdecydowanie więcej, ale to temat na dalsze roważania. A do czego służą konkretne funkcje i polecenia? Szczegóły znajdziesz w podręczniku Arexxa bądż na Aminecie np. tutaj lub tutaj. Miłej lektury! Niech moc Arexxa będzie z Tobą!