Rexx - Syntaxe de base

Afin de comprendre la syntaxe de base de Rexx, examinons d'abord un simple programme Hello World.

Exemple

/* Main program */ 
say "Hello World"

On peut voir à quel point le programme hello world est simple. Il s'agit d'une simple ligne de script utilisée pour exécuter le programme Hello World.

Les choses suivantes doivent être notées à propos du programme ci-dessus -

  • le say command est utilisé pour envoyer une valeur à la console.

  • le /* */ est utilisé pour les commentaires dans Rexx.

La sortie du programme ci-dessus sera -

Hello World

Forme générale d'une déclaration

Dans Rexx, voyons une forme générale d'un programme. Jetez un œil à l'exemple suivant.

/* Main program */ 
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

La sortie du programme ci-dessus sera -

11

Passons en revue ce que nous avons compris du programme ci-dessus -

  • Ajouter est une fonction définie pour ajouter 2 nombres.

  • Dans le programme principal, les valeurs de 5 et 6 sont utilisées comme paramètres de la fonction d'ajout.

  • Le mot-clé exit est utilisé pour quitter le programme principal. Ceci est utilisé pour différencier le programme principal de la fonction d'ajout.

  • La fonction d'ajout est différenciée par le symbole «:».

  • L'instruction parse est utilisée pour analyser les arguments entrants.

  • Enfin, l'instruction return est utilisée pour renvoyer la somme des valeurs numériques.

Sous-programmes et fonctions

Dans Rexx, le code est normalement divisé en sous-programmes et fonctions. Des sous-programmes et des fonctions sont utilisés pour différencier le code en différentes unités logiques. La principale différence entre les sous-programmes et les fonctions est que les fonctions renvoient une valeur alors que les sous-programmes ne le font pas.

Vous trouverez ci-dessous un exemple de différence clé entre un sous-programme et une fonction pour une implémentation d'addition -

Implémentation de fonction

/* Main program */ 
say add(5,6) 
exit 
add: 
parse arg a,b 
return a + b

Implémentation de sous-programme

/* Main program */ 
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

La sortie des deux programmes sera la valeur 11.

Exécution des commandes

Rexx peut être utilisé comme langage de contrôle pour une variété de systèmes basés sur la commande. La manière dont Rexx exécute les commandes dans ces systèmes est la suivante. Lorsque Rexx rencontre une ligne de programme qui n'est ni une instruction ni une affectation, il traite cette ligne comme une expression de chaîne qui doit être évaluée puis transmise à l'environnement.

Un exemple est le suivant -

Exemple

/* Main program */ 
parse arg command 
command "file1" 
command "file2" 
command "file3" 
exit

Chacune des trois lignes similaires de ce programme est une expression de chaîne qui ajoute le nom d'un fichier (contenu dans les constantes de chaîne) au nom d'une commande (donnée en paramètre). La chaîne résultante est transmise à l'environnement pour être exécutée en tant que commande. Lorsque la commande est terminée, la variable "rc" prend le code de sortie de la commande.

La sortie du programme ci-dessus est la suivante -

sh: file1: command not found
     3 *-* command "file1" 
       >>>   " file1"
       +++   "RC(127)"
sh: file2: command not found
     4 *-* command "file2" 
       >>>   " file2"
       +++   "RC(127)"
sh: file3: command not found
     5 *-* command "file3" 
       >>>   " file3"
       +++   "RC(127)"

Mots-clés dans Rexx

La syntaxe libre de REXX implique que certains symboles sont réservés à l'usage du processeur de langage dans certains contextes.

Dans des instructions particulières, certains symboles peuvent être réservés pour séparer les parties de l'instruction. Ces symboles sont appelés mots-clés. Des exemples de mots-clés REXX sont lesWHILE in a DO instruction, et le THEN (qui agit comme un terminateur de clause dans ce cas) suite à un IF or WHEN clause.

En dehors de ces cas, seuls les symboles simples qui sont le premier jeton dans une clause et qui ne sont pas suivis d'un "=" ou ":" sont vérifiés pour voir s'ils sont des mots-clés d'instruction. Vous pouvez utiliser les symboles librement ailleurs dans les clauses sans qu'ils soient considérés comme des mots-clés.

Commentaires dans Rexx

Les commentaires sont utilisés pour documenter votre code. Les commentaires sur une seule ligne sont identifiés en utilisant le / * * / à n'importe quelle position de la ligne.

Un exemple est le suivant -

/* Main program */
/* Call the add function */
add(5,6)

/* Exit the main program */
exit add:

/* Parse the arguments passed to the add function */ parse arg a,b
/* Display the added numeric values */
say a + b

Les commentaires peuvent également être écrits entre une ligne de code comme indiqué dans le programme suivant -

/* Main program */ 
/* Call the add function */ 
add(5,6) 

/* Exit the main program */ 
exit 
add: 
parse    /* Parse the arguments passed to the add function */ 
arg a,b 

/* Display the added numeric values */ 
say a + b

La sortie du programme ci-dessus sera -

11

Vous pouvez également avoir plusieurs lignes dans un commentaire comme indiqué dans le programme suivant -

/* Main program 
The below program is used to add numbers 
Call the add function */ 
add(5,6) 
exit 
add: 
parse arg a,b 
say a + b

La sortie du programme ci-dessus sera -

11