Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Acrescentar informações sobre o padrão sintático dos comandos

...

Informações

A utilização dos comandos da linguagem AdvPL depende da correta configuração da pasta de <includes> fornecida junto com o ambiente para possibilitar a compilação de  código AdvPL.

Padronização e Informações adicionais

  • A documentação base de um comando deve incluir sua sintaxe mínima e sintaxe completa.
  • Sintaxe mínima: Utilização do comando com o mínimo de parâmetros, apenas os obrigatórios.
  • Sintaxe completa: Descreve todas as cláusulas do comando, obrigatórias e opcionais.
  • Em algumas ocasiões o comando pode não endereçar diretamente todos os parâmetros do método encapsulado pelo comando. Nestes casos, normalmente é possível setar as propriedades adicionais de forma direta no objeto após criado ou mesmo por método. 
  • Cada comando da interface visual normalmente está vinculada ao uso de uma classe da interface visual, e encapsula o construtor NEW() da mesma. Cada comando documentado menciona e aponta por link a classe endereçada, e vice-versa. 

Convenções sintáticas

Vamos analisar o exemplo da sintaxe completa do comando @ ... SAY, e ver os elementos comuns a todas as representações de sintaxe de comandos:

@ <nRow>, <nCol> SAY [ <oSay> PROMPT | VAR ] <cText> 
[ PICTURE <cPict> ]
[ OF | WINDOW | DIALOG <oWnd> ]
[ FONT <oFont> ]
[ PIXEL | PIXELS ]
[ COLOR | COLORS <nClrText> [,<nClrBack> ] ]
[ SIZE <nWidth>, <nHeight> ]
[ HTML ]

  • Todas as palavras e expressões e agrupamentos entre colchetes são opcionais.
  • Quando encontramos mais de uma palavra ou expressão opcional entre colchetes, elas fazem parte da sintaxe e devem ser informadas. Por exemplo, PICTURE <cPict> está entre colchetes, portanto é opcional. Porém, ao usarmos a palavra PICTURE no comando, devemos obrigatoriamente especificar a variável <cPict> – o nome da variável ou expressão caractere que será usada como máscara de entrada de dados. 
  • Quando palavras reservadas da sintaxe estão separadas por "|" (pipe), isto significa que elas são sinônimos, e qualquer uma – mas apenas uma – delas pode ser usada. Alguns comandos possuem sinônimos, outros não. Geralmente quando a utilização de apenas um sinônimo é recomendada por questões de padronização de código, a recomendação de uso está explicitamente descrita na documentação da cláusula. Como é o caso de PIXEL e PIXELS. A primeira forma é a recomendada, pois várias funções não usam o sinônimo PIXELS. De forma semelhante, para especificar o componente superior (pai) do componente atual, podemos usar OF, WINDOW ou DIALOG – porém a forma recomendável é usar sempre OF.
  • Parâmetros e cláusulas opcionais também podem estar dentro de um bloco opcional. Por exemplo, ao usar COLOR ou COLORS, obrigatoriamente devemos especificar uma expressão numérica – constante ou variável – para identificar a cor de frente do texto do componente. Quando especificamos a cor de frente, opcionalmente podemos usar uma virgula imediatamente após a cor de frente do texto, e após a vírgula podemos especificar a cor de fundo do texto (background color). Uma vez que colocamos a vírgula após a cor de frente, devemos especificar a cor de fundo, ou o programa não será compilado e apresentará o erro Syntax Error. Quando queremos especificar apenas a cor de frente, não usamos a vírgula.
  • Como os comandos possuem regras de tradução para chamadas que envolvem listas de parâmetros, texto sem aspas tratado como caractere – como por exemplo o comando USE – algumas chamadas podem usar de alguns artifícios para usar uma variável como parâmetro. O comando USE foi desenhado para traduzir o nome da tabela especificado imediatamente após o comando como uma string constante, sem usar aspas para identificar que a expressão informada é uma string. Nestes casos, para informar uma variável como o nome da tabela, colocamos a variável entre parênteses. Cada comando onde um parâmetro possuir esta particularidade, a documentação do parâmetro deve conter estas informações adicionais.