ideas, todo
- string/object vereinheitlichung sanft beginnen, mit neuer Variante(oder arg) von objClass und in o2file usw. ausbreiten
- classS für string ist verwirrend, s brauchen wir schon für stem, m wäre vielleicht besser, aber müssten es in allen classDefinitionen anpassen (oder dort als Synonym, da classS ja gar nicht vorkommen kann?!
- pipes mit parent. Push/Pop nur bei Anfang und Ende falls nötig
- Cat mit denselben Buchstaben und Logik wie pipe!
fixes
- block ending noSla with $
Begriffe
class. In wsh kann man Klassen definieren, dazu benutzt die Laufzeit Umgebung vordefinierte Klassen und einige Klassen werden dynamisch erstellt (z.B. für SQL Abragen). Die wichtigsten Teile der Klassenhierarchie:
Object a reference to an object, this is of course also a rexx String, but its contents is interpreted as objectAdress for an object with a class, not as contents. If a RexxString is and Object or a String is context dependent, many procedure exist in different versions for Strings and Objects as input or output. In some special cases, we dynamically decide wheter an argument is an Object or a String: if we find a class for the value of the string we assume it's an Object, otherwise a String.
Strings we use 3 different types of String
StrS not an object but a simple rexx string. In the rexx the (pseudo!)class is called m.class_S ⇒ w.
ORun an object that contains a method, that executes (interprets) some rexx code in its method oRun
JRW a class supporting Reads and Writes. the basis for all types of files and pipes. The oRun method reads until endOfFile and writes each object read unchanged to stdOut. If the JRW is not opened yet, it is opened for read and closed afterwards.
fileSpec the specification for the title and other attributes of a dataset. You can give simply the title, wherein ~ are expanded to your SysPref. You may append further attributes (in tso alloc syntax). After as : follow instructions how to create the dataset, if it does not exist yet
inlineScript in einem Rexx kann ein Teil des Sources so markiert werden, dass dieser SourceTeil vom RexxProgramm selbst gelesen wird und als wsh Syntax interpretiert wird
m All global variables are in the rexx stem m.. All other variables are local. This is implemented by a declaration
procedure expose m.
for every rexx routine. If an object has address a and a field f1 the contents of f1 is in m.a.f1. It may also use the value in m.a (but this is not recommended) and m.a is called the value of object a.
null der leere String dient als Null Object
stdIn standard Input ist ein vordefiniertes InputFile, dass mit im Script oder Rexx umgeleitet werden kann
stdOut standard Output ist ein vordefiniertes OutputFile, dass mit im Script oder Rexx umgeleitet werden kann
old
accessPath ZugriffsWeg auf Felder eines object z.B. in vars gespeichert. Der Zugriff kann über mehrere Stufen erfolgen, entweder auf ein SubFeld oder über die im Subfeld gespeicherte Referenz.
pipe Zusammensetzung von zwei Codestücken, indem stdOut des ersten auf stdIn des zweiten geleitet wird. In wsh macht das der Operator $!.
stdIn standard Input ist ein vordefiniertes InputFile, dass mit im Script oder Rexx umgeleitet werden kann
stdOut standard Output ist ein vordefiniertes OutputFile, dass mit im Script oder Rexx umgeleitet werden kann