Soooooooooooo!
Ich hab mich heut wieder an meinen Interpreter rangehängt und habn paar Sachen verbessert. Vorallem den Namen.

Heißt jetzt C--.
Es gibt jetzt ne dateinamen-zwischenablage (clipboard), man muss einfach getc schreiben, um den vorherigen Dateinamen zu holen. Ich weiß es ist schnick-schnack, aber ich will herumexperimentieren.
Noch was wichtiges: Mit end kann man beenden.

(hoffe, dass das keiner will.

)
okay, genug geredet, hier ist der Code: (wird bald zu lang zum posten.

)
Code: Alles auswählen
;C-- C-- C-- C-- C-- C-- = Das Gegenteil von C++
OpenConsole()
ConsoleTitle("Starting...")
Print("C-- Interpreter is starting...")
Delay(1500)
ClearConsole()
Goto main
Procedure Interpreter(datei$)
If ReadFile(0,datei$)
ConsoleTitle(ReadString())
For i = 0 To 100000
*memory = AllocateMemory(10)
*highmemory = AllocateMemory(10)
*highermemory = AllocateMemory(10)
*megahighmemory = AllocateMemory(10)
*waitmemory = AllocateMemory(50)
ReadData(*memory,1)
befehl$ = PeekS(*memory)
FreeMemory(*memory)
Select befehl$
Case ":"
ReadData(*highmemory,2)
par$ = PeekS(*highmemory)
asc = Val(par$)+100
Case "."
ReadData(*highmemory,2)
par$ = PeekS(*highmemory)
asc = Val(par$)
Case ";"
ReadData(*highmemory,2)
par$ = PeekS(*highmemory)
asc = Val(par$)+200
Case "!"
ReadData(*highermemory,1)
If PeekS(*highermemory) = "0"
Print(Chr(asc))
ElseIf PeekS(*highermemory) = "1"
Print(Chr(ascin))
ElseIf PeekS(*highermemory) = "2"
Print(in$)
EndIf
Case "§"
ReadData(*waitmemory,4)
Delay(Val(PeekS(*waitmemory)))
Case "#"
ClearConsole()
Case "?"
asc = Random(255)
Case "$"
ReadData(*megahighmemory,1)
If PeekS(*megahighmemory) = "0"
ascin = Asc(LSet(Input(),1))
ElseIf PeekS(*megahighmemory) = "1"
in$ = Input()
EndIf
Case "-"
Goto main
EndSelect
If Eof(0) <> 0
Goto main
EndIf
FreeMemory(*highmemory)
FreeMemory(*highermemory)
FreeMemory(*megahighmemory)
FreeMemory(*waitmemory)
Next i
ElseIf ReadFile(0,datei$) = 0
ClearConsole()
Print("Error! Could not open File! C-- is restarting Interpreter...")
Delay(2750)
ClearConsole()
ConsoleTitle("Restarting...")
Delay(1500)
SetClipboardText("")
Goto main
EndIf
EndProcedure
main:
ConsoleTitle("C-- Interpreter")
ClearConsole()
Print("C-- Sourcecode: ")
datei$ = Input()
If datei$ = "end"
End
ElseIf datei$ = "getc"
datei$ = GetClipboardText()
Print(" "+datei$)
EndIf
SetClipboardText(datei$)
PrintN("")
asc = 0
ascin = 0
in$ = ""
Delay(750)
Interpreter(datei$)
Die Befehle:
Code: Alles auswählen
C-- Befehle
.number Asc Wert von 0 bis 99 festlegen.
:number Asc Wert von 100 bis 199 festlegen.
;number Asc Wert von 200 bis 255 festlegen.
! Ausgeben, 0 für Hauptvariable, 1 für den Eingabe-Asc-Wert und 2 für die Eingabevariable.
§ms Wartet [ms] Millisecunden.
# Bildschirm löschen.
? Zufälliger Asc Wert.
$number 0 = Ein Zeichen eingeben, 1 = mehrere Zeichen eingeben.
- Ende.
Erweitertes (!!!) Hello-World-Prog:
Code: Alles auswählen
Advanced Hello, world in C--
This program demonstrates what you can do with Cminusminus
# .72 !0 §0250 :01 !0 §0250 :08 !0 §0250 !0 §0250 :11 !0 §0250 .44 !0 §0250 .32 !0 :19 !0 §0250 :11 !0 §0250 :14 !0 §0250 :08 !0 §0250 :00 !0 §0250 .33 !0 §2000 # .80 !0 §0100 :08 !0 §0100 :01 !0 §0100 .97 !0 §0100 :15 !0 §0100 :01 !0 §0100 .32 !0 :01 !0 §0100 :10 !0 §0100 :16 !0 §0100 :01 !0 §0100 :14 !0 §0100 .32 !0 :10 !0 §0100 :17 !0 §0100 :09 !0 §0100 .98 !0 §0100 :01 !0 §0100 :14 !0 §0100 .33 !0 §0100 .32 !0 $1 #
Das ist ein Kommentar =D
§0500 .89 !0 §0100 :11 !0 §0100 :17 !0 §0100 .32 !0 §0100 :04 !0 §0100 .97 !0 §0100 :18 !0 §0100 :01 !0 §0100 .32 !0 §0100 :16 !0 §0100 :21 !0 §0100 :12 !0 §0100 :01 !0 §0100 :00 !0 §0100 .58 !0 §0100 .32 !0 §0100 !2 §2000 # .82 !0 .97 !0 :10 !0 :00 !0 :11 !0 :09 !0 .32 !0 .67 !0 :04 !0 .97 !0 :14 !0 .97 !0 .99 !0 :16 !0 :01 !0 :14 !0 :15 !0 .58 !0 .32 !0 §0750 ? !0 §0500 ? !0 §0500 ? !0 §0500 ? !0 §2000 # .69 !0 §0500 :10 !0 §0500 :00 !0 §0500 .33 !0 §2500 # §1000 -
Achja hab ich fast vergessen:
LittleFurz hat geschrieben:Easy kennt da wenigstens Kommentare

C-- kann sehrwohl Kommentare. Es grast einfach nur den Code nach Befehlen ab, die es kennt, alles andere wird ignoriert.
Es gilt wieder: Käfer töten!!!
Eure Meinung wäre auch toll.
Schon wieder fast vergessen: WIE MACHE ICH IF-ABFRAGEN???
Ich tu da schon Tagelang grübeln.
Wenn ihr gleich auch noch rausrücken würdet, wie Schleifen gehen, wärs echt cool.
Mfg,
AndyX