Forum: Compiler & IDEs ; -> @ Kommentar Syntax Konversion von .asm (AVR) nach .s (arm-none-eabi-as)


von Christoph K. (chriskuku)


Lesenswert?

Das Projekt, das ich übernommen habe, läuft unter Windows und der Autor 
hatte ein tclsh-Skript geschrieben, das alle ";" in "@" umwandelt.

Dem Skript unterwirft er alle .asm Files auf einen Schlag und ersetzt
; durch @ und schreibt einen .s-File heraus.

Was dabei mit einem Literal ';' passiert, darüber hat er sich wohl keine 
Gedanken gemacht. Hab's mal getestet und aus ';' wird '@'  :-(

Kurz und gut, gibt es eine "Standard"-Methode, diese Syntax-Anpassung 
vorzunehmen, sozusagen, den "Standard"-Preprocessor? Ein sed script 
könnte es sicher auch. (Skriptsprachen, die mit "p" anfangen, bitte 
nicht :).

Auch von Makefile hatte er noch nichts gehört. Die "Make"-Umgebung 
basiert auf .bat-Skripten; ich will das für mich auf macOS (UNIX, Linux) 
umstellen.

Grüße am Morgen,

Christoph

Beitrag #6441366 wurde vom Autor gelöscht.
von Christoph K. (chriskuku)


Lesenswert?

Ich sehe, daß hier eine Antwort gepostet wurde, kann die aber nicht 
lesen.
Fehler in der Forum-Software?

: Bearbeitet durch User
von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Nein, ich habe meine Antwort zurückgezogen, weil sie nach kurzem 
Nachdenken viel zu kurz gegriffen hat.

von Christoph K. (chriskuku)


Lesenswert?

Jörg W. schrieb:
> Nein, ich habe meine Antwort zurückgezogen, weil sie nach kurzem
> Nachdenken viel zu kurz gegriffen hat.

:) Ach so. Dann doch Forumsoftware-Fehler. Zurückgezogene Beiträge 
sollten eigentlich auch nicht zählen.


Und weiter zur Sache:  habe folgendes sed Skript gemacht:
1
file s:
2
3
s/^\([^(;\'\")]*\)\(;\)\(.*$\)/\1@\3/
4
5
6
testcase:
7
$ cat testcase
8
;
9
  ;
10
;**********;****
11
  ';'
12
  ";"
13
';'
14
";"
15
ABC r1,';'
16
ABC r1,";"
17
; ";" ';'
18
;;;
19
20
21
$ sed -f s testcase
22
@
23
  @
24
@**********;****
25
  ';'
26
  ";"
27
';'
28
";"
29
ABC r1,';'
30
ABC r1,";"
31
@ ";" ';'
32
@;;

: Bearbeitet durch User
von Christoph K. (chriskuku)


Lesenswert?

Stelle gerade fest, daß mein Skript noch nicht perfekt ist.
Es läßt einige Fälle wie diesen
1
     .include "stm32f407.s"          ; target register defines
2
     .set    PLLP, (DIVP - 2) / 2    ; some other comment
durchgehen.
Korrektur folgt hier:
1
#!/bin/sh
2
sed -e "s/^\([^(;\'\")]*\)\(;\)\(.*$\)/\1@\3/" -e "s/^\([^;]*\)\(;\)\(.*\)/\1@\3/"  $1

: Bearbeitet durch User
von Christoph K. (chriskuku)


Lesenswert?

Noch eine Anmerkung: Mein Script arbeitet unter BSD (macOS)  sed (nicht 
GNU sed)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.