Olá Leonel,
>>Primeiramente, desculpe me se já nos conhecemos. Seu nome me é bem
>>familiar, e descobri que participamos juntos de alguns eventos no
>>passado (lembro da sua palestra de prevalência em algumas das Borcons)
>>mas não lembro se já conversamos.
Sim sua memória é boa, trocamos cartões num desses Borcons.
>>Encontrei por acaso esses dias o seu projeto llvm-pascal enquanto
>>procurava informações sobre llvm. Não sou um expert em compiladores,
>>mas conheço o suficiente (para ser perigoso) e me interesso pelo
>>assunto. Pela minha agenda não posso me oferecer para ajudar na
>>implementação, mas vou ficar de olho pelo caminho e oferecer uns
>>palpites (se não se importar). Conheço até que bem as intricacias mais
>>arcanas da linguagem e da RTL (do delphi, não muito do freepascal) e
>>acho que posso dar um apoio legal.
Legal. Suas sugestões e críticas são muito bem vindas!!!
Estou compilando prioritariamente a RTL do Delphi 2006.
Exatamente os fontes com a parte mais intrincada, chata e arcana da
sintaxe do Object Pascal.
>>Não resisti em baixar os fontes do SVN e testar aqui. Senti um pouco
>>de falta de alguns casos de teste mostrando o que o parser já suporta.
>>Idealmente seria bom casos simples para rodar sempre evitando
>>regressões.
Vou usar o teste suíte do Free Pascal para isso. Isso está definido na
página inicial do projeto. Deve estar no SVN até dezembro.
>>Fora alguns casos que capturei nos casos de teste anexos, acho que ele
>>já funciona muito bem:
>>2251661 lines, 5.812 seconds, 17.9 klps.
>>manipulando os fontes para remover muitas ocorrências dos exemplos
>>>>anexos)
O que você compilou? Qual a configuração da sua máquina
>>Outra coisa: ao compilar vários arquivos em sequência, se um arquivo
>>tiver um comentário não terminado, ele mantém esse estado ao passar
>>para o próximo gerando erros indevidos neste. Também tive problemas ao
>>receber um #$1A na ultima linha de arquivos e o scanner continuar
>>tentando ler linhas mesmo depois de EOF. Contornei os dois casos para
>>com a seguinte alteração no NextToken:
>> if EOF(Arq) and ((LenLine = 0) or (Line = #$1A)) then begin
>> if FToken.Lexeme = 'End of Source' then
>> FEndSource := true
>> else
>> FToken.Lexeme := 'End of Source';
>> FEndComment := EmptyStr;
>> exit;
>> end;
>>De qualquer forma, só quis passar esses casos e avisar vou estar de olho.
Vou commitar sua sugestão assim que tiver tempo. Este projeto ainda
tem muito prazo...
Estava esperando um contato destes para criar o fórum.
Vou tomar a liberdade de inaugurar o fórum com sua mensagem ;)
[]s
Wanderlan