> Retour au Perl et XML - Maitrise Tal 2002 <


 

PROJET 1

 

Le programme convertie le document XML  dico2002.xml au format HTML avec une page d'index contenant les elements contenus dans l'entête du document

XML et pour chaque article du dictionnaire une page HTML qui portera le nom de l'article décrit. On construit des liens entre toutes les pages crées:

de la page d'index vers le premier article, du premier article vers le second.....,du dernier article vers l'index

Chaque page d'article contiens un lien vers la page d'index

Les entrées sont classées par ordre alphabétique

Le code a été appurgé (code superflus est precedé d'un signe # ")

--------------------------->  Programme dicoHTML.pl

 

#!/usr/local/bin/perl -w

 

use XML::Parser;

# use utf8;

use strict;

 

my $Usage =<<'End_of_Usage;';

dicoHTML.pl [-h] [-d dir] [-mode mode] dico2002.xml

 

#Convert a document into html, with a separate html document

#for each slide and an index to all of them.

 

#          -h         Print this message and exit

 

#          -w        warn about unrecognized tags

 

#          -d        Use dir as directory into which to write html pages. Defaults

                        to basename of supplied doc file.

 

#          -mode  Output mode. Choices are html, html-style. Default is

                        html-style.

 

End_of_Usage;

 

my @Modes = qw(object pass skip);

 

my $dir;

my $dowarn = 0;

my $dostyle = 1;

 

while (defined($ARGV[0]) and $ARGV[0] =~ /^-/) {

  my $opt = shift;

 

  if ($opt eq '-h') {

    print $Usage;

    exit;

  }

  elsif ($opt eq '-d') {

    $dir = shift;

  }

  elsif ($opt eq '-w') {

    $dowarn = 1;

  }

  elsif ($opt eq '-mode') {

    my $marg = shift;

    if ($marg eq 'html') {

      $dostyle = 0;

    }

    else {

      die "Unrecognized mode: $marg\n$Usage";

    }

  }

  else {

    die "Unrecognized option: $opt\n$Usage";

  }

}  # End of option processing

 

my $docfile = shift;

 

die "No docfile provided:\n$Usage" unless defined $docfile;

 

die "Can't read $docfile" unless -r $docfile;

 

if (defined $dir) {

  die "$dir isn't a directory" unless -d $dir;

}

else {

  $docfile =~ m!([^/.]+)(?:\.[^/.]*)?$!;

  $dir = $1;

  if (-e $dir) {

    die "$dir exists but isn't a directory"

      unless -d $dir;

  }

  else {

    mkdir $dir, 0755;

  }

}

 

my $in_slideshow = 0;

my $after_head = 0;

 

my $Mode = 0;

my $Mode_level = 0;

 

my $Text;

my $Markedup_Text;

my $Object;

my @Ostack = ();

 

my $intext = 0;

my $closure;

my @closure_stack = ();

 

my $style_link = '';

 

if ($dostyle) {

 

############################################################

# Default

######## Stylesheet                                                            # Création de feuille de style

 

  my $stylesheet =<<'End_of_Stylesheet;';

 

BODY {

    font-family: monospace;

    font-size: 12pt;

    text-align: center;

    background-color: white;

    background-image: url(back.gif);

}

 

  p {                                                                                                   #Paragraphe

    font-weight: bolder;

  color: orange;

}

 

H2.title {                                                                                   # Paramètres et taille de lettres

    font-family: fantasy;

    font-size: 40pt;

    text-align: center;

    line-height: 100%;

  color: maroon;

}

 

.author {

    font-weight: bold;

  color: orange;

}

 

.defterm {

    font-family: arial;

    font-size: 100%;

    font-weight: bold;

  color: maroon;

}

 

.logo {

  float: center;

}

 

H1.title {

  font-family: fantasy;

  font-size: 40pt;

  font-weight: bolder;

  text-align: center;

  color: olive;

}

 

 

End_of_Stylesheet;                                       #  fin de feuille de style

 

################################################################

 

  $style_link = '<link href="dflt.css" rel="stylesheet" type="text/css">';

  $style_link .= "\n";

  open(CSS, ">$dir/dflt.css") or die "Couldn't write to $dir/dflt.css";

  print CSS $stylesheet;

  close(CSS);

}

 

my $index = 'index.html';                              

my @slidetitle;

my $body;

my $inlist = 0;

 

my @Titles;

 

my $header;

 

my $prolog = "<html><head>\n";

$prolog .= "<!-- Generated by $0 on " . gmtime() . " GMT -->\n";

 

my $slide_number = 0;

 

my $p = new XML::Parser(ErrorContext => 3,

                                   Handlers => {Start => \&starthndl,            #début balise

                                                    End   => \&endhndl,                # fin balise

                                                    Char  => \&text});                    #caractère

$p->parsefile($docfile);

 

# Generate index file & end file

 

open(SLIDE, ">$dir/index.html") or die "Couldn't write to index.html";

print SLIDE $prolog;

print SLIDE "<title>", $header->{title}, "</title>\n";

print SLIDE $style_link;

 

#if (defined $header->{author}) {

#  print SLIDE "<meta name=\"author\" content=\"";

#  print SLIDE $header->{author}, "\">\n";

#}

 

#print SLIDE "</head>\n";

#if ($dostyle) {

#  print SLIDE "<body>\n";

#}

#else {

#  print SLIDE "<body background=\"back.gif\">\n";

#}

 

#print SLIDE "<table class=\"navbar\" width=\"100%\"><tr>\n";

#print SLIDE "<td align=\"right\"><a href=\"slide001.html\">";

#print SLIDE "Next</td>\n</table\n";

#print SLIDE "<hr>\n";

 

if ($dostyle) {

  print SLIDE "<img class=\"logo\" src=\"logo_fleur.gif\">\n";

  print SLIDE "<h2 class=\"title\">", $header->{title},"</h2>\n";

}

 

#else {

#  print SLIDE "<img align=\"center\" src=\"logo_fleur.gif\">\n";

#  print SLIDE "<font size=\"+2\">\n";

#  print SLIDE "<h1 align=\"center\"><font size=\"7\" color=\"blue\">";

#  print SLIDE $header->{title}, "</h1>\n";

#}

 

if (defined $header->{author}) {

  if ($dostyle) {

    print SLIDE "<h3 class=\"author\">Stylise par ";

    print SLIDE $header->{author}, "</h3>\n";

  }

 

#  else {

#    print SLIDE "<h3 align=\"center\">Stylise par ";

#    print SLIDE $header->{author}, "</h3>\n";

#  }

}

 

print SLIDE "<hr>\n<ul>\n";

 

 

my $i;

for ($i = 1; $i <= $slide_number; $i++) {

  my $name = slidename($i);

  my $title = $Titles[$i];

  if (defined $title) {

    print SLIDE "<a href=\"$name\">$title</a>\n";

  }

}

 

#unless ($dostyle) {

#print SLIDE "</font>\n";

#}

 

#print SLIDE "</body>\n</html>\n";

close(SLIDE);

 

my $fn = slidename($slide_number + 1);

open(SLIDE, ">$dir/$fn") or die "Couldn't open $fn for writing:\n$!";

print SLIDE $prolog;

print SLIDE "<title>Fin</title>\n";

print SLIDE $style_link;

print SLIDE "</head>\n";

 

#if ($dostyle) {

#  print SLIDE "<body>\n";

#}

#else {

#  print SLIDE "<body background=\"back.gif\">\n";

#}

 

print SLIDE "<table class=\"navbar\" width=\"100%\"><tr>\n";

#print SLIDE "<td align=\"left\"><a href=\"", slidename($slide_number);

#print SLIDE "Avant</td>\n";

print SLIDE "<td align=\"center\"><a href=\"$index\">Accueil</td>\n";

print SLIDE "<td align=\"right\"></td>\n";

print SLIDE "</table>\n<hr>\n";

 

if ($dostyle) {

  print SLIDE "<img align=\"center\" src=\"logo_fin.gif\">\n";

  print SLIDE "<h1 class=\"title\">Fin</h1>\n";

  print SLIDE "</body>\n</html>\n";

}

 

#else {

#  print SLIDE "<font size=\"+2\">\n";

#  print SLIDE "<h1 align=\"center\"><font size=\"7\" color=\"maroon\">";

#  print SLIDE "Conclusion</h1>\n";

#  print SLIDE "</font>\n</body>\n</html>\n";

#}

 

close(SLIDE);

 

 

################

## End of main

################

 

sub starthndl {

  my ($xp, $el, %atts) = @_;

 

  return unless ($in_slideshow or $el eq 'dictionnaire');

 

  unless ($in_slideshow) {

    $in_slideshow = $xp->depth + 1;

    return;

  }

 

  if ($Mode) {

 

    if ($Mode eq 'pass') {

      $Markedup_Text .= "\n" . $xp->recognized_string;

    }

    elsif ($Mode eq 'object') {

      push(@Ostack, $Object);

 

      $Object = {_Atts    => \%atts,

                         _Text    => ''

                        };

      bless $Object, "Slideobj::$el";

    }

 

    # skip does nothing

    return;

  }

 

  unless ($after_head) {

    if ($el eq 'head') {

      $after_head = 1;

      start_mode($xp, 'object');

 

      push(@closure_stack, $closure);

      $closure =

            sub {

              my ($xp, $text) = @_;

 

              unless (defined $text) {

               

                $header = $Object;

              }

            };

 

      return;

    }

 

    die "The head element must be the first thing in the slideshow";

  }

 

 

  my $new_closure;

 

  my $subname = "Slideshow::$el";

 

  if (defined &$subname) {

    no strict 'refs';

 

    &$subname($xp, $el, \%atts, \$new_closure);

  }

  else {

    $body .= $xp->recognized_string;

    $new_closure =

      sub {

            my ($xp, $text) = @_;

           

            if (defined $text) {

              $body .= $text;

            }

            else {

              $body .= "</$el>";

            }

      };

  }

 

  push(@closure_stack, $closure);

  $closure = $new_closure;

}  # End starthndl

 

sub endhndl {

  my ($xp, $el) = @_;

 

  return unless $in_slideshow;

 

  my $lev = $xp->depth;

 

  if ($lev == $in_slideshow - 1) {

    $in_slideshow = 0;

    $xp->finish;

    return;

  }

 

  if ($Mode_level == $lev) {

   

    if ($Mode eq 'pass') {

      &$closure($xp, $Markedup_Text)

            if (defined $closure);

    }

 

    $Mode = $Mode_level = 0;

  }

 

  if ($Mode) {

    if ($Mode eq 'pass') {

      $Markedup_Text .= "</$el>";

    }

    elsif ($Mode eq 'object') {

      my $this = $Object;

      if (2 == keys %$this) {

            $this = $this->{_Text};

      }

 

      $Object = pop(@Ostack);

 

      my $slot = $Object->{$el};

      if (defined $slot) {

            if (ref($slot) eq 'ARRAY') {

              push(@$slot, $this);

            }

            else {

              $Object->{$el} = [$slot, $this];

            }

      }

      else {

            $Object->{$el} = $this;

      }

    }

 

    return;

  }

 

  &$closure($xp)

    if defined $closure;

 

  $closure = pop(@closure_stack);

}  # End endhndl

 

 

sub start_mode {

  my ($xp, $mode) = @_;

 

  if ($mode eq 'pass') {

    $Text = '';

    $Markedup_Text = '';

  }

  elsif ($mode eq 'object') {

    $Object = {_Atts => undef,

                   _Text => undef

                  };

  }

 

  $Mode = $mode;

  $Mode_level = $xp->depth;

}  # End start_mode

 

sub sgml_escape {

  my ($str) = @_;

 

  $str =~ s/\&/\&amp;/g;

  $str =~ s/</\&lt;/g;

  $str =~ s/>/\&gt;/g;

 

  $str;

}  # End sgml_escape

 

sub text {

  my ($xp, $data) = @_;

 

  return unless $in_slideshow;

 

  if ($Mode ) {

 

    if ($Mode eq 'pass') {

      my $safe = sgml_escape($data);

 

      $Text .= $safe;

      $Markedup_Text .= $safe;

    }

    elsif ($Mode eq 'object') {

      $Object->{_Text} .= $data

            if $data =~ /\S/;

    }

 

    return;

  }

 

  &$closure($xp, sgml_escape($data))

    if (defined $closure);

 

}  # End text

 

sub slidename {

  my ($num) = @_;

 

  sprintf("slide%03d.html", $num);

}  # End slidename

 

################################################################

 

package Slideshow;                

 

sub article {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  my $prev = $slide_number ? slidename($slide_number) : $index;     

  $slide_number++;

  my $fn = slidename($slide_number);                       

  my $next = slidename($slide_number + 1);

 

  open(SLIDE, ">$dir/$fn") or die "Couldn't open $fn for writing:\n$!";

 

  print SLIDE $prolog;

 

  undef @slidetitle;

  $body = '';

  $inlist = 0;

 

  $$ncref =

    sub {

      my ($xp, $text) = @_;

 

      if (defined $text) {

            #ignore text at slide toplevel

      }

      else {

            $Titles[$slide_number] =  $slidetitle[0];

 

            print SLIDE "<title>$slidetitle[0]</title>\n";

            print SLIDE $style_link;

            print SLIDE "</head>\n";

 

            if ($dostyle) {

              print SLIDE "<body>\n";

            }

            else {

              print SLIDE "<body background=\"back.gif\">\n";

            }

     

            my $navbar = "<table class=\"navbar\" width=\"100%\"><tr>\n";

            $navbar .= "<td align=\"left\"><a href=\"$prev\"><<< <<<</td>\n";                    #liens page précedente dico 2002

            $navbar .= "<td align=\"center\"><a href=\"$index\">Accueil</td>\n";                 #liens page d'acceuil

            $navbar .= "<td align=\"right\"><a href=\"$next\">>>> >>></td>\n";                  #liens page suivante

            $navbar .= "</table>\n";

 

            print SLIDE "$navbar<hr>";

 

            #print SLIDE "$navbar\n";

            #if ($dostyle) {

              print SLIDE "<img class=\"logo\" src=\"logo_fleur2.gif\">\n";                           #  imprime logo image.gif

              print SLIDE "<h1 class=\"title\">$slidetitle[1]</h1>\n";

            #}

            #else {

            #  print SLIDE "<table width=\"100%\"><tr><td>\n";

            #  print SLIDE "<img src=\"logo_fin.gif\">\n";

            #  print SLIDE "<td align=\"left\">";

            #  print SLIDE "<h1>";

            #  print SLIDE "<font size=\"7\" color=\"maroon\">$slidetitle[1]";            #  couleur de font

            #  print SLIDE "</font></h1>\n";

            #  print SLIDE "<tr><td colspan=\"2\">\n";

            #  print SLIDE "<table width=\"80%\"><tr><td>\n";

            #  print SLIDE "<font size=\"+2\">\n";

            #}

            print SLIDE $body;

 

            if ($inlist) {

              print SLIDE "\n</$inlist>\n";

            }

 

            unless ($dostyle) {

              print SLIDE "\n</font>\n";

              print SLIDE "\n</table></table>\n";

            }

 

 

            #print SLIDE "</body>\n</html>\n";

            close(SLIDE);

      }

    };

}  # End ARTICLE

 

 

sub forme {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  if ($xp->current_element eq 'article') {

    start_mode($xp, 'pass');

 

    $$ncref =

      sub {

            $slidetitle[0] = $Text;

            $slidetitle[1] = $Markedup_Text;

      };

  }

}  # End FORME

 

 

sub grammaire {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  if ($inlist and $inlist ne 'ul') {

    $body .= "\n</$inlist>\n";

    $inlist = 0;

  }

 

 # unless ($inlist) {

 #   $body .= "\n<ul>\n";

 # }

 

  $inlist = 0;

 

  if ($dostyle) {

    $body .= "\n<div class=\"defterm\">";

  }

  else {

    $body .= "\n";

  }

 

  $$ncref =

    sub {

      my ($xp, $text) = @_;

 

      if (defined $text) {

            $text =~ s/\s+/ /g;

            $body .= $text;

      }

      else {

            if ($dostyle) {

              $body .= "</div>";

            }

            $body .= "\n</$inlist>\n"

              if $inlist;

            $inlist = 'ul';

      }

    };

 

}  # End GRAMMAIRE

 

 

sub item {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  if ($inlist and $inlist ne 'ul') {

    $body .= "\n</$inlist>\n";

    $inlist = 0;

  }

 

  unless ($inlist) {

    $body .= "\n<ul>\n";

  }

 

  $inlist = 0;

 

  if ($dostyle) {

    $body .= "\n<div class=\"item\">";

  }

  else {

    $body .= "\n<font face=\"monospace\">";

  }

 

  $$ncref =

    sub {

      my ($xp, $text) = @_;

 

      if (defined $text) {

            $text =~ s/\s+/ /g;

            $body .= $text;

      }

      else {

            if ($dostyle) {

              $body .= "</div>";

            }

            else {

              $body .= "</font>";

            }

            $body .= "\n</$inlist>\n"

              if $inlist;

            $inlist = 'ul';

      }

    };

}  # End item

 

 

sub def {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  if ($inlist and $inlist ne 'dl') {

    $body .= "\n</$inlist>\n";

    $inlist = 0;

  }

 

  unless ($inlist) {

    $body .= "\n<dl>\n";

  }

 

  $inlist = 0;

 

  if ($dostyle) {

    $body .= "<dt><span class=\"defterm\">";

    $body .=  $attref->{term} ."</span></dt>\n";

    $body .= "<dd><div class=\"def\">\n";

  }

  else {

    $body .= "<dt><font face=\"monospace\" color=\"blue\" style=\"bold\">";

    $body .= $attref->{term} . "</font></dt>\n";

    $body .= "<dd>";

  }

 

  $$ncref =

    sub {

      my ($xp, $text) = @_;

 

      if (defined $text) {

            $text =~ s/\s+/ /g;

            $body .= $text;

      }

      else {

            if ($dostyle) {

              $body .= "</div></dd>\n";

            }

            $body .= "\n</$inlist>\n"

              if $inlist;

            $inlist = 'dl';

      }

    };

}  # End def

 

 

sub acception {

  package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  $body .= "<p>\n";

 

  $$ncref =

    sub {

      my ($xp, $text) = @_;

 

     if (defined $text) {

            $text =~ s/\s+/ /g;

            $body .= $text;

      }

    };

}  # End ACCEPTION

 

sub book {

 package main;

 

  my ($xp, $el, $attref, $ncref) = @_;

 

  start_mode($xp, 'object');

 

  $$ncref =

    sub {

      my ($xp) = @_;

 

      if ($dostyle) {

            $body .= "<span class=\"booktitle\">";

            $body .= sgml_escape($Object->{title});

            $body .= "</span>\n";

      }

      else {

            $body .= "<cite>" . sgml_escape($Object->{title}) . "</cite>\n";

      }

    };

}

 

---------------------------->     Dico2002.xml par l'ordre alphabétique

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE dictionnaire SYSTEM "dico2002.dtd">

 

<dictionnaire>

 

<head>

<title>Dictionnaire numerique</title>

<where>ILPGA TAL P3 2002</where>

<author>M.Stachura</author>

<org>ILPGA P3</org>

</head>

 

# A

 

<article>

<forme>admirer</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de admiration et de mirer</etymologie>

<acception>

<definition>regarder avec etonnement son reflet</definition>

</acception>

</article>

 

<article>

<forme>air</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>expression des traits</definition>

<exemple>un air modeste</exemple>

</acception>

</article>

 

<article>

<forme>aluminium</forme>

<grammaire>

<categorie>n. m.</categorie>

</grammaire>

<acception>

<definition>metal blanc, brillant, leger</definition>

</acception>

</article>

 

<article>

<forme>alveole</forme>

<grammaire>

<categorie>n. f.</categorie>

</grammaire>

<acception>

<definition>cellule d'une abeille</definition>

</acception>

</article>

 

<article>

<forme>amanite</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<acception>

<definition>champignons a lames, croissant en ete et en automne dans les bois.</definition>

</acception>

</article>

 

 <article>

<forme>ammonite</forme>

<grammaire>

<categorie>n. f.</categorie>

</grammaire>

<acception>

<definition>fossile caracteristique de l'ere secondaire</definition>

</acception>

</article>

 

<article>

<forme>anticonstitutionnellement</forme>

<grammaire>

<categorie>adv.</categorie>

</grammaire>

<acception>

<definition>constitutionnellement contre</definition>

</acception>

</article>

 

<article>

<forme>apiquer</forme>

<grammaire>

<categorie>verbe</categorie>

</grammaire>

<acception>

<definition>executer un pique en avion</definition>

</acception>

<acception>

<definition>faire une piqure</definition>

</acception>

</article>

 

<article>

<forme>assiege</forme>

<grammaire>

<categorie>n. et adj.</categorie>

</grammaire>

<acception>

<definition>personne assise sur un siege</definition>

</acception>

<acception>

<definition>siege ou on peut s'asseoir</definition>

</acception>

</article>

 

<article>

<forme>argentille</forme>

<grammaire>

<categorie>adjectif</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>d'argent et de gentille</etymologie>

<acception>

<definition>fille qui pense qu'etre gentille, c'est distribuer tout son argent</definition>

</acception>

</article>

 

<article>

<forme>aubepine</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<acception>

<definition>une aube faite en pomme de pin</definition>

</acception>

<acception>

<definition>une broche en forme d'aube</definition>

</acception>

</article>

 

<article>

<forme>avocassier</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<acception>

<definition>arbre tropical qui appartient a un avocat</definition>

</acception>

<acception>

<definition>arbre tropical qui donne des avocats</definition>

</acception>

</article>

 

<article>

<forme>aye-aye</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>personne qui souffre</definition>

</acception>

</article>

 

# B

 

<article>

<forme>babouche</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<acception>

<definition>partie inferieure de la bouche</definition>

</acception>

</article>

 

<article>

<forme>bidingue</forme>

<grammaire>

<categorie>n. et adj.</categorie>

</grammaire>

<etymologie>de bilingue et de dingue</etymologie>

<acception>

<definition>qui delire en deux langues</definition>

</acception>

<acception>

<definition>bilingue fou.</definition>

</acception>

</article>

 

<article>

<forme>bidule</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>qui se gratte le ventre avec une spatule</definition>

</acception>

</article>

 

<article>

<forme>bifolle</forme>

<grammaire>

<categorie>n. et adj.</categorie>

</grammaire>

<acception>

<definition>une vache folle</definition>

<exemple>j'ai vu une bifolle faire de la bicyclette dans le champ du voisin.</exemple>

</acception>

</article>

 

<article>

<forme>bouledogue</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>chien qui se met en boule</definition>

<exemple>j'ai vu un bouledogue devaler la pente a toute vitesse</exemple>

</acception>

</article>

 

<article>

<forme>bouleguer</forme>

<grammaire>

<categorie>v.</categorie>

<precisions>transitif.</precisions>

</grammaire>

<acception>

<definition>remuer, bouger,deplacer</definition>

</acception>

</article>

 

# C

 

<article>

<forme>cafardeux</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<etymologie>de cafard et de deux</etymologie>

<acception>

<definition>couple qui s'ennuie</definition>

</acception>

</article>

 

<article>

<forme>caferu</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de cafe et de feru</etymologie>

<acception>

<definition>personne dont le bonheur extreme est de boire des cafes a longueur de journee</definition>

</acception>

</article>

 

<article>

<forme>calut</forme>

<grammaire>

<categorie>adj.</categorie>

<precisions> - au feminin : calude.</precisions>

</grammaire>

<acception>

<definition>fou, idiot</definition>

</acception>

</article>

 

<article>

<forme>canartichaut</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de canard et d'artichaut</etymologie>

<acception>

<definition>canard qui ne se nourrit que d'artichauts</definition>

</acception>

</article>

 

<article>

<forme>chaloupe</forme>

<grammaire>

<categorie>nom</categorie>

<precisions>f.</precisions>

</grammaire>

<acception>

<definition>loupe en forme de chat</definition>

</acception>

<acception>

<definition>un chat qui est rate</definition>

</acception>

</article>

 

<article>

<forme>chamelon</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>un champ de melons</definition>

</acception>

</article>

 

<article>

<forme>champetre</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<acception>

<definition>terrain couvert de pierres</definition>

</acception>

</article>

 

<article>

<forme>chateau</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de chat et d'eau</etymologie>

<acception>

<definition>chat qui adore l'eau</definition>

</acception>

</article>

 

<article>

<forme>choctobre</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<etymologie>de choc et d'octobre</etymologie>

<acception>

<definition>designe l'etat depressif dans lequel se retrouvent de nombreuses personnes face a l'arrivee de la grisaille et du froid</definition>

</acception>

</article>

 

<article>

<forme>convaincu</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<acception>

<definition>idiot qui a subi une defaite</definition>

</acception>

</article>

 

<article>

<forme>coufle</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>fou, idiot</definition>

<exemple>j'ai trop mange,j'en ai attrape un coufle</exemple>

</acception>

</article>

 

<article>

<forme>culminer</forme>

<grammaire>

<categorie>verbe</categorie>

</grammaire>

<acception>

<definition>un cul detruit par une mine</definition>

</acception>

<acception>

<definition>posterieur d'un mineur</definition>

</acception>

</article>

 

<article>

<forme>curateur</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>personne insatisfaite qui nettoie</definition>

</acception>

<acception>

<definition>pretre qui n'est pas content</definition>

</acception>

</article>

 

# D

 

<article>

<forme>devarier</forme>

<grammaire>

<categorie>v.</categorie>

<precisions>transitif.</precisions>

</grammaire>

<acception>

<definition>rendre fou,derouter, troubler, bouleverser</definition>

</acception>

<acception>

<definition>egarer.</definition>

</acception>

</article>

 

<article>

<forme>dindillioner</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de dindon et de tortiller</etymologie>

<acception>

<definition>se remuer comme un dindon</definition>

</acception>

</article>

 

# E

 

<article>

<forme>empegue</forme>

<grammaire>

<categorie>adj.</categorie>

</grammaire>

<acception>

<definition>colle</definition>

</acception>

<acception>

<definition>embarrasse, empetre, empote</definition>

</acception>

<acception>

<definition>ivre, saoul</definition>

</acception>

</article>

 

<article>

<forme>enchanteuse</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de enchanter et de chanteuse</etymologie>

<acception>

<definition>chanteuse qui, par la beaute de sa voix, enchante, procure du bonheur a son public</definition>

<exemple>Celine Dion est consideree par certains comme une enchanteuse</exemple>

</acception>

</article>

 

<article>

<forme>eperon</forme>

<grammaire>

<categorie>n. m.</categorie>

</grammaire>

<acception>

<definition>arceau de metal termine par un ergot ou une molette, que le cavalier fixe a la partie posterieure de ses bottes pour piquer son cheval et activer son allure</definition>

</acception>

</article>

 

<article>

<forme>escoubilles</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.plur</precisions>

</grammaire>

<acception>

<definition>balayures, ordures, dechets</definition>

</acception>

<acception>

<definition>decharge</definition>

</acception>

</article>

 

<article>

<forme>essence</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>lat.esse. etre</etymologie>

<acception>

<definition>ce qui constitue la nature d'un etre, d'une chose</definition>

<exemple>essence divine</exemple>

</acception>

</article>

 

<article>

<forme>et</forme>

<grammaire>

<categorie>conj.</categorie>

</grammaire>

<acception>

<definition>indique la liaison (addition, opposition, consequence) entre deux mots ou deux propositions de meme fonction,</definition>

</acception>

</article>

 

<article>

<forme>etoiceller</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de etoile et de etinceler</etymologie>

<acception>

<definition>briller comme une etoile</definition>

</acception>

</article>

 

<article>

<forme>euh!</forme>

<grammaire>

<categorie>interj.</categorie>

<precisions>onomat.</precisions>

</grammaire>

<acception>

<definition>marque l'etonnement, le doute, l'embaras</definition>

</acception>

</article>

 

<article>

<forme>evection</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de election et de eviction</etymologie>

<acception>

<definition>elections annulees lors de scandales politiques</definition>

</acception>

</article>

 

<article>

<forme>eventail</forme>

<grammaire>

<categorie>n. m.</categorie>

<precisions> - pluriel : eventails</precisions>

</grammaire>

<etymologie />

<acception>

<definition>instrument portatif qui se replie sur lui meme et avec lequel on s'evente</definition>

</acception>

</article>

 

<article>

<forme>extraverti</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<acception>

<definition>couleur hyper verte</definition>

</acception>

<acception>

<definition>qui n'est pas mur du tout</definition>

</acception>

</article>

 

# F

 

<article>

<forme>facteuro</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de facteur et d'euro</etymologie>

<acception>

<definition>facteur que l'on paye deja en euros</definition>

</acception>

</article>

 

<article>

<forme>fermenter</forme>

<grammaire>

<categorie>verbe</categorie>

</grammaire>

<acception>

<definition>dire un mensonge courageusement</definition>

</acception>

<acception>

<definition>mentir a la ferme</definition>

</acception>

</article>

 

<article>

<forme>fliction</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de fiction et de flic</etymologie>

<acception>

<definition>histoire policiere</definition>

</acception>

</article>

 

<article>

<forme>floconer</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de flocon et de braconner</etymologie>

<acception>

<definition>ramasser des flocons dans des endroits proteges</definition>

</acception>

</article>

 

# H

 

<article>

<forme>hanacteur</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de hamac et d'acteur</etymologie>

<acception>

<definition>acteur qui aime prendre quelque repos dans un hamac</definition>

</acception>

</article>

 

# L

 

<article>

<forme>licence</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de licence et de licencier</etymologie>

<acception>

<definition>le licencie  fait une licence</definition>

</acception>

</article>

 

<article>

<forme>limitipline</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de limite et de discipline</etymologie>

<acception>

<definition>c'est la limite de la discipline</definition>

</acception>

</article>

 

# M

 

<article>

<forme>machine</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<acception>

<definition>machine qui est dans le vent</definition>

</acception>

</article>

 

<article>

<forme>masteguer</forme>

<grammaire>

<categorie>v.</categorie>

<precisions>transitif.</precisions>

</grammaire>

<acception>

<definition>mecher</definition>

</acception>

</article>

 

<article>

<forme>mechintosh</forme>

<grammaire>

<categorie>adjectif</categorie>

</grammaire>

<etymologie>de mec et de mackintosh</etymologie>

<acception>

<definition>se dit d'un homme dont les capacites intellectuelles s'apparenteraient aux proprietes d'un ordinateur</definition>

</acception>

</article>

 

<article>

<forme>meublestylvention</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de meuble, de style et de invention</etymologie>

<acception>

<definition>c'est l'invention de nouveaux styles de meubles</definition>

</acception>

</article>

 

# P

 

<article>

<forme>pedarogue</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de pedagogue et de rogue</etymologie>

<acception>

<definition>professeur aigri par l'indifference de ses classes</definition>

<exemple>j'en ai connu, des pedarogues (c. allegre, ministre de l'education)</exemple>

