BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Projekte (http://www.black-board.net/board.php?boardid=108)
--- Code Maker (http://www.black-board.net/thread.php?threadid=18518)


Geschrieben von phlox81 am 06.09.2004 um 21:18:

  Code Maker

Mein neuestes Werk smile

Seit einem Jahr arbeite ich jetzt an dem Projekt, einen
Code Generator zu bauen, der mir ermöglicht Klassen und
Templates zu planen, und ohne großen Aufwand in ein paar Dialoge
zu zimmern. Im November letzten Jahres hatte ich auch dann
ein kleines Framework dafür gebastelt, welches ich noch
mal im Frühjahr überarbeitete, das Ergebnis davon war Class Maker,
der schon mal das Erstellen einzelner Klassen testete.
Da Code Maker aber ein ganz anderes GUI Framework benutzt (SDI statt Dialoge),
war es immer mal wieder ein wenig Kniffelei bis alles funktionierte.

Nun ist es soweit, das ich es auf die Menschheit loslassen kann Augenzwinkern
Momentan kann man nur C++ Dateien damit generieren, welches
sich aber ändern wird, da ich bis Herbst auch PHP und Java supporten möchte. smile
Evtl. kommen später noch PHP5, DELPHI und C# hinzu.

Code Maker

Zum Schluss noch ein Screenshot:



Geschrieben von [DS]-=Pencil=- am 06.09.2004 um 22:16:

 

Eine Beispielprojekt wäre schön (so als HTML), das man sehen kann wie man was bedient smile

Hope You Help

smile



Geschrieben von phlox81 am 06.09.2004 um 22:19:

 

Zitat:
Original von [DS]-=Pencil=-
Eine Beispielprojekt wäre schön (so als HTML), das man sehen kann wie man was bedient smile

Hope You Help

smile


Werd aufjedenfall noch ne Hilfe schreiben, und evtl. auch n kleines Tut.

Devil



Geschrieben von phlox81 am 09.09.2004 um 20:47:

 

So hab jetzt mal ne Readme Datei geschrieben.

Und mal ne Kurzanleitung:

Per Rechtsklick kannst man neue Klassen oder Templates
einfügen, welche dann auch in dem jeweiligen Zweig
erscheinen. Wenn man auf den Klassennamen doppeltklickt,
kann man einstellungen zur Klasse vornehmen, ob sie
abgeleitet ist, und von welcher Parentklasse sie abgeleitet
werden soll. Auch kann man hier Headerdateien spezifizieren,
die eingebunden werden sollen. Gleichzeitig besteht die Möglichkeit,
die Klasse zu kommentieren.
In der Funktionsansicht (doppelklick Funktionen), ist es möglich neue Funktionen
hinzu zufügen, und wenn man diese in der ListBox auswählt, kann man
Quellcode für den Body eingeben, oder an den Übergabe Parametern
rumspielen.
Bei der Ansicht zu den Variablen ist es dann fast genauso, anklicken, dadurch
kann man dann den Namen direkt eingeben, oder Haken setzen.
Kurze Überblick über die Möglichkeiten:
static - Variable ist static.
const - Variable ist const.
friend - Variable ist ein friend der klasse.
get - es wird eine Get-Methode für die Variable generiert
set - es wird eine Set-Methode für die Variable generiert.
Bei den Funktionen gibts dann noch:
virtual - Funktion ist virtual.
()const - die Funktion kann von einer const MyKlass variable aufgerufen werden.
inline - Funktion wird als inline Deklariert.

Devil



Geschrieben von phlox81 am 20.10.2004 um 20:55:

 

So, gibt ne neue Version, hab leider nur wenig Zeit zum Coden...

Ich hab jetzt primär mich um die PHP Unterstützung gekümmert,
und das Tool kann jetzt auch Klassen nach PHP parsen, wobei
das nicht ganz einfach war, da PHP ja einwenig laxer mit den
Typen umgeht, so das einiges jetzt natürlich in PHP keinen
sinn macht, aber extra noch mal ne komplette GUI dafür zu schreiben,
das wäre Oversize...
Geplant ist für die nächste Zeit aufjedenfall noch die Unterstützung
von Java, evtl. auch der 1.5 Version, da diese auch Templates kann smile

Code Maker

mfg.

Devil



Geschrieben von HeaD am 21.10.2004 um 00:40:

 

Klingt interessant für mich, ich werds mir mal saugen und zu Gemüte führen smile



Geschrieben von Misel am 21.10.2004 um 19:54:

 

sieht interessant aus devil, gerade, wo ich dieses Semester C++ habe. ABER: Das sieht so Windowsig aus. Hast Du das auch für Linux? smile



Geschrieben von phlox81 am 21.10.2004 um 20:02:

 

Zitat:
Original von Misel
sieht interessant aus devil, gerade, wo ich dieses Semester C++ habe. ABER: Das sieht so Windowsig aus. Hast Du das auch für Linux? smile


Äh, versuchs mal mit Wine Augenzwinkern
Leider hab ich es nicht für linux, fehlt mir die Zeit zu :/

Devil



Geschrieben von HeaD am 21.10.2004 um 20:28:

 

Ich hab mal reingeschaut und funktionieren tut alles, nur hab ich im Moment noch keine verwendung dafür, denn, grade in PHP, schreibt ich mir von Hand doch sehr viel schneller eine Funktion Augenzwinkern Mal abwarten wie sich das Tool noch entwickelt smile



Geschrieben von phlox81 am 25.12.2004 um 20:14:

 

So, weil Weihnachten ist gibts ein Update großes Grinsen Augenzwinkern

War viel arbeit, hab den ganzen Parser umschreiben müssen, und
das war, naja, net so schön, viel arbeit. Jetzt
unterstützt das Programm auch Java (C++ und PHP unterstützt es weiterhin).

Da das Programm aber ursprünglich für C++ gedacht war, ist da auch
die Unterstützung am besten...

mfg.

Devil



Geschrieben von phlox81 am 21.07.2005 um 19:57:

 

So gibt ein neues Update.

Hab einige Bugs gefixt, und u.a.
es ermöglicht, das man die Kommentare
für Funktionen direkt editieren kann,
des weiteren kann man nun Operatoren
oder andere Vorgefertigte Funktionen
in eine Klasse einfügen.

Dies wird die Letzte Version dieses Tools
sein, ich werde danach an einem Nachfolger
arbeiten, der dann als Fernziel hat, UML
zu unterstützen...

Devil



Geschrieben von Misel am 02.08.2005 um 13:18:

 

kleiner Vorschlag zur Güte (dann kommt auch nicht noch so ein Kommentar von mir wie oben Augenzwinkern ) :

QT 4. Gibt es jetzt auch für Windows in der GPL. Wenn Dein Projekt jedoch nicht unter der GPL stehen soll, kannst Du es nicht verwenden. Aber dafür vielleicht GTK oder wxWidgets?



Geschrieben von phlox81 am 02.08.2005 um 17:26:

 

Zitat:
Original von Misel
kleiner Vorschlag zur Güte (dann kommt auch nicht noch so ein Kommentar von mir wie oben Augenzwinkern ) :

QT 4. Gibt es jetzt auch für Windows in der GPL. Wenn Dein Projekt jedoch nicht unter der GPL stehen soll, kannst Du es nicht verwenden. Aber dafür vielleicht GTK oder wxWidgets?


Hm, ja.
Also, es ist so, ich plane gerade den Nachfolger, der wird wohl wxWidgets
als GUI nehmen. Wird allerdings noch was dauern, da ich mal wieder
etwas mehr will. Und erstmal das Backend völlig neu erstelle.
Features die dann neu sein werden:
Man wird Variablen Start Values zu weisen können.
Es wird ein Konstruktor generiert, der die Variablen enthält (optional).
Setter und Getter Methoden werden nicht mehr generiert,
sondern im Programm erzeugt, und man kann sie so zur Laufzeit
schon bearbeiten. Des weiteren wird wohl ein UML Klassendiagramm
noch dazu kommen, aber das ist alles noch weit weg...
Schätze in einem Jahr gibts den ersten Prototypen.

phlox



Geschrieben von phlox81 am 26.08.2005 um 19:05:

 

So, mit den Arbeiten am Nachfolger wurde begonnen,
und damit ergeben sich auch wieder Verbesserungen
des Alten Tools, kurz. Bugfix 1.0 ist da Augenzwinkern

Ich schreib einfach mal was ich so jetzt noch hinzugefügt bzw.
Korrigiert habe:
Der Templatebereich unterstützt nun friend Funktionen, d.h.
diese werden nun korrekt ausgegeben, mit forward Dekleration.

Einige nicht nennenswerte Fehler wurden behoben, und ein Paar
Hacks eingefügt:
Die Klassen-kommentare stehen jetzt _vor_ der Klasse im Header.
Ermöglicht diesen netten Hack:[cpp]*/ class myclass; /*[/cpp]
Schon kann man Forward Deklerationen einfügen ...

C++ bietet ja auch die Möglichkeit in der *.cpp bei Konstruktoren
Initialisierungslisten anzulegen, welches mein Tool erst in der
Nächsten Generation (die gerade entsteht) generieren können, aber
es gibt da einen kleinen Hack:
Beim letzten Konstruktorargument im namen )Zunge raus ARENTNAME(copy z.b.
im Copykonstruktor angeben, schon passt dies.
Im Header wird danach gefiltert, so das es nur in die CPP wandert.
Wie gesagt ist ein dirty Hack Augenzwinkern

Auch kann man nun im namen mit myname=myvalue stanard werte für
Variablen in Funktionsköpfen geben, diese wandern dann nur in den header.

Der Projektname hat nun auch einen Sinn bekommen:
Wenn er nicht "project1" (Standardwert) ist, wird er als Namespace name
erkannt, und jede Klasse wandert dann in den entsprechenden Namespace.

Hier noch mal der Link:
Codemaker

phlox


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH