Rexx - sintaxe básica

Para entender a sintaxe básica do Rexx, vamos primeiro examinar um programa simples Hello World.

Exemplo

/* Main program */ 
say "Hello World"

Pode-se ver como o programa hello world é simples. É uma linha de script simples usada para executar o programa Hello World.

As seguintes coisas precisam ser observadas sobre o programa acima -

  • o say command é usado para enviar um valor para o console.

  • o /* */ é usado para comentários no Rexx.

O resultado do programa acima será -

Hello World

Forma Geral de uma Declaração

No Rexx, vamos ver uma forma geral de um programa. Dê uma olhada no exemplo a seguir.

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

O resultado do programa acima será -

11

Vamos repassar o que entendemos do programa acima -

  • Adicionar é uma função definida para adicionar 2 números.

  • No programa principal, os valores de 5 e 6 são usados ​​como parâmetros para a função de adição.

  • A palavra-chave exit é usada para sair do programa principal. Isso é usado para diferenciar o programa principal da função adicionar.

  • A função add é diferenciada com o símbolo ':'.

  • A instrução parse é usada para analisar os argumentos recebidos.

  • Finalmente, a instrução return é usada para retornar a soma dos valores numéricos.

Sub-rotinas e funções

No Rexx, o código normalmente é dividido em sub-rotinas e funções. Sub-rotinas e funções são usadas para diferenciar o código em diferentes unidades lógicas. A principal diferença entre sub-rotinas e funções é que as funções retornam um valor, enquanto as sub-rotinas não.

Abaixo está um exemplo de diferença chave entre uma sub-rotina e uma função para uma implementação de adição -

Implementação de Função

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

Implementação de subrotina

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

A saída de ambos os programas será o valor 11.

Executando Comandos

Rexx pode ser usado como uma linguagem de controle para uma variedade de sistemas baseados em comandos. A forma como Rexx executa comandos nesses sistemas é a seguinte. Quando Rexx encontra uma linha de programa que não é uma instrução nem uma atribuição, ele trata essa linha como uma expressão de string que deve ser avaliada e então passada para o ambiente.

Um exemplo é o seguinte -

Exemplo

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

Cada uma das três linhas semelhantes neste programa é uma expressão de string que adiciona o nome de um arquivo (contido nas constantes de string) ao nome de um comando (fornecido como um parâmetro). A string resultante é passada ao ambiente para ser executada como um comando. Quando o comando termina, a variável "rc" é definida como o código de saída do comando.

O resultado do programa acima é o seguinte -

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

Palavras-chave em Rexx

A sintaxe livre do REXX implica que alguns símbolos são reservados para uso do processador de linguagem em determinados contextos.

Dentro de instruções específicas, alguns símbolos podem ser reservados para separar as partes da instrução. Esses símbolos são chamados de palavras-chave. Exemplos de palavras-chave REXX são osWHILE in a DO instruction, e as THEN (que atua como um terminador de cláusula, neste caso) após um IF or WHEN clause.

Além desses casos, apenas símbolos simples que são o primeiro token em uma cláusula e que não são seguidos por um "=" ou ":" são verificados para ver se são palavras-chave de instrução. Você pode usar os símbolos livremente em outras partes das cláusulas, sem que sejam considerados palavras-chave.

Comentários em Rexx

Os comentários são usados ​​para documentar seu código. Comentários de uma única linha são identificados usando / * * / em qualquer posição na linha.

Um exemplo é o seguinte -

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

Os comentários também podem ser escritos entre uma linha de código, conforme mostrado no programa a seguir -

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

O resultado do programa acima será -

11

Você também pode ter várias linhas em um comentário, conforme mostrado no programa a seguir -

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

O resultado do programa acima será -

11