Entwickler-Ecke

Freeware Projekte - Batch-Compiler


AXMD - Sa 31.05.03 16:44
Titel: Batch-Compiler
Hi,

der Titel passt vielleicht nicht zu 100% zum Programm, da das Programm, das ich programmiert habe, kein Compiler für BAT-Dateien ist, sondern meine "eigene" Programmiersprache parst und Syntaxfehler anzeigt.
Dieses Programm ist eine Beta-Version und ist nur dazu gedacht, herauszufinden, ob ein solches Programm überhaupt weiter entwicklungswert ist.
Downloadlink: http://www.8ung.at/dustsigns/batchedt.exe (Größe: ca. 196 KB)

Das Programm erzeugt bzw. erstellt im Moment gar nichts - außer, dass es im rechten Fensterteil Variablen und Labels auflistet, die deklariert wurden. Ich hätte gerne gewusst, ob es sich lohnt, das Programm weiterzuentwickeln.

AXMD

PS.: Die Syntax ist denkbar einfach: erste Zeile muss immer #mkbatch lauten, letzte Zeile immer #endbat. Kommentare werden durch ! am Zeilenanfang angedeutet - alle weiteren Befehle findet ihr durch einen Rechtsklick auf das linke Richedit.

//EDIT: dieses Programm ist eine Mischung aus Interptreter und Compiler und erstellt keine EXE-Dateien. Es prüft und verschlüsselt nur den eingegebenen Code, damit der in Zukunft folgende Interperter von der Fehlerprüfung im Parsen befreit ist.


BungeeBug - Sa 31.05.03 21:39

Hi,
ich hab das Proggi heute morgen runtergeladen und bin bis jetzt nicht dahinter gekommen wie das Teil nu fuktioniert ... wie muss ich die Funktionen nutzen? z.B.: die load Funktion wie is da die passende Syntax?
Ausserdem mach das Programm auch nen Fehler wenn man nur das Grundgerüst "kompaliern" will.

Also ne kleine Doku wär schon mal was :)

mfG BungeeBug

[edit] nu geht das Grundgerüst nur macht der Kompiler sofort nen Fehler sobalt irgendwo nen Leerzeichen is was da nicht hin muss ... also überflüssig is aber nicht falsch!
[/edit]


bis11 - So 01.06.03 10:19

Ich kann mich da dem Vorredner bezüglich der Doku nur anschliessen. Dann solltest Du dort vielleicht noch den Button für Minimieren und Vollbid wieder reinbringen. Denn ich bin ein User der gerne im Vollbild arbeitet. Ich möchte nicht jedesmal erst das Fenster auf Vollbild ziehen.


AXMD - So 01.06.03 14:29

Hi,

erstmal danke, dass ihr das Proggie getestet habt.

Zitat:
Ausserdem mach das Programm auch nen Fehler wenn man nur das Grundgerüst "kompaliern" will.


Welchen Fehler genau?

Wegen der Doku: ich hab das Ding innerhalb von 10 Stunden am Freitag Abend geproggt - da war für eine Doku leider keine Zeit mehr. Wegen der Syntax: alle Befehle, die ihr im Menü findet, werden (bis auf dlg, defvar, deflabel, _set und goto) ´"mit ohne nichts" aufgrerufen ;) einfaches Beispiel:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
#mkbatch new

load
save

!Und jetzt ein Dialog...

dlg "Hello world!"

#endbat


Wenn Ihr sonst noch Fragen habt, stellt sie einfach. Und: es wäre hilfreich, wenn ich wüsste, welcher Fehler beim Kompilieren des Grundgerüsts kommt. THX

AXMD


BungeeBug - So 01.06.03 14:34

Hi,
das mit dem Fehler beim Grundgerüst war nen Fehler von mir ... ich hatte das Proggie am morgen angeguckt und mir nich alles ganz genau gemerkt ... und da siehste ja was dabei raus kommt :)

MfG BungeeBug


mimi - So 01.06.03 21:54


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
#mkbatch new 

load 
save 

!Und jetzt ein Dialog... 

dlg "Hello world!" 

#endbat

