Alternativa para editar projetos Dynamic C no Eclipse

techblog.mdias.com.br é uma iniciativa de mdias.com.br para criar uma fonte de informações diversas sobre tecnologia, ferramentas, dicas, documentação e alguns assuntos variados que encontro ou acabo me dedicando mais por ai.
Vejam também:
Trabalho com um processador chamado Rabbit que possui um ambiente próprio de desenvolvimento e uma linguagem muito próxima ao ANSI C. Poucas diferenças na linguagem em si podem ser percebidas, mas na estrutura do projeto temos uma grande diferença.

Os arquivos incluídos no projeto (chamados de bibliotecas), que em um projeto ANSI C utilizaria arquivos .h e .c, o Dynamic C utiliza arquivos com extensão .lib. E ao invés de #include, utilizam a diretiva #use.

Enfim… a IDE deles não é das melhores e por isso resolvi trabalhar com o Eclipse, mas ai surgiu o problema. O Eclipse por padrão entende que o .lib é uma biblioteca estática compilada e não faz syntax highlighting, não encontra as funções e variáveis. Assim, muitos dos benefícios do Eclipse acabam sem uso.

A solução para isso seria alterar o Default File Content-Type do Eclipse, para isso eu precisaria criar um plugin e instalar na minha IDE. Confeço que tentei dar uma olhada, mas a API me pareceu bem complexa e eu não tinha tempo para estudar tudo aquilo.

Com isso, acabei desenvolvendo uma alternativa para contornar o problema. Fiz um script em Python que renomeia todos os arquivos .lib do meu projeto para .c durante o desenvolvimento e após o desenvolvimento eu altero de .c para .lib novamente e compilo com meu bom e velho Dynamic C.



Não é das melhores, mas trabalha muito bem.
É só adicionar o script como script externo do Eclipse e configurar alguns parâmetros.

Alguns pontos interessantes de Python que podem ajudar alguém:
1) Obter parâmetros passados ao programa em linha de comando

opts, extra = getopt.getopt(sys.argv[1:], ':s:d:', ['source=', 'dest='])
for o,p in opts:
	if o in ['-s', '--source']:
		src = p
	elif o in ['-d', '--dest']:
		dst = p

Busca por extensões de arquivos e como renomear um arquivo

dirlst = os.listdir(location)		# lista os arquivos de um diretorio (caminho em location)</div>
reSource = re.compile('^.*\.(' + src + ')$')	# lista os arquivos de um diretorio (caminho em location)
for fname in dirlst:
	if reSource.match(fname):
		repl = re.compile('\.(' + src + ')')
		dname = repl.sub('.' + dst, fname)		# substitui a extensão com regex
		shutil.move( location + '\\' + fname, location + '\\' + dname )	# renomeia arquivo

Para utilizar, basta ter o Python instalado na máquina e rodar o seguinte comando:
python DCRenameFile.py -–source= –-dest=
Meu primeiro contato com o Python foi bem útil e produtivo, certamente haverão novos contatos.
Referência: http://python.about.com


Tags: , ,

Monday, June 2nd, 2008 Desenvolvimento, Dynamic C, Eclipse, Python

No comments yet.

Leave a comment

Search

 

contact me

BuscaPé, líder em comparação de preços na América Latina