Syntaxe du code dans l'éditeur COBOL de Macro

Vous devez respecter lès règles syntaxiques pour créer des lignes de code dans l'éditeur de COBOL de la 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 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

Avertissement : Le numéro de ligne est obligatoire sur la première ligne du groupe de lignes : ligne titre, ligne d'attributs, et ligne de conditionnement. Un numéro de ligne doit aussi être indiqué sur la première ligne de source qui suit ce groupe.

Règles de saisie des numéros de ligne

Vous pouvez sasir des numéros de ligne alphanumériques en WORKING-STORAGE SECTION et numériques en PROCEDURE DIVISION.. Vous pouvez les paramétrer avec des $.

La saisie des numéros de ligne doit respecter les règles suivantes :
  • Si l'identifiant précédent est FXXYY, le numéro de ligne doit avoir les longueurs suivantes :
    • 3 ou 6 caractères s'il ne contient pas de $,
    • 2, 3, 5 ou 6 caractères s'il contient un $.
  • Si l'identifiant précédent n'est pas FXXYY, le numéro de ligne doit avoir une longueur de 3 caractères.
  • Si *! est trouvé à partir de la colonne 7, le numéro de ligne est obligatoire.
  • Si le numéro de ligne contient un $, les contrôles suivants s'appliquent :
    • Le $ ne doit pas être en position 3 ou 6 .
    • La valeur qui suit le $ doit être comprise entre 0 et 9 ou A et J.

La gestion des numéros de ligne est très stricte pour les Macros migrées de Pacbase. Le numéro de ligne est sur 3 caractères en WORKING-STORAGE SECTION et sur 6 caractères en PROCEDURE DIVISION. Pour des détails, reportez-vous aux informations sur les Numéros de ligne dans les Macros migrées de Pacbase.

Exemples

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