Programmez par plaisir! 30-07-2010
03:39
Prog-Info > Projets > Colorateur Syntaxique.

Colorateur Syntaxique

Introduction
Description
Statistiques
Améliorations
ToDo
Démonstration
Téléchargements

Introduction

Ce colorateur syntaxique permet de colorer un code source. (mots clés, commentaires, ...) Ceci permet de visualiser un code source en ligne assez rapidement de façon plus lisible et plus agréable. Ainsi le webmaster n'a pas besoin de passer une heure à colorer un code source de 200 lignes sur son site web.

Top

Description

Ce colorateur de syntaxe permet de colorer un code source. Pour que le temps d'exécution du script ne soit pas trop long, il est conseillé de ne pas traiter des codes sources de plus de 500 lignes.
Les différents langages de programmation que l'on peut colorer sont :
Ada, C, C++, Delphi, Java, OCaml, PHP (fonction de base), SQL, VB.
On peut afficher ou non le numéro des lignes.
On peut afficher directement le résultat ou récupérer le résultat dans une chaine de caractères.


Le colorateur de syntaxe va colorer :
- Les directives de compilation.
- Les commentaires.
- Les mots clés.
- Les nombres.
- Les caractères.
- Les chaines de caractères.

Voici un premier exemple d'utilisation :

0001 <?php 
0002    
include("Repertoire/Colorer.php");
0003    
$source = new Colorer("Java""Test.java"TRUE [, FALSE]);
0004    
$source->afficher();
0005
?>

Le troisième argument optionel, par défaut à FALSE permet à TRUE d'afficher le numéro des lignes.
Le quatrième argument optionel, par défaut à FALSE permet à TRUE de renvoyer le résultat dans une chaine de caractères au lieu de l'afficher.


Voici un second exemple d'utilisation :

<?php 
   
include("Repertoire/Colorer.php");
   
$code "#include <stdio.h>\n\n/* Programme principal */\n   int main(void)\n{\n   
      printf(\"Bonjour!\");\n   return 0;\n}\n"
;
   
$source = new Colorer("C");
   
$source->lang = new LangageC($code);
   echo 
"<pre>\n".$source->afficher()."</pre>";
?>

Voici un exemple d'utilisation pour le PHP :

<?php 
   
include("Repertoire/xhtml_highlight.php");
   
xhtml_highlight_string($chaine [, $lignes$accents$retour]);
?>
Le premier argument est la chaine de caractères à colorer.
Le deuxième argument par défaut à FALSE (optionel) permet à TRUE d'afficher ou non le numéro des lignes.
Le troisième argument par défaut à FALSE (optionel) permet à TRUE de convertir les caractères accentués en code html.
Le quatrième argument par défaut à FALSE (optionel) permet à TRUE de renvoyer le résultat dans un chaine de caractères au lieu de l'afficher.
Idem pour la fonction xhtml_highlight_file().

Top

Statistiques

Machine 1 :
- P4 2.53Ghz, 768Mo DDR 266Mhz
- WindowsXP SP1
- Apache 1.3.27 & PHP4.3.3

Langage C de 190 lignes : 0.23 sec (Mozilla1.7.1) ; 0.26 sec (IE6.0)
Langage C++ de 325 lignes : 0.42 sec (Mozilla1.7.1) ; 0.49 sec (IE6.0)
Langage Java de 590 lignes : 1.08 sec (Mozilla1.7.1) ; 1.18 sec (IE6.0)
Langage Delphi de 102 lignes : 0.19 sec (Mozilla1.7.1) ; 0.21 sec (IE6.0)
Langage VB de 286 lignes : 1.03 sec (Mozilla1.7.1) ; 1.13 sec (IE6.0)
Langage Ada de 212 lignes : 0.57 sec (Mozilla1.7.1) ; 0.64 sec (IE6.0)
Langage SQL de 114 lignes : 0.30 sec (Mozilla1.7.1) ; 0.34 sec (IE6.0)
Langage OCaml de 295 lignes : 0.68 sec (Mozilla1.7.1) ; 0.76 sec (IE6.0)
Langage PHP de 269 lignes (+no lignes) : 0.015 sec (Mozilla1.7.1) ; 0.16 sec (IE6.0)
Bientôt!

Chaque test a été exécuté une dizaine de fois!

Machine 2 :
- Athlon XP 2200+, 768 DDR 333Mhz
- Linux Fedora Core 2 (2.6.8-1.521) sous Gnome 2.6
- Apache 2.0.5.0 & P4.3.8 - Firefox 0.9.3

Langage C de 190 lignes : 0.38 sec
Langage C++ de 325 lignes : 0.57 sec
Langage Java de 590 lignes : 1.17 sec
Langage Delphi de 102 lignes : 0.35 sec
Langage VB de 286 lignes : 1.13 sec
Langage Ada de 212 lignes : 0.86 sec
Langage SQL de 114 lignes : 0.44 sec
Langage OCaml de 295 lignes : 0.82 sec
Langage PHP de 269 lignes (+no lignes) : 0.005 sec

Chaque test a été exécuté une dizaine de fois!

Top

Améliorations

On pourrait ajouter la coloration de certains symboles comme les opérateurs mais aussi la coloration des fonctions de base, des fonctions les plus utilisées. Ces fonctionnalités sont intéressantes mais ralentiraient le traitement du code source. Le but est de faire une coloration syntaxique simple et rapide. Sinon il vaut mieux utiliser un editeur!

Je suis ouvert à toutes suggestions ou astuces qui permettraient d'améliorer les performances de ce colorateur syntaxique. ( Contact )

Top

ToDo

- Commentaires en français et en anglais.
- Nouveaux langages : ASP, Cobol, C#, Eiffel, Fortran, JavaScript, Lisp, Perl, Python, Ruby.
- Syntaxe des classes : version pour PHP5.

Top

Démonstration

- Cliquez ici.

Top

Téléchargements

Les sources.zip [38 Ko]
Les sources.rar [36 Ko]
Les sources.tar.gz [29 Ko]

Contenu des archives (cliquable) :
- Langage.php, Colorer.php, xhtml_highlight.php,
- LangageAda.php, LangageC.php, LangageCpp.php, LangageDelphi.php,
  LangageJava.php, LangageOCaml.php, LangageSQL.php, LangageVB.php
- LeTest.php,
- TpsDebut.php, TpsFin.php,
- Test.adb, Test.c, Test.cpp, Test.pas,
  Test.java, Test.sql, Test.ml, Test.vb

Top


[Plan Plan] [A propos A Propos] [ 661191 ]
Copyright ©2002-2009 Prog-info Tous droits réservés.