Colorindo código fonte em C com o SED
Publicado por Marcos Paulo Ferreira 25/07/2009
[ Hits: 6.338 ]
Homepage: http://daemoniolabs.wordpress.com
Este script inacabado recebe um código em C e retorna o mesmo código colorido, só que em formato HTML. Posteriormente você pode transformar este arquivo HTML em PDF.
Qualquer ajuda na manutenção do código será muito bem vinda.
Daemonio
#!/bin/sed -f # #Autor: Daemonio #Email: undefinido at gmail.com #Fri Jun 26 00:09:55 BRT 2009 # #Script SED que colori um codigo fonte em C #retorando o codigo colorido em um arquivo #html. # #[sintaxe] c2html.sed codigo.c > codigo.html # 1 i\ <html>\ <head>\ <title>** c2html.sed - Sed Colorido **</title>\ </head>\ <body>\ <pre> #Junta todas as linhas que contem um '\' no final. :a /\\$/ { N ba } # #Substituir pelos (alguns) chars especiais do HTML s/&/\&/g s/</\</g s/>/\>/g # #Includes e defines # #Codigo para #ifdef e companhia faltando. :( # /^[ \t]*\(#include\|#define\)/ { s@"@\"@g s@.*@<font color='green'>&</font>@ #Nao ha mais nada para colorir (va para o fim do script). b } # #Um caracter C entre '' s@'\(..\?\)'@<font color='red'>&</font>@ # #Colorir os digitos (rosa escuro) s@\b\([[:digit:]]\+\)\b@<font color='#FF0099'>\1</font>@g # #Palavras reservadas s@\b\(int\|char\|void\|float\|double\|long\|short\)\b@<b>&</b>@g s@\b\(if\|else\|switch\|case\|break\|continue\)@<b>&</b>@g s@\b\(for\|while\|do\|typedef\|struct\|return\)@<b>&</b>@g s@\b\(volatile\|extern\|local\|register\|union\)\b@<b>&</b>@g s@\b(static\|const\|default\|enum\|goto\sizeof)\b@<b>&</b>@g s@\b\(un\)\?signed\b@<b>&</b>@g # #Aspas /"/ { #Substitui "" por $""$ onde o $ eh um char especial. # # exemplo: "entre aspas" -> vira -> $"entre aspas"$ # #Isso pra facilitar a manipulacao e para nao #casar uma aspas final com uma inicial. # s@"\([^"]*\)"@$"\1"$@g #Retirar tags HTML entre as aspas sem casar #com o conteudo entre o fim de uma dupla #de aspas com o inicio da outra dupla. :b /\$"[^>]\+>[^"]*"\$/ { s@\$"\([^<]*\)<[^>]\+>\([^"]*\)"\$@$"\1\2"$@ tb } #Colorir de vermelho as aspas s@\$"\([^"]*\)"\$@<font color='red'>"\1"</font>@g } # #Comentarios \@/\*@ { #Comentarios com mais de uma linha :c \@\*/@!{ N bc } #Eliminar tags HTML entre os comentarios :d s@/\*\([^<]*\)<[^>]\+>\(.*\)\*/@/*\1\2*/@ td s@\(\([^/][^\*])\)*\)/\*\(.*\)\*/@\2<font color='blue'>/*\3*/</font>@g } # #Comentarios indicados por // \@//@ { #Eliminar tags HTML :e s@//\([^<]*\)<[^>]\+>\([^$]\+$\)@//\1\2@ te s@//.*$@<font color='blue'>&</font>@g } # $ a\ </pre>\ </body> \ </html>\
Script que instala o repositório do BT em outras distros
Scriconnsh WPA 0.1 (que raio é isso???) - Script de Conexão Wireless WPA.
Calculo da Baskara em Shell Script (Super Comentado)
Script de compilação do kernel
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Como Atualizar Fedora 39 para 40
Instalar Google Chrome no Debian e derivados
Consertando o erro do Sushi e Wayland no Opensuse Leap 15
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
pacotes 32 bit no void 64 bit (1)
erro ao clonar repo github (7)
ASRock H310CM-HG4 vs Linux (1)
Como adicionar módulo de saúde da bateria dos notebooks Acer ao kernel... (26)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba