[Notes2-team] Corretor de erros
Brought to you by:
andersonrb
|
From: Thiago C. <fa...@nl...> - 2003-07-29 04:35:41
|
Primeiramente peço desculpas pela demora para me pronunciar mas lá vai
Minha idéia para análise de de erros do código seria:
O componente scaneia o código e busca por estruturas chaves que estariam
guardadas em uma base ex:
if(...){...}
for ... to ... do
begin
...
end;
ao encontrar uma palavra chave (if, for, while) ele virifica as possíveis
variações de código que podem aparecer. ex:
if ... then
if (...)...(...) then
e analiza a compatibilidade da estrutura encontrada, no caso de um erro no
código. ex:
if a==2 or b==3 then
cada palavra chave seria pesada e uma decisão do que fazer para tornar o
código
correto tomada. ex:
if == inicio de estrutura condicional
then == termino de estrutura condicional
or == ou lógico
a==2 E b==3 == possíveis condições da estrutura
modelo mais próximo conhecido if (...)...(...) then
ação = adicionar aparenteses às condições (a==2 e b==3)
para isso é necessário que haja conhecimento empírico sobre a linguagem,
nesse
ponto se mostra um problema que é criar as regras de verificação do código,
é
inviável criarmos todas então como elas vão ser chamadas de um arquivo basta
ser mais um XML para que o usuário as crie e melhore, ou mesmo uma interface
no
Notes quando uma estrutura desconhecida fosse encontrada, etc.
Infelismente eu creio que esta seria uma parte não muito facilmente
configurável do Notes pois ainda não consegui ver uma maneira muito pratica
de
declarar as estruturas de forma simplificada.
No máximo até esta quarta estarei enviando algum tipo de exemplo de como
seria
o funcionamento de forma mais detalhada, mas a teoria é mais ou menos essa,
ele "lê"
o código encontra o início de uma estrtura e pensa: se eu tenho um if então
preciso de
parâmetros e um then, depois disso verifica o resto da linha de código e
dependendo
do que encrontar faz as devidas alterações para que fique o mais compativel
possível
com as estruturas genéricas conhecidas.
Outra coisa, estava conversando com Anderson e sugeri o seguinte:
Inicialmente pensamos em fazer este componente em C++ pois meus
conhecimentos
em obj pascal não são muito extensos mas para que todos possam participar do
projeto desta parte acho que seria muito melhor fazer-lo em obj pascal e
assim
ter toda a equipe participando, mas para isso precisarei de muito mais
suporte de todos
entao...o que preferem C++ ou Obj Pascal?
Thiago Cavalcanti
|