gibt es fehlermeldungen erst bei der ersten zeile und dann findet er load und save nicht :( [/delphi]


Tweafis - So 01.06.03 22:28

du musst die leerzeoichen hinter den drei befehlen wegmachen


Moritz M. - Mo 02.06.03 21:04

Hi

Also, erstens denke ich,das so eine kleine Programmiersprache durchaus Ausbauenswert ist. Folgende Funktionen fände ich toll:
-if
-Ja/Nein Dialog
-OK-Dialog
-Registryfunktion
-Inifunktion
-Textdateifunktion

Ansonsten ist das schonal gut. Nur den Befehl "load" (Ohne Leerzeichen am Ende) findet ehr nicht.


Jack Falworth - Mo 02.06.03 21:08

natürlich wäre das weiter ausbaufähig, nur stellt sich dann die Frage wofür soll das gut sein?
Einen Nutzen hat es auf jeden Fall: Du erweiterst deine Kenntnisse, aber ob das dann auch interessant für hier die Leute ist, ist halt die Frage.

Ich hab mit meinem Kollegen einen kompletten Compiler für unsere Sprache EduLAN geschrieben und das besondere ist daran, dass die verschiedenen Compilermodule (Scanner, Parser, AOC-Maschine) graphisch veranschaulicht sind.
Wir haben dafür ein knappes Jahr gebraucht, aber es scheint keinen zu interessieren, deshalb hab ich es auch nicht hier reingestellt.

MfG

Jack Falworth


Moritz M. - Mo 02.06.03 21:10

Hi

Kannst du mir das Prog mal schicken? Würde mich interessieren.

Ich sehe folgenden Sinn:
Man kanbn Programme, im Gegenteil zu Delphi, sehr klein und schnell erstellen. Und Anfänger können sich damit vorantasten, uns müssen sich nicht gleich an Delphi ranwagen.

Gruß

Onz


AXMD - Mo 02.06.03 22:10

Was verstehst du unter schicken? Den Quelltext?

Wegen den Erweiterungen (OK-Button auf Dialog): ich programmiere an dem Ding erst 10 Stunden :) - das, was ich wissen wollte, ist nur, ob es Sinn hat, mit dieser Syntax weiterzuarbeiten. Die Befehle, die es aktuell gibt, sind nur mal zum Testen.

AXMD

//EDIT:
Zitat:
Ansonsten ist das schonal gut. Nur den Befehl "load" (Ohne Leerzeichen am Ende) findet ehr nicht.
Was soll da nicht gehen? Habs gerade auf dem PC von meinem Cousin mit allen Befehlen kompiliert - funktioniert einwandfrei!


mimi - Di 03.06.03 14:37

ich bin immer auf der suche nach eine guten Script sprache für meine spiele und programme und bis jetzt habe ich noch keine gefunden wie meinen erwartungen entsprechen.

es macht auf jedenfall sind an der Scripsprache weiterzuarbeiten.
es finden sich sicher auch leute die dir gerne helfen würden(z.b. wie ich:) )


Tweafis - Di 03.06.03 14:47

Könnte dein Compiler denn schon ExeDateien erzeugen? Onz (glaube ich) fragte nämlich, wie das mit den Exe geht.


mimi - Di 03.06.03 15:39

also wenn du mich meinst:
bis jetzt habe ich noch keine Scirp sprache erstellt :)
aber ich würde gerne :P


Tweafis - Di 03.06.03 15:58

Ich miene AXMD, könnte hab ich nur benutzt weil er es ja net macht :wink:


AXMD - Di 03.06.03 18:51

Hi,

das Tool erstellt keine EXE-Files. Es erstellt kodierten Programmcode, der von einem Interpreter in meinem Programm (Terminplaner) verarbeitet wird.
Aber das kann sich ja ändern - oder ich könnte zwei Versionen macht (eine, die EXE Files erstellt und eine, die ein Script erstellt).

Für die eine Version fehlt dann nur noch eine Anleitung, wie man EXE File erstellt...

AXMD


Tweafis - Di 03.06.03 19:27

AXMD hat folgendes geschrieben:
Für die eine Version fehlt dann nur noch eine Anleitung, wie man EXE File erstellt...


Darum geht es eigentlich, wie mat Exefiles erstellt


AXMD - Di 03.06.03 20:05

Nur mal so eine Frage: sind Scripts nicht dafür gedacht, dass sie durch einen Interpreter laufen?

AXMD


mimi - Di 03.06.03 20:29

Ja:)
deshalb unterscheidet man ja auch Scriptsprachen und Compliersprachen :)


AXMD - Di 03.06.03 20:54

Ich mach den Compiler nur, um den Interpreter-Code zu verkleinern. Denn wenn der Interpreter keine Fehlerprüfung mehr durchführen muss, spar ich mir einen Haufen Arbeit.

AXMD


Popov - Di 03.06.03 21:12

So wie ich das jetzt verstanden habe, ist es kein Batch-Compiler, sondern ein Bach-Interpreter. Du solltest das vielleicht klären und vielleicht auch die Bezeichnung im ersten Beitrag anpassen, da sonst alle Leute die EXE suchen werden (hab ich auch gemacht). Es ist nun mal so, das das Ergebnis eines Compilers nicht unbedingt eine EXE sein muß, aber bei einem Programm wäre es nicht falsch.


mimi - Di 03.06.03 23:11

sag mal wenn du fertig bist, könnte ich den compliere dann in meinen spiele / programme verwenden und selbst anpasen bzw. könntes du ihn so machen das er einen kleinen "wortschatzt" hat und man ihn selbst erweiter kann ? sowas wie delphi bzw c oder c++ dachte ich.


AXMD - Mi 04.06.03 16:53

Gar kein Problem. Bin leider im Moment total im Schulstress, aber wenn ich wieder Zeit habe, werd ich mal ein ordentliches Grundgerüst erstellen (bzw. das bestehende erweitern, sodass es flexibler wird (Parameter, ...)).
Dann kann den Code an jeden, der ihn haben will, schicken [veröffentlichen möchte ich ihn aber nicht].

