BlueBasic Compiler

Gehe zu Seite 1, 2, 3, 4  Weiter

Worklogs BlueBasic Compiler Kommentare

Montag, 30. Juli 2012 um 20:01 Uhr von Thunder

Danke! Ich schreibe BlueBasic auch hauptsächlich, weil ich am Compilerbau Interesse habe. Der spätere Zweck wäre natürlich super, aber ich habe das Gefühl, dass ich noch eine ganze Weile vor einem unfertigen Programm sitzen werde ^^

Montag, 30. Juli 2012 um 12:26 Uhr von DAK

ich find das projekt sehr intressant. compilerbau hat mich immer schon interessiert. viel erfolg!

Sonntag, 29. Juli 2012 um 11:56 Uhr von Thunder

Bezüglich Int habe ich ja nichts anderes behauptet, aber das mit Long ist natürlich ärgerlich. Irgendwie bin ich davon ausgegangen, es sei unsigned. Wird gleich sowohl im Quelltext als auch im Worklog ausgebessert.
Danke dir!

Sonntag, 29. Juli 2012 um 10:59 Uhr von DaysShadow

Nur zur Info: Int und Long sind in BMax signed, nur Byte und Short sind unsigned.
Könnte ansonsten zu Problemen führen.

Montag, 16. April 2012 um 14:06 Uhr von DAK

Muss sagen, das Projekt klingt sehr intressant. Zum Mitarbeiten fehlt mir im Moment wohl leider die Zeit, aber verwenden würde ich das Fertige schon gerne.

Freitag, 11. Juni 2010 um 13:27 Uhr von Thunder

@Silver_knee: Das ginge aber nicht, wenn die Kommentarzeichen (egal ob ; oder ') vor dem kompilieren entfernt würden. Dann würde es die gar nicht im Code geben und daher kam diese Umstellung auf Entfernung der Kommentarzeichen zur Kompilierzeit.
Der Präprozessor kann nämlich nicht wirklich unterscheiden, ob da jetzt das InlineC 1. an einer richtigen Stelle steht und nicht zu einem Syntaxerror führt, 2. ob es in einem String steht ...
Es ist viel komplizierter das alles zu berücksichtigen, als einfach die Entfernung dem Compiler selbst zu überlassen, wobei Compiler und Präprozessor eigentlich ein Programm sind (bei BlueBasic).

mfg Thunder

Donnerstag, 10. Juni 2010 um 22:45 Uhr von Silver_Knee

na ganz einfach:

Code: [AUSKLAPPEN]

InlineC
printf("x=y+1 und y=x-1\n");

EndInlineC


ab dem Wort InlineC wird alles 1:1 in den C-Code übertragen bis zu der Zeichenfolge "EndInlineC"

Montag, 7. Juni 2010 um 16:43 Uhr von Thunder

brrr... das mit den Strings habe ich bedacht. Damit gibt es keine Probleme, aber für den Tipp ganz unten bin ich dir sehr dankbar. Das wäre mir wahrscheinlich erst einige Zeit später aufgefallen.
Mein Compiler ist allerdings anders aufgebaut und lässt es zwar eigentlich zu, Kommentarzeichen zur Laufzeit zu entfernen, aber ich habe mich dazu entschieden das in den Präprozessor zu packen.
Bei mir werden die Tokens zur Laufzeit eingelesen - kein Syntaxbaum oder Ähnliches.
Mal sehen, wie ich diese Probleme mit den Kommentarzeichen behebe.


mfg Thunder

Montag, 7. Juni 2010 um 16:33 Uhr von Noobody

Zitat:

Dieser würde nämlich schon vom Präprozessor entfernt und der
Compiler bekäme ihn gar nicht zu Gesicht.

Ein Kontextunabhängiger Präprozessor ist aber gefährlich Razz Was würde z.B. passieren, wenn ich ' in einem String verwende?

Wegen solchen Problemen sollte der Präprozessor eigentlich nicht auf dem Quelltext als String arbeiten, sondern während der Konvertierung zu Tokens seine Arbeit tun. Dabei liest er den Quelltext Zeichen für Zeichen ein und setzt diese zu Token zusammen. Trifft er während diesem Schritt auf ein Anführungszeichen, liest er alles überprüfungsfrei ein bis zum nächsten Anführungszeichen. Trifft er auf ein InlineC, liest er alles überprüfungsfrei ein bis zum nächsten EndInlineC. Treffen die vorherigen Bedingungen nicht ein und trifft er dann noch auf ein ;, dann überspringt er alles nachfolgende bis zum nächsten Zeilenvorschub. So kannst du das Kommentarzeichen problemlos beim ; belassen.

Und nur so als Tipp: ' ist ebenfalls ein Sprachbestandteil von C. Bei folgender Zeile würde dir der Compiler also um die Ohren fliegen [code]printf( "Hello %corld!", 'W' );[code]

Samstag, 5. Juni 2010 um 21:38 Uhr von Thunder

ich muss anscheinend einsehen, dass BB kompiliert wird.
Allerdings; wenn man den Compiler so aufbaut, wie ich das getan habe, bin ich mir ziemlich sicher, dass es einfach gewesen wäre, alles zu deklarieren. Überprüfen, ob es die Variable schon gibt, muss ich so und so, damit der Benutzer nicht vor irgendeiner Fehlermeldung des gcc sitzt, die er möglicherweise gar nicht versteht.
Ich hab es mir auch nie einfach vorgestellt BASIC zu kompilieren; ich habe schon davor oft gehört, dass das ein weitverbreiteter Irrtum ist.
Bevor ichs vergesse: komplizierten Code parsen IST mit komplizierten Komplikationen verbunden.
Aber wie gesagt, gebe ich mein Bestes.

Trotzdem danke, wegen der Klarstellung in Sachen BB und Kompilation.

Gehe zu Seite 1, 2, 3, 4  Weiter


Kommentar schreiben

Titel:
Text: