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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
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)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.