Alinhar Linhas de Código - Ajuda

4 respostas
L

Pessoal boa tarde, estou precisando de uma ajuda para criar um alinhador de código fonte, ou seja o programa entra com um código COBOL, e retorna o mesmo código alinhado.

Estou precisando de alguma ideia para achar uma String e saber em que posição ela está, como pegar o que está entre um item e outro, ex: entre " IF " e " EQUAL ", deslocar uma String dentro dela mesmo ex: o EQUAL está na coluna 34 tenho que move-lo para 40, se ele está mais que 40 voltar, ou mesmo se a variável passar da 40 então tenho que quebrar uma linha e começar o EQUAL na 40, se o EQUAL estiver na linha de baixo e a variável está a baixo da 40 então tem que voltar a EQUAL para a 40.

Claro sou inciante, se alguem tiver ideias mais praticas, estou em busca de ideias.

IF  WAHE-AAAAAAAAA     EQUAL SPACES OR LOW-VALUES         
               MOVE -1                  TO WRK-AAAAAAAAA-NULL        
           ELSE                                                         
               MOVE WAHE-AAAAAAAAA   TO AAAAAAAAA                
           END-IF.                                                      
                                                                        
           IF  WAHE-BBBBBBBBBBBBBBBBB     EQUAL SPACES OR LOW-VALUES         
               MOVE -1                  TO WRK-BBBBBBBBBBBBBBBBB-NULL        
           ELSE                                                         
               MOVE WAHE-BBBBBBBBBBBBBBBBB    TO BBBBBBBBBBBBBBBBB                  
           END-IF.           

     IF  WAHE-CCCC     EQUAL SPACES OR LOW-VALUES         
               MOVE -1                  TO WRK-CCCC-NULL        
           ELSE                                                         
               MOVE WAHE-CCCC    TO CCCC
           END-IF.

Acima esta um exemplo de como pode vir o código.

Aqui esta as colunas que os comandos devem ficar:
IF = 12
EQUAL = 40
MOVE = 16
ELSE = 12
END-IF = 12
TO = 40

4 Respostas

lucasportela

Isto será um pouco complexo, pois identar um código no COBOL, sendo que você pode ter variáveis de até 31 caracteres e suporta o código até a coluna 71,72 (não me lembro exatamente)… você teria que verificar também senão ultrapassaria este limite

L

sim sim mais no caso, como por hora estou mexendo somente com as condicionais para amadurecer a ideia, se você repara começando o equal na 40 neste caso “EQUAL SPACES OR LOW-VALUES” não vai passar da 72, e claro depois vou tratando estes casos tbm, por hora estou mexendo com tratamento simples de nulidade para insert, então já gero a SQL, variaveis de nulidade, agora quero gerar as condicionais alinhadas dependendo do nome da variável, agora estou querendo saber como alinhar para aplicar enquanto estou gerando, mais quero tbm pegar código prontos e alinhar.
Como o mais difícil é alinhar um código já existente quero pegar esta ideia para colocar no meu gerador de código.

lucasportela

Quando eu chegar em casa a noite vou tentar dar uma olhada nisso, tenho interesse nisso também, mas exige um pouco mais de elaboração.

L

Legal cara já tenho material aqui para gerar a partir de uma DCLGEN, SQL insert updade select cursor, destes, SQL, variaveis de nulidade, condicionais de nulidade. entra com um cpy da dclgen e ele gera tudo, mais to querendo mais, tenho aqui todas as métricas, e padrões…

Criado 15 de setembro de 2011
Ultima resposta 15 de set. de 2011
Respostas 4
Participantes 2