Syntaxe du code source des Macros

Vous devez respecter les règles syntaxiques pour créer des lignes de code dans l'éditeur COBOL de Macro.

Les identifiants

Vous devez indiquer un identifiant avant chaque instruction COBOL pour permettre son placement en début de programme, en WORKING-STORAGE SECTION, LINKAGE SECTION ou PROCEDURE DIVISION. Vous devez saisir l’identifiant dans la marge COBOL (colonnes 1 - 6). Vous devez indiquer un numéro de ligne sur la ligne qui suit la ligne contenant l'identifiant. Les lignes de la Macro seront insérées à l’emplacement correspondant à l’identifiant.

Important : Toute ligne identifiante ou attribut doit être saisie en majuscules.

La saisie des identifiants est contrôlée. Si une erreur est détectée, l’instance est marquée en erreur dans l'espace de travail. En conséquence, la génération des instances appelant la Macro est impossible. Les contrôles sont détaillés dans Contrôles de la syntaxe du code source des Macros.

Les identifiants varient selon l’emplacement dans le programme généré :
  • Identifiants pour le début de programme :

    Ces identifiants peuvent être paramétrés sous la forme B$n$n.

    Le tableau suivant indique tous les identifiants possibles et le paragraphe généré pour chaque identifiant.
    Tableau 1. Identifiants pour la zone de début de programme
    Identifiants Paragraphes générés
    B__01 Commentaire API COBOL
    B__05 Commentaire PAF
    B__10 PROGRAM-ID
    B__20 AUTHOR
    B__30 DATE-COMPILED
    B__40 ENVIRONMENT DIVISION
    B00 CONFIGURATION SECTION
    B0000 SOURCE-COMPUTER
    B0010 OBJECT-COMPUTER
    B0020 SPECIAL-NAMES
    B01 INPUT-OUTPUT SECTION
    B01 FILE-CONTROL
    B01FF SELECT FF-FICHIER
    B0100 I-O-CONTROL
    B60 Réservé à la ligne DATA DIVISION
    B99 Réservé à la ligne FILE SECTION
    B9*FF Réécriture de la clause FD pour le fichier FF
    Remarque : Vous pouvez utiliser l’attribut ACTION=R pour supprimer une section ou un paragraphe, comme dans l’exemple suivant :
    B01
    000		 INPUT-OUTPUT SECTION.
    100		 FILE-CONTROL.
    B01A2
    900					SELECT 		A2-FILE		ASSIGN TO UT-S-TESTCTL.
    B9999		*ACTION=R
  • Identifiants pour les zones de travail et de lien : WXX (où XX est l'emplacement dans la WORKING-STORAGE SECTION) :

    Ces identifiants peuvent être paramétrés.

    Vous pouvez indiquer ces identifiants pour écraser la ligne PROCEDURE DIVISON dans le programme généré. Pour cela, vous devez indiquer les informations suivantes :
    • Sur la première ligne, indiquez l’identifiant WXX.
    • Sur la deuxième ligne, indiquez un numéro de ligne 000 suivi de la nouvelle déclaration de la PROCEDURE DIVISON. Vous pouvez créer d’autres lignes si nécessaire.
    Vous pouvez par exemple écraser la ligne PROCEDURE DIVISON de la façon suivante :
      W99 
    	 000  	PROCEDURE DIVISION USING
    	 010              SQ01.
  • Identifiants pour la description des traitements (fonctions, sous-fonctions) : FXXYY (où XX est le code fonction et YY le code sous-fonction)

    Ces identifiants peuvent être paramétrés.

  • Identifiants pour la génération d’indices :

    Tous les indices sont générés sous le même niveau indices. Pour qu'ils soient générés sous le niveau 01 de votre choix, vous devez les saisir sous un identifiant WXX. Pour qu'ils soient générés sous le niveau 01 des indices automatiques, vous devez saisir les identifiants suivants.

    Vous pouvez indiquer les indices suivants :
    • IXXNN (où XX et NN sont deux codes sur deux caractères chacun, comme le code Structure de Données et Segment par exemple)

      Cet indice correspond à la dimension de la table qui doit être indiquée dans une zone de travail et de lien.

      Les trois indices suivants sont générés automatiquement :
      • IXXNNM contient le nombre d’enregistrements maximum prévu par l’utilisateur (initialisé par VALUE).
      • IXXNNL contient le nombre d’enregistrements effectivement stockés dans la table. Il est initialisé à zéro et doit être incrémenté au chargement. Ce nombre ne peut excéder le nombre maximum.
      • IXXNNR concerne la recherche dans la table. Il est initialisé à zéro et ne peut dépasser IXXNNL.

      La donnée déclarée dans la zone de travail et de lien doit être de la forme : W-XXNN ou W-XXNN-CORUB (où W est un chiffre ou une lettre représentant la zone de travail et CORUB est le code Rubrique).

      La dimension de la table peut être paramétrée.

      Le niveau indiqué pour ces indices doit être 05.

      Voir les exemples dans figure 1 et figure 3.

    • JXXNN (où XX est le code fonction et NN le code sous-fonction)

      Cet indice est utilisé dans une boucle DO.

Règles de saisie des lignes

  • Hors PROCEDURE DIVISION, vous devez saisir les éléments suivants :
    • Une ligne contenant un identifiant,
    • Une ou plusieurs lignes contenant du source. La première ligne doit comporter un numéro de ligne.
  • En PROCEDURE DIVISION, vous devez saisir les éléments suivants :
    • Une ligne contenant un identifiant,
    • Une ligne titre (facultative),
    • Une ligne contenant les attributs. Cette ligne est obligatoire pour la création d'une fonction ou sous-fonction.

    Les conditions et les traitements doivent commencer en marge B du COBOL.

    Toutes les valeurs possibles pour l’insertion d’une fonction ou sous-fonction sont détaillées dans l’aide associée à chaque assistant de création de fonction ou sous-fonction.

Toutes les règles de saisie des numéros de ligne, identifiants et attributs des Macros sont détaillées dans Contrôles de la syntaxe du code source des Macros.

Les règles de saisie spécifiques aux Macros migrées de Pacbase sont expliquées dans Code source des Macros migrées.

Exemples de code source de Macro

Figure 1. Indices sous le niveau 01 des indices automatiques dans la Macro
Identifiants pour la génération des indices sous le niveau 01 des indices automatiques
Figure 2. Indices sous le niveau 01 dans la partie générée du programme
Indices sous le niveau 01 dans la partie générée du programme.
Figure 3. Indices sous un niveau 01 dans la zone de travail et de lien dans la Macro
Indices sous un niveau 01 dans la zone de travail et de lien dans la Macro
Figure 4. Indices sous un niveau 01 de la zone de travail et de lien dans la partie générée du programme
Indices sous un niveau 01 dans la zone de travail et de lien dans la partie générée du programme
Figure 5. Exemple de saisie de code dans une Macro
Exemple de saisie de code dans une Macro

Vos commentaires