Laden...

Quellcode-Umwandler - Tipps oder Strategien?

Erstellt von Krumnix vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.330 Views
K
Krumnix Themenstarter:in
129 Beiträge seit 2018
vor 6 Jahren
Quellcode-Umwandler - Tipps oder Strategien?

Hallo.

Ich arbeite viel mit Microcontroller.

Nun habe ich hier einen neuen Typen, welcher mir viel besser gefällt.
Leider ist der Quellcodesyntax etwas anders zu dem alten und daher hatte ich die Idee, dass ich mir ein Programm schreibe, welches den Code von alt in neu wandelt.
So ein Art "suchen+ersetzen".

Beispiel:
Alter Compiler IF ... THEN ... ENDIF
Neuer Compiler: IFT ... ENDI oder IFF ... ENDI

Alter: define var
Neuer: $define $var

Alter: x = y
Neuer: $x == $y

Jemand Tipps oder Dokus oder Beispiele?

Danke!

709 Beiträge seit 2008
vor 6 Jahren

Du könntest einen Baum erstellen, der den Code des kompletten Programms abbildet und danach aus dem erzeugten Baum den Programmcode in der anderen Sprache erzeugen.

6.911 Beiträge seit 2009
vor 6 Jahren

Hallo Krumnix,

wenn du es "perfekt" machen willst, dann geht das via Transpiler -- so wie es pinki auch vorgeschlagen hat.

Falls der Aufbau des Programms gleich ist und nur die Syntax andere Schlüsselwörter verwendet, so kann ein Suchen & Ersetzen (ev. mittels Regex.Replace und MatchEvaluator) auch reichen. Das ist weniger aufwändig als obiger Vorschlag.

Prüfe aber auf jeden Fall ob die Funktionsumfänge zwischen beiden µC gleich sind, sonst wird kaum ein anderer Weg als manuelles Übersetzen bleiben.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

K
Krumnix Themenstarter:in
129 Beiträge seit 2018
vor 6 Jahren

Danke für die ersten Tipps.

Eine händische Nacharbeit muss sicher gemacht werden.

Aber wenn ich mir bei >1000 Codezeichen 80% ersparen kann und weiß, welche Stellen nicht so einfach wandelbar sind, habe ich schon viel gewonnen.

Bei 60 unterschiedlichen Programmen eine kleine Erleichterung 😃