COOP1000 Contador de Operandos/Operadores
Este programa permite a contagem de Operadores/Operandos dos programas, módulos e funções.
Ele não faz parte do sisdia, portanto, para iniciar sua execução deve-se utilizar o comando fglrun coop1000 1 no prompt do linux.
Para uma correta execução é necessário que o usuário não utilize o mouse para selecionar suas preferências. Pede-se que seja utilizado <ENTER> para selecionar a opção e as setas para navegar entre elas. Após o campo "Verifica Possíveis Anomalias" o programa irá automaticamente iniciar sua contagem, ou seja, é Obrigatório que o usuário passe por este campo.
O programa encontra-se (logicamente) divido em 3 partes.
1ª Parte
O programa exibe um pequeno resumo das quantidades aproximadas de programas/funções/módulos encontradas na instancia. ↓
O usuário então pode escolher qual categoria deseja listar. O programa permite 4 opções diferentes:
2ª Parte
Após a escolha da categoria é permitido que o usuário informe o que o programa deverá contar. As opções são:
3ª Parte
A última escolha do usuário consiste na verificação ou não de anomalias na contagem feita pelo programa. Esta opção quando selecionada irá procurar dentro do programa por "{". Caso ele encontre alguma "Abre Chave" dentro do programa ele irá informar ao usuário que a contagem PODE não estar exata devido a um bloco do programa ter sido comentado.
Após o término de sua execução o programa gera dois arquivos com os resultados das contagens. Um arquivo corresponde a contagem dos Comandos FourJs e o outro corresponde aos Operadores lógico matemáticos. Ambos os arquivos são armazenados no diretório report.
Estes arquivos possuem a extensão "csv". Esta extensão permite que ambos os arquivos sejam importados pelo Microsoft Excel.
Abaixo segue a lista dos Comandos/Operadores que o programa conta e também o que ele despreza em sua contagem.
Todas as linhas que o programa encontrar "--" ou "#" independentemente de sua posição na linha serão excluídas da contagem, por serem em sua maioria caracteres responsáveis por COMENTÁRIOS dentro dos programas. Esta regra é válida para todos os Operadores/Comandos e por isso não será citada na listagem abaixo.
Operadores Lógico-Matemáticos:
Nome do Operador | Ignora |
IF | Ignora: Todas as linhas que possuem: (end, update, declare, form, exit, continue, define, "char(, integer, smallint, format, clear). |
FOR | Ignora: Todas as linhas que possuem: (end, update, declare, form, exit, continue, define, "char(, integer, smallint, format, clear). |
WHILE | Ignora: Todas as linhas que possuem: (end, update, declare, form, exit, continue, define, "char(, integer, smallint, format, clear). |
CASE | Ignora: Todas as linhas que possuem: (end, update, declare, form, exit, continue, define, "char(, integer, smallint, format, clear). |
Multiplicação | Ignora: Todas as linhas que possuem: (select, select *, select *, select *, ***). |
Subtração | Ignora: Todas as linhas que possuem: (aspas). |
Adição |
|
Divisão | Ignora: Todas as linhas que possuem: (display, column, error, message, erro_log). |
Menor (<) | Ignora: Todas as linhas que possuem: (error, display, message, erro_log, column, prompt, <ESC>, <ENTER>). |
Maior (>) | Ignora: Todas as linhas que possuem: (error, display, message, erro_log, column, prompt, <ESC>, <ENTER>). |
Diferença (!=) |
|
Igual (=) |
|
AND |
|
OR | Ignora: Todas as linhas que possuem: (order, column, erro_log, command, orcamen, origi). |
NOT | Ignora: Todas as linhas que possuem: (notfound). |
Comando FourJs:
Nome do Operador | Ignora |
AFTER |
|
BEFORE |
|
BEGIN |
|
CANCEL | Ignora: Todas as linhas que possuem: (cancela, exite, existe, êxito, "(unload)") |
CLEAR |
|
CLOSE |
|
COMMAND |
|
CONSTRUCT | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
CURRENT |
|
DECLARE | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
DEFER | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
DEFINE |
|
DISPLAY | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
ERROR | Ignora: Todas as linhas que possuem: (whenever, dde, finished) |
EXIT | Ignora: Todas as linhas que possuem: (cancela, exite, existe, êxito, "(unload)") |
FETCH |
|
FINISH | Ignora: Todas as linhas que possuem: (whenever, dde, finished) |
FOREACH | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
INITIALIZE |
|
INPUT | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
LET | Ignora: Todas as linhas que possuem: (delet, smallint, "char(, integer) |
LIKE |
|
LOAD | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, declare, deferi, dbload, unload, upload, .load, returning). Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
MENU | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
MESSAGE | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
NEED | Ignora: Todas as linhas que possuem: (into) |
OPEN | Ignora: Todas as linhas que possuem: (delet, smallint, "char(, integer) |
OPTIONS |
|
PROMPT | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
RETURN | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
ROLLBACK |
|
START | Ignora: Todas as linhas que possuem: (exit, before, end, continue, after, menu_manut, command, ldisplay, on key, fgl_, startlog, declaresp, _declare, deferi, dbload, unload, upload, .load, returning). |
UNLOAD | Ignora: Todas as linhas que possuem: (cancela, exite, existe, êxito, "(unload)"). |
WHENEVER |
|
SELECT | Ignora: Todas as linhas que possuem: (selects, prepare, declare, execute, ltipo). |
DELETE | Ignora: Todas as linhas que possuem: (before, cancel, after, fgl_, lock, insert_). |
INSERT | Ignora: Todas as linhas que possuem: (before, cancel, after, fgl_, lock, insert_). |
UPDATE | Ignora: Todas as linhas que possuem: (_upadte, lupdate). |
Observação quanto ao desempenho do programa:
As opções de Contagem ("Comando FourJs"e "Operadores Lógico-Matemáticos") e a verificação de anomalia são diretamente responsáveis pelo desempenho do programa. Quanto mais opções estiverem marcadas mais o programa irá demorar em colher informações.