Forum: PC-Programmierung Prä- oder Makroprozessor gesucht


von hans (Gast)


Lesenswert?

Ich brauche einen Textprozessor, der hauptsächlich Textteile zwischen 
Markern ein bzw. ausblendet (#ifdef ... #endif) und zusätzliche Dateien 
laden (Imports expandieren) kann. Wichtig ist, dass Marker und Symbole 
frei definierbar sind, damit Kollisionen mit dem eigentlichen Inhalt 
ausgeschlossen werden.

von Dennis (Gast)


Lesenswert?

Aber den ganz normalen C-Präprozessor kennst du bereits, oder?

http://de.wikipedia.org/wiki/C-Pr%C3%A4prozessor

von hans (Gast)


Lesenswert?

Ja - er erfüllt ja aber nicht die von mir angegebenen Anforderungen, 
oder?

von Karl H. (kbuchegg)


Lesenswert?

hans schrieb:
> Ja - er erfüllt ja aber nicht die von mir angegebenen Anforderungen,
> oder?

Ich würde sagen: Ja, das tut er.

Er kann mehr als du haben willst, aber das spielt ja keine Rolle.

von (prx) A. K. (prx)


Lesenswert?

Der M4 Präprozessor: 
http://de.wikipedia.org/wiki/M4_(Programmiersprache)

Evtl reicht schon das Utility "sed": 
http://de.wikipedia.org/wiki/Sed_(Unix)
1
  z.B. sed -e "/^begin/,/^end/d" infile >outfile

von Dennis (Gast)


Lesenswert?

hans schrieb:
> Ja - er erfüllt ja aber nicht die von mir angegebenen Anforderungen,
> oder?

Wie Karl-Heiz es schon schrieb, reicht der Standard-C-Präprozessor für 
deine Anwendung locker aus. Ausnahmen existieren nur bei den 
Informatikern, die würden für dein Problem natürlich gleich eine neue 
Programmiersprache erfinden :-)

von Stefan E. (sternst)


Lesenswert?

Ich denke nicht, dass der C-Präprozessor seine Anforderungen erfüllt. 
Denn wenn man diese genau ließt, will er auch das "#ifdef" und "#endif" 
frei definierbar haben, also durch andere Zeichenfolgen ersetzbar.

von Karl H. (kbuchegg)


Lesenswert?

Stefan Ernst schrieb:
> Ich denke nicht, dass der C-Präprozessor seine Anforderungen erfüllt.
> Denn wenn man diese genau ließt, will er auch das "#ifdef" und "#endif"
> frei definierbar haben, also durch andere Zeichenfolgen ersetzbar.

Jetzt wo du's sagst: Ja das könnte man so interpretieren.
Ich hab das anders aufgefasst, nämlich dass er in einem

#ifdef IRGENDWAS

das IRGENDWAS frei vergeben kann.

A.K. hat ja sed schon erwähnt. Mit awk sollte das auch gehen.
(Wobei ich weder das eine noch das andere extensiv kenne, aber mein 
früherer Boss hat damit die tollsten Textumformatierungen gemacht. 
Damals ... vor dem Krieg, als wir nix hatten :-)

persönlich würde ich mir dafür ein C-Programm machen. Damit hat sich 
dann auch Dennis Prophezeihung erfüllt :-)

von Rolf M. (rmagnus)


Lesenswert?

Karl Heinz Buchegger schrieb:
> persönlich würde ich mir dafür ein C-Programm machen.

Also Stringhandling in C würde ich mir nicht mehr antun, wenn's nicht 
unbedingt sein muß. Dazu gibt's einfach zuviele Skriptsprachen, die 
perfekt dafür geeignet sind.

von hans (Gast)


Lesenswert?

Danke für die Vorschläge, ich werde mich weiter informieren..

von Karl H. (kbuchegg)


Lesenswert?

Rolf Magnus schrieb:
> Karl Heinz Buchegger schrieb:
>> persönlich würde ich mir dafür ein C-Programm machen.
>
> Also Stringhandling in C würde ich mir nicht mehr antun, wenn's nicht
> unbedingt sein muß. Dazu gibt's einfach zuviele Skriptsprachen, die
> perfekt dafür geeignet sind.


:-)
Du weißt wie sich das mit dem Hammer und dem Nagel verhält

(Muss ich zu meiner Schande gestehen)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

M4 "kann" sowas wenn man bereit ist sich etwas die Hirnwindungen zu 
verdrehen ;)
Da der TE aber nicht schreibt was genau er machen will ist es natürlich 
scher Empfehlungen zu geben...

Ansonsten nehme ich für Codegenerierung ganz gerne Velocity... warum 
aber Marker für Start/Ende definierbar sein sollen ist mir schleierhaft 
dafür gibt es in der Regel Escapemechanismen.

von hans (Gast)


Lesenswert?

Hier gibt's noch ein paar Links:
http://en.wikipedia.org/wiki/Preprocessor

von hans (Gast)


Lesenswert?


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.