AXMD

//EDIT: Sorry, hab ich vergessen zu korrigieren:

Zitat:
So wie ich das jetzt verstanden habe, ist es kein Batch-Compiler, sondern ein Bach-Interpreter

Nein, das Programm selbst ist kein Interpreter - es prüft nur den eingegebenen Code auf Fehler, um im richtigen Interpreter Fehlerprüfungen zu sparen.


mimi - Mi 04.06.03 17:09

ok, wenn du das programm fertig hast sende mir bitte den qullcode :)


Tweafis - Mi 04.06.03 23:15

Allgemein verstehe ich unter einem Compiler ein Programm, dass aus einer wie auch immer aufgebauten Datei eine exe-Datei mit den Angaben aus der Datei erzeugt.

Fis


mimi - Do 05.06.03 14:18

das ist richtig, aber es gibt unerschiedliche complier arten die einen erzeugen eine laufägige exe datei für ander braucht man ein bestümtes programm um damit arbeit zu können:)


AXMD - Do 05.06.03 15:07

mimi hat Recht. Compiler heißt nicht gleich EXE-File-Ersteller (um ein neues Wort in die deutsche Sprache einzuführen) ;)

AXMD


mimi - Do 05.06.03 15:14

wie heißen nochmal diese anderen complier "richtig" ? irgenwas mit inter......


AXMD - Do 05.06.03 15:25

Interpreter.

AXMD


AXMD - Do 12.06.03 12:54

Hi,

hab gestern noch etwas herumgetüftelt und eine neue Version hochgeladen (1.0.0.1). Einige Fehler beim Einfügen von Befehlen via Popup wurden korrigiert. Eine neue Zuweisung ist nun gültig: der Wert einer Variable kann auf eine andere übertragen werden.


Quelltext
1:
_set Variable1=Variable2                    


AXMD


AXMD - Mo 16.06.03 14:51

Hi,

neue Version ist online. Features:


    Syntaxhighlighting
    Bug bei Labels/Variablen behoben
    Dateien können eingebunden werden


Zum Dateieneinbinden: nehmen wir an, wir haben folgenden Quelltext:


Quelltext
1:
2:
3:
4:
5:
#mkbatch new

defvar Test

#endbat


Speichern wir diese Datei mal unter dem Namen "testfile".

Folgender Quelltext kann nun die deklarierte Variable "verwenden":


Quelltext
1:
2:
3:
4:
5:
6:
7:
#mkbatch new

#inc testfile

dlg Test

#endbat


AXMD


mimi - Mo 16.06.03 15:17

wie viele befehle gibt es jetzt ?
gibt es schon schlüsselwörter ?


AXMD - Mo 16.06.03 16:13

Hi,

alle Befehle findest du im Kontextmenü des RichEdits (rechte Maustaste drücken). Schlüsselwörter im Quelltext werden fett ge-"syntaxhighlighted". Die da wären:



Desweiteren sind alle Befehle, die mit # beginnen (also #mkbatch new, #inc und #endbat) Schlüssel"befehle" - sie werden ebenfalls fett dargestellt.

AXMD


AXMD - So 22.06.03 15:51

Hi,

hab einen ekelhaften Bug des #inc-Befehls beseitigt. Die neue Version wird zusammen mit einem weiteren Compiler (der z.Z. noch unwichtig ist) in wenigen Minuten online sein:

http://www.8ung.at/dustsigns/TP_BATs.zip

AXMD

Wichtig: die alte URL wird mit diesem Upload ungültig!


Tweafis - So 22.06.03 15:52

Geht nicht. (download)


AXMD - So 22.06.03 16:05

Hmmm...komisch. Bei mir geht der Link :?:

AXMD


fcg - So 22.06.03 16:17

bei mir geht er auch nicht...

fcg


AXMD - So 22.06.03 16:24

:shock: das gibts doch nicht. Wieso geht der bei mir und bei euch nicht :?: :?: :?: Das versteh ich nicht...

ich lad mal den Batcheditor alleine rauf - auf die alte URL. Vielleicht geht das ja :?:

AXMD


Tweafis - So 22.06.03 16:37

jetzt geht das neue.


AXMD - Sa 05.07.03 17:16

Hi,

ich hab den Batcheditor um einen weiteren Schlüsselbefehl erweitert: loadinfo.
Syntax:loadinfo <Speicheradresse (vierstellig, Hex)> <Variable>
Damit wird eine Information von einer Speicheradresse geladen. D.h. im Terminplaner gibts dann ein Array mit jeder Menge Infos - eine extra Unit wird dann die wichtigsten Infos als globale Variablen im Script bereitstellen. Ich werd diese Demo-Unit mal hier raufladen: http://www.8ung.at/dustsigns/testunit.txt
8ung.at unterstützt leider keine 6-stelligen Dateiendungen - ihr müsst also diese Unit vor dem Öffnen mit dem Skineditor so umbenennen, dass die Dateiendung "._tpbat" ist.

AXMD