2009-10-27 15 views

Répondre

7

du GNU M4 1.4.13 macro processor manuel:

8.1 Deleting whitespace in input

Les dnl BUILTIN est synonyme de « Jeter à la ligne suivante »:

- Builtin: DNL

Tous les caractères , jusqu'à et y compris le prochain newline, sont supprimés sans effectuer de macro-expansion. Un avertissement est émis si la fin du fichier est rencontrée sans nouvelle ligne.

L'expansion de dnl est nulle.

Il est souvent utilisé dans le cadre de define, pour enlever la nouvelle ligne qui suit l'appel à define. Ainsi

define(`foo', `Macro `foo'.')dnl A very simple macro, indeed. 
    foo 
    ⇒Macro foo. 

L'entrée jusqu'au prochain saut de ligne est mis au rebut, par opposition aux commentaires manière sont traités (voir Comments).

[...]

2

IIRC, dnl est do-next-line. Il ignore simplement le reste de la ligne en cours. C'est comment vous écrivez des commentaires dans les fichiers M4.

dnl preprocessor will eat this 
but not this dnl though this 

va produire le document de résultat

but not this 

(non testé, pourrait aussi tuer le processus ralenti ou planter votre disque dur).