</acception>

</article>

 

<article>

<forme>pendentif</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>collier en cheveux</definition>

</acception>

</article>

 

<article>

<forme>pied</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<acception>

<definition>partie du corps</definition>

</acception>

<acception>

<definition>pied de vigne.</definition>

</acception>

</article>

 

<article>

<forme>poutounejer</forme>

<grammaire>

<categorie>v.</categorie>

<precisions>transitif.</precisions>

</grammaire>

<acception>

<definition>se faire beaucoup de baisers</definition>

</acception>

</article>

 

# R

 

<article>

<forme>rousiguer</forme>

<grammaire>

<categorie>v.</categorie>

<precisions>transitif.</precisions>

</grammaire>

<acception>

<definition>ronger,grignoter</definition>

<exemple>on lui donnait une cuillere en bois qu'il mordait,une croute de pain dur a rousiguer (leonce chaleil)</exemple>

</acception>

</article>

 

# T

 

<article>

<forme>tortilinguer</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>f.</precisions>

</grammaire>

<etymologie>de torticolis et de langue</etymologie>

<acception>

<definition>se tordre la langue de mechancete</definition>

</acception>

</article>

 

<article>

<forme>tracteur</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de trac et de comedien</etymologie>

<acception>

<definition>comedien saisi par l'angoisse au moment d'entrer en scene</definition>

</acception>

</article>

 

# V

 

<article>

<forme>vacheval</forme>

<grammaire>

<categorie>n.</categorie>

<precisions>m.</precisions>

</grammaire>

<etymologie>de vache et de cheval</etymologie>

<acception>

<definition>animal ne des amours d'une vache et d'un cheval</definition>

</acception>

</article>

 

</dictionnaire>


> Retour au Perl et XML - Maitrise Tal 2002 <