Abstraction Concrète : Application CamlEdit


CamlEdit est un éditeur de texte pour MSDOS. Il s'agit d'une application aux objectifs essentiellement pédagogiques. Le thème traite de la gestion de l'espace de texte :

Modules appelés par CamlEdit

Commandes de l'éditeur

Fonctions du module principal

Mise en œuvre de l'application

  • Générateur de l'application

    La procédure de génération de l’application a été conçue pour fonctionner avec les chemins d’accès aux fichiers, mis en place par défaut, lors de l’installation initiale. Le lecteur devra adapter ces chemins en fonction des modifications qu’il aura pu apporter à l’installation initiale. Ici, le répertoire racine de l’installation est considéré comme étant le répertoire maître lors de la génération de l’application.

    Installation de CamlEdit

    Une version de démonstration de l’éditeur, est installée dans le sous répertoire intitulé _atelier du répertoire racine de l’installation de l’atelier de programmation.

    L'éditeur fonctionne en mode texte, dans l'environnement MSDOS, avec Caml-Light version 0.7.
    Camledit ne fonctionne pas avec Caml pour Windows.
    Camledit ne fonctionne pas avec Caml 0.71 dans l'environnement MSDOS.

    Pour tester CamlEdit,

    1. lancer le système interactif de Caml version 0.7, dans l'environnement MSDOS, à partir du répertoire editeur du répertoire _atelier
    2. sous le système interactif Caml, taper la commande :
      include "camledit";;
    Une copie des fichiers suivants doit être placée dans le répertoire indiqué par la variable d'environnement CAMLLIB :

    Exécution de l'application

    Depuis le système interactif, l’éditeur est exécuté à partir de la séquence de commandes suivante :
    1. load_object "camledit";;
      Chargement du code du programme compilé de l’éditeur.
    2. #open "camledit";;
      Ouverture du module camledit.
    3. init_camledit ();;
      Initialisation de l’éditeur.
    4. editer_texte "fichier" ou bien et "fichier" ;;
    La commande et est une forme abrégée de la commande editer_texte.
    Le paramètre "fichier" est une chaîne de caractères désignant le nom du fichier appelé par l’éditeur. Si ce fichier n’existe pas dans le répertoire courant, un nouveau fichier est créé.

    Le chargeur : camledit.ml

    Dans le répertoire racine de l’installation de l’atelier de programmation le répertoire intitulé _dossier contient un dossier de module nommé editeur dans lequel se trouve le chargeur camledit.ml. Ce chargeur est un programme uniquement destiné à charger le programme de l’éditeur à partir du système interactif, en automatisant la séquence de commandes d’exécution de l’éditeur.
    (* CamlEdit.ml *)
    
    load_object "camledit";;
    #open "camledit";;
    init_camledit ();;
    
    (* fin du programme *)
    

    Appel de l'éditeur depuis le système interactif

    Avec le programme précédent, l’éditeur est appelé au moyen de la commande include "camledit";; qui charge et initialise l’éditeur.
    L’exemple suivant montre une session d’utilisation de l’éditeur depuis le système interactif. Au cours de la session, l’opérateur lance, en premier, le chargeur camledit.ml. Ensuite, avec l’éditeur CamlEdit, il appelle un fichier de texte préalablement saisi et intitulé "essai.txt".
    #include "camledit";;
    - : unit = ()
    
    CamlEdit version 0.1 est chargé
            editer_texte "fichier"
    ou      et "fichier"
    
    - : unit = ()
    - : unit = ()
    
    Ensuite l’opérateur peut directement lancer l’exécution de l’éditeur (comme c’est le cas de notre exemple, ici, avec le fichier par défaut "essai.ml").
    #editer_texte "essai.ml" ;;

    Dessin d’écran de l’éditeur en mode texte CamlEdit, après exécution de la commande précédente.

    
    +-essai.ml---------------------------------------------------------------------+
    +---------------------------------------------------------------modifie : non--+
    ¦(* essai.ml *)                                                                ¦
    ¦                                                                              ¦
    ¦ premier texte saisi au moyen de CamlEdit V.01                                ¦
    ¦           le 03/12/94, 10:42 a Papeete TAHITI                                ¦
    ¦                                                                              ¦
    ¦#open "fenetres" ;;                                                           ¦
    ¦                                                                              ¦
    ¦type case_option = { id_option : string; mutable v_option : bool }            ¦
    ¦ and case_alternative = { id_alternative : string }                           ¦
    ¦ and case_annuler = Annuler                                                   ¦
    ¦ and case_valider = Valider                                                   ¦
    ¦ and case_oui = Oui                                                           ¦
    ¦ and case_non = Non                                                           ¦
    ¦ and case_commande = { id_commande : string }                                 ¦
    ¦ and alternatives =                                                           ¦
    ¦  { mutable choix : int; alter : case_alternative vect } ;;                   ¦
    ¦                                                                              ¦
    ¦type controle =                                                               ¦
    ¦    Option of case_option vect                                                ¦
    ¦  | Alternative of alternatives                                               ¦
    +---------------------------------------------------ligne :   0 colonne :   0--+
    +-Edit Caml > [Esc] Quitter Enregistrer Renommer--------------------[F1] aide--+
    

    Image d'écran de l'éditeur en mode texte CamlEdit, après exécution de la commande précédente.