Contacter l'auteur Pierre.Weis@inria.fr
Fichier créé le 3 mars 2003.

La masquotte
de Caml Htmlc : un générateur de fichiers HTML

Version 1.40

Compilation

Ce fichier se compile à l'aide de la commande:

htmlc -I ../../doc_src/Includes/ -env env0 -c example-fra.html

Définition de l'environnement de compilation

Exemples de fichiers d'environnement

Le fichier env0 est en style libre:

# The environment file to expand the examples.
#
# This is a list of binding of name to values,
# a binding is just a single line (except for string bindings).
#
# Use:
#
# name = value
#
# or
#
# name = "value"
#
# or even
#
# name "value"
#
# -- A name is an ident (Caml idents are warranted to be properly understood).
# -- A value can be either a number, a boolean, a char, or a string.
#
# Values are read as tokens according to the Caml lexical conventions.
# The value bound to a name is always converted to a Caml string.
#
environment_file_name = "env0"
HTMLCDOCDIR "../../doc"

X "hello"

Y = 1

a_long_definition_can_spread_on_more_than_one_line "\
ca marche
même sur
plusieurs
lignes!"

# Adresse du campus de Rocquencourt
inria_addres "\
INRIA<BR>\n\
Domaine de Voluceau-Rocquencourt<BR>\n\
78153 Le Chesnay CEDEX<BR>\n\
France"

#########################
# Ce qui concerne l'Hôtel
#########################

hotel = "«La Datcha»"

adresse_hotel = "\
$(hotel)\n\
128 rue de la souris qui se repose\n\
78000 Versailles\n\
France"
#########################

Le fichier d'environnement env1.ml est, lui, en style Caml:

(*
    The environment file to expand the examples.

    It is in ``Caml'' style and uses simple Caml bindings of the form:

    let name = value;;
*)

let environment_file_name = "env1.ml";;

let HTMLCDOCDIR = "../../doc";;

let X = "hello";;

let Y = 1;;

let a_long_definition_can_spread_on_more_than_one_line = "\
ca marche
même sur
plusieurs
lignes!";;

(* Defining an alias for this over long identifier. *)
let long_def = a_long_definition_can_spread_on_more_than_one_line;;

(* Rocquencourt Campus's address. *)
let inria_address = "\
INRIA<BR>\n\
Domaine de Voluceau-Rocquencourt<BR>\n\
78153 Le Chesnay CEDEX<BR>\n\
France";;

(***********************
        The Hotel
 ***********************)
let hotel = "«La Datcha»";;
let hotel_address = "\
128 rue de la souris qui se repose\n\
78000 Versailles\n\
France";;

(****** (* Nested comments are properly handled *) *******)
(****** (* Including when "nasty strings are added inside *)"
                           the nested comments. *) *******)
(***** Who said that Scanf is not heavy duty ? :) *)

let last_variable = true;;

Ainsi <$HOME> devient /home/pauillac/cristal1/weis (variable obtenue dans l'environnement système de l'utilisateur).

Et de même, $X devient hello.

Comme d'habitude, l'hôtel est «La Datcha». Il est situé au 128 rue de la souris qui se repose 78000 Versailles France.

Ici on inclut un fichier, le fichier included-fra.html.

Debut de l'inclusion du fichier included-fra.html... Dans les fichiers inclus les variables sont aussi expansées.

Par exemple le répertoire maison, <$HOME>, est expansé par recherche dans l'environnement de l'utilisateur qui compile le fichier (dans notre cas, c'est /home/pauillac/cristal1/weis), tandis que l'adresse du site de l'INRIA Rocquencourt est facilement obtenue en écrivant:

$inria_address
INRIA
Domaine de Voluceau-Rocquencourt
78153 Le Chesnay CEDEX
France
car la variable $inria_address est définie dans le fichier d'environnement ``env1.ml''.

Fin de l'inclusion du fichier included-fra.html.