Le filtre p1

[P] [N] [T] [C] [F] [1]

Présentation:

p1.exe est un filtre qui est employé par PT en mode multi-passe pour gérer les espacements et certains caractères spéciaux. Ce filtre est utilisé par la compilation PT multi-passe après chaque passe de cpp hormis la dernière.

Utilisation:

Ce filtre est utilisé par le mode de compilation multi-passe (PT version 2,3,4,...). Il est employé après les passes 1 et 2 de cpp. La syntaxe de ce filtre est plus particulièrement employée par le fichier cppdir.mac (PT version 3,4,...).

Description:

p1 reproduit dans la sortie standard (stdout) l'ensemble du texte lu sur l'entrée standard (stdin) hormis lorsque un caractère ' est détecté. Il y a alors 6 traitements possibles :

  1. la chaîne '' est remplacée par '.
  2. la chaîne '*' et tous les caractères d'espacement qui la précèdent et la suivent sont supprimés.
  3. la chaîne '~' et tous les caractères d'espacement qui la précèdent et la suivent sont remplacés par un unique espace.
  4. la chaîne '%' et tous les caractères d'espacement qui la précèdent et la suivent sont remplacés par un unique saut de ligne.
  5. la chaîne '<c>' est remplacée par <c> pour tout caractère <c> autre que *, ~, %.
  6. Toute autre occurence du caractère ' est supprimée et est signalée par un message d'erreur.

Utilisation:

Placée en début de ligne, la chaîne '#' permet de placer des directives pour le processeur cpp qui seront développées à l'étape suivante. D'autre part, l'emploi de la chaîne '' en passe 1 permet de différer en passe 3 le résultat. Par exemple, ''#'' devient '#' puis #.

Exemple d'utilisation extrait de cppdir.mac

#define __includelib(File) '%' \
'#'include <'*' File '*'> '%'

Syntaxe d'emploi:

La commande p1 est sans argument. La conversion d'un fichier FOO.PT en un fichier principal FOO.PP s'effectue en employant la commande:

p1 < FOO.PT > FOO.PP