preprocessor

Jan Kybic kybic na circhp.epfl.ch
Pondělí Prosinec 8 21:13:18 CET 1997


>Ja chci preprocessor pouzit na jazyk, ktery ho nema (informix 4gl) a
>zkousim to s cpp, ale ve 4gl je poznamka znak #. Sice jsme to vicemene
>rozjeli, ale divam se jeste po necem jinem.
>
>V m4 jsou podminky, ale nejde to pouzit tak pekne jako v cpp. V m4
>tusim ta podminka a jeji telo musi byt v zavorkach. Coz se mi ale
>vubec nelibi.

Obe se da resit retezem preprocessor->makroprocessor->postprocessor. 

Napriklad pro pro poznamky budu pouzivat % (nebo jiny znak), 
nebo naopak budu psat 

\if defined HO
# poznamka
\else
\endif

Preprocesor (v nejjednodussim pripade 'tr') mi text prevede do formy
stravitelne pro makroprocesor, treba

#if defined HO
// poznamka
#else
#endif

a pak se zase '//' prevede na '#'. Dokonce by slo i '#' povazovat za
prikaz makroprocesoru treba prave tehdy, nasleduje-li za nim klicove
slovo (if,else,fi). 

Totez se da realizovat i s M4 - misto zavorek psat neco jineho, treba
'\if ab = cd \do neco \else jine \fi' prelozime hrave na
'ifelse(ab,cd,"neco","jine")' atp.

Mozne by se jako preprocesor dal uspesne pouzit i NoWEB, ale je to
trochu jako s kanonem na vrabce. Osobne bych bud pouzil bud CPP nebo
M4, pripadne s trochu pozmenenou syntaxi, viz. vyse. Take je mozne si
neco napsat na miru, to je podle mne prace asi tak na dve hodiny,
zalezi, co po tom chcete.

Honza


-- 
-------------------------------------------------------------------------
Jan Kybic <xkybic na sun.felk.cvut.cz>        (Piste mi cesky v ISO-8859-2) 
http://cmp.felk.cvut.cz/~kybic/       tel. 42-2-301 88 26]
For PGP key finger kybic na fu.felk.cvut.cz or see my WWW page.


Další informace o konferenci Linux