Rexx - Sintassi di base

Per comprendere la sintassi di base di Rexx, diamo prima un'occhiata a un semplice programma Hello World.

Esempio

/* Main program */ 
say "Hello World"

Si può vedere quanto sia semplice il programma Hello World. È una semplice riga di script che viene utilizzata per eseguire il programma Hello World.

Le seguenti cose devono essere annotate sul programma di cui sopra:

  • Il say command viene utilizzato per inviare un valore alla console.

  • Il /* */ viene utilizzato per i commenti in Rexx.

L'output del programma di cui sopra sarà:

Hello World

Forma generale di una dichiarazione

In Rexx, vediamo una forma generale di un programma. Dai un'occhiata al seguente esempio.

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

L'output del programma di cui sopra sarà:

11

Esaminiamo ciò che abbiamo capito dal programma sopra -

  • Aggiungi è una funzione definita per aggiungere 2 numeri.

  • Nel programma principale, i valori di 5 e 6 vengono utilizzati come parametri per la funzione di aggiunta.

  • La parola chiave exit viene utilizzata per uscire dal programma principale. Viene utilizzato per differenziare il programma principale dalla funzione di aggiunta.

  • La funzione di aggiunta è differenziata con il simbolo ":".

  • L'istruzione parse viene utilizzata per analizzare gli argomenti in arrivo.

  • Infine, l'istruzione return viene utilizzata per restituire la somma dei valori numerici.

Subroutine e funzioni

In Rexx, il codice è normalmente suddiviso in subroutine e funzioni. Le subroutine e le funzioni vengono utilizzate per differenziare il codice in diverse unità logiche. La differenza fondamentale tra subroutine e funzioni è che le funzioni restituiscono un valore mentre le subroutine no.

Di seguito è riportato un esempio di differenza chiave tra una subroutine e una funzione per un'implementazione di addizione:

Implementazione della funzione

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

Implementazione di subroutine

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

L'output di entrambi i programmi sarà il valore 11.

Esecuzione di comandi

Rexx può essere utilizzato come linguaggio di controllo per una varietà di sistemi basati su comandi. Il modo in cui Rexx esegue i comandi in questi sistemi è il seguente. Quando Rexx incontra una riga di programma che non è né un'istruzione né un'assegnazione, tratta quella riga come un'espressione stringa che deve essere valutata e quindi passata all'ambiente.

Un esempio è il seguente:

Esempio

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

Ciascuna delle tre righe simili in questo programma è un'espressione stringa che aggiunge il nome di un file (contenuto nelle costanti stringa) al nome di un comando (dato come parametro). La stringa risultante viene passata all'ambiente per essere eseguita come comando. Quando il comando è terminato, la variabile "rc" viene impostata sul codice di uscita del comando.

L'output del programma di cui sopra è il seguente:

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)"

Parole chiave in Rexx

La sintassi libera di REXX implica che alcuni simboli sono riservati all'uso da parte del processore del linguaggio in determinati contesti.

All'interno di istruzioni particolari, alcuni simboli possono essere riservati per separare le parti dell'istruzione. Questi simboli sono indicati come parole chiave. Esempi di parole chiave REXX sonoWHILE in a DO instruction, e il THEN (che funge da terminatore di clausola in questo caso) seguendo un IF or WHEN clause.

A parte questi casi, solo i simboli semplici che sono il primo token in una clausola e che non sono seguiti da un "=" o ":" vengono controllati per vedere se sono parole chiave dell'istruzione. È possibile utilizzare i simboli liberamente altrove nelle clausole senza che vengano interpretate come parole chiave.

Commenti in Rexx

I commenti vengono utilizzati per documentare il codice. I commenti su una sola riga vengono identificati utilizzando / * * / in qualsiasi posizione della riga.

Un esempio è il seguente:

/* 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

I commenti possono anche essere scritti tra una riga di codice come mostrato nel seguente programma:

/* 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

L'output del programma di cui sopra sarà:

11

Puoi anche avere più righe in un commento come mostrato nel seguente programma:

/* 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

L'output del programma di cui sopra sarà:

11