Zum Inhalt springen

CAOS-Programmierung: Syntax

Aus Wikibooks

Syntax

Bin noch am formulieren

Kommentare werden mit einem " * " eingeleitet und gelten bis zum nächsten Enter

CAOS ist eine registerbasierte Sprache, mit einem festgelegten Befehlssatz, welcher nicht erweitert werden kann. Lokalesierung von Variablen wird nicht unterstützt.(d.h. in einem Script-Unterprogramm können auch nur die gültigen Variablen VA00 bis VA99 angesprochen werden )

Jede Script-Datei kann Subroutinen enthalten.Doch diese sind nur in dieser Datei und für die angegebene Scriptnummer gültig, können also nicht von "Außen" aufgerufen werden.

Der CAOS-Code kann als einzelner Befehl, in ein laufendes Programm (Spiel) eingegeben werden. Dies geschieht entweder durch die CAOS-Befehlszeile in DS (muß als Script schon laufen) oder von einem Terminal. Jedoch wird CAOS meistens als Script verwendet. Ein typisches Beispiel

 Code  ....
 	attr 192
       accg 0
       perm 0
       aero 0
       fric 0
       elas 0
       .....

Dies ist nur die Darstellung lesbar für den Programmierer, intern verarbeitet DS dies so:

 Code  .... attr 192 accg 0 perm 0 aero 0 fric 0 elas 0 .....
 

Die Befehle des Codes, immer vier Buchstaben, sind Abkürzungen des Englischen.

 z.B. fric : friction (Reibung) , new:  :  new (Neu bitte den Doppelpunkt beachten, ist Teil des Befehls!)

Es gibt nur zwei Ausnahmen der "Vier-Buchstaben-Regel":

1. Parameter, sie tragen namen wie _IT_, _P1_ oder _P2_ (auch hier vier Buchstaben, allerdings ein _ statt einem richtigen Buchstaben)
2. Operatoren, beispielsweise eq (equals), ge (greater or equal), lt (less than) etc. besitzen nur zwei Buchstaben.


Die Zahlen vor oder nach dem Befehl haben immer spezielle Bedeutungen, z.B Reibung(wert) 0. Die Bedeutung und welche Angaben benötigt werden ist in den einzelnen Befehlsgruppen erläutert.

Hauptaufgabe von CAOS ist das Beschreiben von Objekten(Agents), deren Eigenschaften und die Interaktion untereinander, mit Norns und mit dem User(per Mouse(Hand) oder Tastatur) Kursiv weil es nicht objektorientiert verstanden werden soll, nur in etwas so ähnlich. Vieles ist zugeschnitten auf das Spiel, einige Sachen fehlen (für OOP) und einiges wird anders ausgeführt.

Die Code der Agenten setzen sich aus verschiedenen Dingen zusammen.

 1. Installation Script  dort wird definiert
    * Eigenschaften , z.B. attr 192
    * Name des Bildes z.B "hoverdoc.c16" 
    * Position  des Agenten
 2. Script-Ereignissen, sie definieren das Verhalten bei einem eintreffenden Ereignis, z.B. Karotte (Agent) wird von Hand fallen gelassen scrp 2 32 23 9
 3. Deinstallations-Scripts (z.B. scrx 2 32 23 9)

Es gibt eine Reihe von vordefinierten Ereignissen : Script Numbers

Zur Steuerung de Programmablaufs gibt es unter Flow die entsprechenden Befehle.

Speziell für das Entwickeln von CAOS-Programmen gibt es die Debug Befehle, mit der Ausgabe über einen Terminal.

Weiterhin sind Befehle für das Zugreifen auf "Files" , den "Sound" und das "Net".Einige Befehlsgruppen sind nur für Norn- Brain oder -History zuständig.