Beiträge von Larry im Thema „BASIC ohne Zeilennummern schreiben“

    Noch ein kleiner Nachtrag: einen Bug hatte ich selbst erledigen können:

    Zeile 333:

    Code
          #elsif (match = /^(?<separator>:+)/.match(@text)) #original
    
          elsif (match = /^(?<separator>:)/.match(@text))   #bugfix problem with ::
            self << Code.new(":")
            @text = match.post_match.strip

    Codezeilen mit 2 ":" hintereinander verursachten auch Probleme. Braucht man das ? Ja, wenn man z.B. den Code kompilieren will und BASIC Extensions benutzt (z.B. JiffyDOS Befehle, C*BASE etc.).

    Ich habe mich heute mal wieder ans BASIC coden gemacht. Wie gehabt, den Code als BPP in einem Codeditor geschrieben mit den beiden Workarounds für then und 2 double Quotes ("").

    Das THEN: ersetze ich in der Zieldatei (nach BPP) per sed so:

    Code
    sed -i s/then:/then/g file.bas

    Das klappt auch soweit.

    Mit den "" habe ich so meine Schwierigkeiten. Damit BPP funktioniert, schreibe ich Zeilen wie

    a$=""

    als

    a$=du$

    wobei du$ immer leer bleiben muss, damit das im Programm hinterher auch funktioniert.

    Daher würde ich gerne das du$ wieder per sed in ein "" ersetzen, damit nachher der ganze Übersetzungsprozess (bpp, sed, petcat, compile, c1541) in einem Skript laufen kann.

    Ich habe schon x Versuche durch, aber du$ wird nicht in ein "" ersetzt.

    Hier mal zwei meiner erfolglosen sed Versuche:

    Code
    sed "s/du$/\'""'/g" file.bas
    sed 's/du$/""/g' file.bas

    Wie müsste das denn richtig lauten?

    Ich muss das Thema noch einmal hoch holen. BPP ist vom H.Bekel leider bisher noch nicht korrigiert worden. Die Workarounds um die Fehler im Script zu umgehen, sind nicht wirklich schön.
    Es gibt Befehle, die nach einem THEN sauber verarbeitet werden, andere nicht. Und ich kann anhand des Ruby Codes nicht erkennen, woran das liegt (da fehlt mir einfach das Verständnis für Ruby und wie dort RegEx verwendet werden).

    Hier eine Liste der Befehle die gehen (ohne Semikolon) und welche wo nach THEN nach einem Label gesucht wird (mit Semikolon), jedenfalls die, die ich bisher ausprobiert habe:

    GET# fehlt als Keyword im Code, das hatte ich schon erweitert. Sinnigerweise wird GET# verarbeitet, GET dagegen nicht.
    ST, TI und TI$ fehlen ebenfalls als Keyword.

    C64 Studio als Alternative lässt sich zum verrecken nicht unter Linux starten. Aber es gefällt mir auch ehrlich gesagt nicht, wobei das nur mein persönlicher Geschmack ist...
    Mir ist halt Notepad++ lieber und wäre mit BPP perfekt, um damit größere BASIC Projekte anzugehen, ohne bei Erweiterungen / Änderungen am Code mit Zeilennummern hantieren zu müssen.

    Zitat:"It’ll be about one or two months from now."
    Datum: Jul 24, 2018

    Ich habe den Henning vor ca. einem halben Jahr dazu mal angeschrieben -> keine Rückmeldung.
    Klar, so'n Umzug, renovieren, einrichten etc. pp. ggf. Haus bauen kostet Zeit, kenne ich selbst.

    Deshalb ja meine Suche nach alternativer Hilfe.

    Tja leider tut sich hier nicht viel. Eigentlich hat das Tool nur 2 kleine Bugs. Da ich aber in Ruby so fit bin wie ein ausgelatschter Turnschuh, frage ich mal in die Runde, wer hier ggf. helfen mag ?!

    Es werden Leerstrings wie i$="" nicht korrekt erkannt / übersetzt. Vermute da stimmt was mit dem escapen nicht ganz
    Und das "THEN" für zu Fehlern in der Übersetzung ins BASIC File. Völlig ohne THEN geht es, ist aber unschön. Alles nach THEN wird als Label / Sprungmarke erkannt bzw. gesucht auch ein If a=0 then b=1....

    Mehr eigentlich nicht.

    Es sieht für mich so aus, als ob das Problem an der Verarbeitung von IF THEN Abfragen liegt.
    Hier mal ein Beispiel das auf Fehler läuft:


    Code
    prnt:       print"hallo":a=0
                if a=0 then b=1

    Führt zu:

    0 print"hallo":a=0

    error: line 1: could not resolve label 'b'


    Das Beispiel aus Beitrag Bitte melde dich an, um diesen Link zu sehen. führt scheinbar in eine bpp interne Endlosschleife.
    Mist, damit kann ich nun wieder rund 1.200 Zeilen Code von Hand mit Zeilennummern versehen :cry:
    Bitte melde dich an, um diesen Link zu sehen. sind für BPP noch Bugfixe geplant ?

    noch ein Versuch:

    Das Example.bpp lässt sich wunderbar mit bpp < example.bpp verarbeiten. Weiterverabeitung mit petcat über die Pipe geht auch.

    Mein simpler code aber nicht:

    print"hallo"
    loop: geta$:if a$=""then goto loop

    bpp bleibt immer am ersten Label im code hängen, egal was ich mache. Da bpp aber prinzipiell funktioniert mit den vorgegebenen Beispielen, raff ich nicht was ich scheinbar falsch mache.

    Tipps wären echt hilfreich.

    Hallo zusammen,

    ich bin gerade über den BPP gestolpert auf der Suche nach genau so einem Tool, ohne auf Windows zurückgreifen zu müssen.
    Allerdings habe ich folgendes Problem mit bpp:

    Ich habe einen etwas längeren BASIC Code mittels PETCAT in ein Text File umgewandelt um dann am PC damit arbeiten zu können.
    Die BASIC Zeilennummern wurden entfernt und GOTO / GOSUB Adressen durch Labels ersetzt.
    Kommentare sind per Semikolon in eigenen Zeilen eingefügt worden.
    Das bearbeitete File ist als blabla.bpp gespeichert.

    Dann auf der Kommandozeile: bpp < blabla.bpp
    Dann tut sich scheinbar nicht mehr viel. Cursor erscheint und ich kann wie in einem Texteditor schreiben. Mit STRG+C komme ich wieder raus.
    Per bpp < blabla.bpp | petcat -w2 > blabla.prg
    wird ein prg File mit 0 Bytes erzeugt.
    Woran kann es liegen, dass bpp hängt ?