Seite 1 von 3

Easy - Compiler / Interpreter

Verfasst: 28.12.2004 06:55
von MVXA
Abend :mrgreen:.
Ich hab was in der Nacht aus langeweile fix programmiert. Es ist eine Programmiersprache :mrgreen:. Ich änder noch ein paar Funktionen und mach noch welche nach. Die Referenz kann man sich schon mal hier ansehen: Referenz. Achja und bitte, nehmt das Programm (die Referenz schon...) nicht so ernst :lol:, es ist mehr sowas was man als zusammen geschreibsel aus reiner langweile bezeichnen könnte. Wer sie jetzt noch lernen will. viel spaß :D

Hier ist noch ein Beispiel. Einst war es ein Besipiel für doe Konsolen Lib von Purebasic. jetzt ist daraus ein Beispiel für Easy geworden :lol:

Konsole.zip - 1,55 KB

Edit: beispiel entfernt, da es ein paar Fehler im Code gab (meine konzentration lässt nach /:-> :coderselixir: )

Edit die 2.: Beispiel wieder drin und hab die Referenzen erneuert. Aufgelistet sind neue Funktionen und was Funktionen annehmen.

Verfasst: 28.12.2004 08:08
von DarkDragon
Wichtig, muss vor jedem Programm aufgeruffen werden um den Speicher zu diensionieren.
"m" muss da noch rein

JOC -> passt nicht wirklich
mach lieber

JL -> Jump when Less
JNL -> Jump when Not Less
JE -> Jump when Equal
JNE -> Jump when Not Equal
JG -> Jump when Greater
JNG -> Jump when Not Greater
JMP -> Always

[EDIT]
Warum höchstens nur 2 Parameter?

Verfasst: 28.12.2004 08:20
von MVXA
zu faul mehr zu machen :? ? ich schreib das ganze jetzt etwas um, wird dann etwas sinnlo... voller meinte ich :roll: Und bis jetzt bin ich mit 2 immer gut ausgekommen :mrgreen:

Verfasst: 28.12.2004 08:27
von DarkDragon
Warum nicht unendlich? :P Man sollte ja auch irgendwann richtige API Funktionen aufrufen können, oder? Außer du machst das ganze wie in altmodischen ASMs:

...
PUSH hWnd
PUSH SW_NORMAL
CALL ShowWindow
POP
POP
...

Verfasst: 28.12.2004 08:33
von MVXA
was so ähnlich geplant. aber darf ich erstmal den interpreter fertig schreiben ? Danke <). Das ding sieht z.Z. richtig übel aus. Als ich bemerkt habe, dass ich das teil noch etwas weiter programmieren möchte, musste ich die gesamte Datei neu strukturieren, damit ich das ganze auf dauer lesen kann /:->. Mit Freds worten: I'm on it :mrgreen:

Verfasst: 28.12.2004 09:11
von MVXA
So, steht. Bin ein fleißiges kerlchen :mrgreen:. Ich mach was am Compiler, damit er meine Fehler erkennt, sonst rasst ich noch aus und änder noch den interpreter an stellen wo er eigentlich agrnid kaputt ist.

Jawohl

Verfasst: 28.12.2004 15:42
von Hroudtwolf
In den 80zigern wäre das ein HIT geworden.
:allright:
:wink:

Verfasst: 28.12.2004 20:01
von Helmut
irgentwie gehen die Link's nicht...

Verfasst: 28.12.2004 20:02
von MVXA
Der Webspace ist nur spendiert worden, von einem Freund. Wenn der Link (oder meine Sig) nicht verfügbar ist, dann macht er gerade irgendwas mit dem Server. Ist halt seine Maschine ;)

Verfasst: 29.12.2004 22:02
von MVXA
Reales !
Ich hab nun den Interpreter fertig geschrieben. Ich hatte keine Lust mehr an der Referen noch die Befehle zu ändern. Achtung, ein paar funktionieren nicht mehr so wie in der Referen angegeben ! Dem Packet liegt SourceCode und Compiler bei. Im Archiv sind zusätzlich noch ein paar Beispiel code. Bevor hier jetzt jeder kommt und mich auslacht: Die Scripte werden vom Compiler in eine struktuerierte Linked List eingelesen und dann als Structure "compiliert" in eine Dateigespeichert. Das gleiche passiert auch mit den Pointern. Die 2 entstandenen Dateien werden dann mit der VBin Lib zusammen geführt und so bekommt man eine "Binärdatei". Hier nun der Download link:

Easy.zip - 34.5 Kbyte

ehm, nochwas. An dem Interpreter und am Compiler wird nicht mehr weiter gearbeitet! Wer das Programm aber lustig findet kann es meinet wegen gerne weiter programmieren :lol:. In dem Sinne: Viel Glück und have fun

Edit:
Ich habe nun eine neue Version hoch geladen. In dieser gibt es ein kleinen Bugfix. Wenn man Daten 'gestort' hat und eine Funktion aufrufte, konnte man keine neue Funktion afurufen, da der Zwischenspeicher nicht gelöscht wurde. Dies wurde nun behoben. Zusätzlich habe ich die Funktion um eine Funktion in einer DLL aufrufen durch eine eigenen klitzekleine routine ersätzt (eine Zeile :lol:). Dann wünsch ich euch viel spaß mit der neuen Version.