- #!/usr/bin/perl 
-   
- use locale; 
- use warnings; 
- use strict; 
- ##lancer du répertoire wims : bin/oedfdoc.pl 
-   
- ### for "editor" 
- my %name ; 
- $name{'explanation'}{'fr'}="Explication" ; 
- $name{'example'}{'fr'}="Exemple" ; 
- $name{'special'}{'fr'}="Méthodes spéciales<br/(énoncé)"; 
- $name{'syntax'}{'fr'}="Syntaxe"; 
- $name{'slib'}{'fr'}='SLIB'; 
- $name{'anstype'}{'fr'}='Types de réponses' ; 
-   
- $name{'explanation'}{'en'}="Explanation" ; 
- $name{'example'}{'en'}="Example" ; 
- $name{'special'}{'en'}="Special method<br/>(statement)"; 
- $name{'syntax'}{'en'}="Syntax"; 
- $name{'slib'}{'en'}='SLIB'; 
- $name{'anstype'}{'en'}='Answer types' ; 
-   
- $name{'explanation'}{'cn'}="Explanation" ; 
- $name{'example'}{'cn'}="Example" ; 
- $name{'special'}{'cn'}="Special method<br/>(statement)"; 
- $name{'syntax'}{'cn'}="Syntax"; 
- $name{'slib'}{'cn'}='SLIB'; 
- $name{'anstype'}{'cn'}='Answer types' ; 
-   
- $name{'explanation'}{'nl'}="Explanation" ; 
- $name{'example'}{'nl'}="Example" ; 
- $name{'special'}{'nl'}="Special method<br/>(statement)"; 
- $name{'syntax'}{'nl'}="Syntax"; 
- $name{'slib'}{'nl'}='SLIB'; 
- $name{'anstype'}{'nl'}='Answer types' ; 
-   
- $name{'explanation'}{'it'}="Spiegazione" ; 
- $name{'example'}{'it'}="Esempio" ; 
- $name{'special'}{'it'}="Metodi speciali<br/>(enunciato)"; 
- $name{'syntax'}{'it'}="Sintassi"; 
- $name{'slib'}{'it'}='SLIB'; 
- $name{'anstype'}{'it'}='Tipi di risposte' ; 
-   
- $name{'explanation'}{'es'}="Explicación" ; 
- $name{'example'}{'es'}="Ejemplo" ; 
- $name{'special'}{'es'}="Métodos especiales<br/>(enunciado)"; 
- $name{'syntax'}{'es'}="Sintaxis"; 
- $name{'slib'}{'es'}='SLIB'; 
- $name{'anstype'}{'es'}='Tipos de Respuestas' ; 
-   
- $name{'explanation'}{'ca'}="Explicació" ; 
- $name{'example'}{'ca'}="Exemple" ; 
- $name{'special'}{'ca'}="Mètodes especials<br/>(enunciat)"; 
- $name{'syntax'}{'ca'}="Sintaxi"; 
- $name{'slib'}{'ca'}='SLIB'; 
- $name{'anstype'}{'ca'}='Tipus de Respostes' ; 
- my $DOSSIER="public_html/scripts/js/editor/scripts_1/bd_js"; 
- my $DOSSIER_edit_area="public_html/scripts/js/edit_area/reg_syntax"; 
- my $DOSSIER_wims="public_html/modules/help/wimsdoc.en/cmd/"; 
- my $slibdir="public_html/scripts/slib/"; 
- my $helpdir="public_html/scripts/help"; 
-   
- my @Lang=('en','fr','cn','nl','it','ca', 'es') ; 
-   
- my @table=('if', 'oefparm0', 'oefparm1', 'oefparm2', 'oefparm3', 'oefparm4', 'oefparm5','oefcommand') ; 
-   
- ### for "editor" 
- my (%Begin, %End) ; 
- $Begin{'if'}= "  " ; 
- $End{'if'}= "  " ; 
- $Begin{'oefparm0'}= '\\\\' ; 
- $End{'oefparm0'}= "\{  =  \}" ; 
- $Begin{'oefcommand'}= '\\\\' ; 
- $End{'oefcommand'}= "\{  \}" ; 
- $Begin{'anstype'}='' ; 
- $End{'anstype'}='' ; 
- ##$Begin{'anstype'}='\\\\answer\{  \}\{  \}\{type=' ; 
- ##$End{'anstype'}='\}\{option=  \}\{ weight= \}\n' ; 
- for my $tag ("oefparm4") { 
-    $Begin{$tag}= "" ; 
-    $End{$tag}= "\(  \)" ; 
- } 
- for my $tag ("oefparm2", "oefparm3") { 
-    $Begin{$tag}= " " ; 
-    $End{$tag}= " " ; 
- } 
- for my $tag ( "oefparm1") { 
-    $Begin{$tag}= "" ; 
-    $End{$tag}= "" ; 
- } 
-   
- for my $tag ("oefparm5") { 
-    $Begin{$tag}= '\\\\' ; 
-    $End{$tag}= "" ; 
- } 
-   
- $Begin{'slib'}= "slib(" ; 
- $End{'slib'}= " )" ; 
-   
- my @phtml=("expandlines", "imagefill", "help", "tabs2lines", "rename", "tooltip", "codeinput", "imageinput", "mathmlinput", "drawinput") ; 
- for my $tag (@phtml) { 
-    $Begin{$tag}= "\\special\{" ; 
-    $End{$tag}= " \}" ; 
- } 
- ### end for "editor" 
- ### begin for "edit area" 
- my $EDIT_AERA_OEF_begin = "editAreaLoader.load_syntax['wimsoef'] = { 
-     'QUOTEMARKS' : {1: ' \" '} 
-         ,'KEYWORD_CASE_SENSITIVE' : true 
-         ,\'KEYWORDS\' : {" ; 
- my $EDIT_AERA_begin = "editAreaLoader.load_syntax['wims'] = { 
-     'QUOTEMARKS' : {1: ' \" '} 
-         ,'KEYWORD_CASE_SENSITIVE' : true 
-         ,\'KEYWORDS\' : {" ; 
- my $EDIT_AERA_DOC_begin = "editAreaLoader.load_syntax['wimsdoc'] = { 
-     'QUOTEMARKS' : {1: ' \" '} 
-         ,'KEYWORD_CASE_SENSITIVE' : true 
-         ,\'KEYWORDS\' : {" ; 
-   
- my $EDIT_AERA_OEF_end = "} 
-         ,'OPERATORS' : [ 
-                 '*', '+', '-', '/', '^', ':=', '<', '=', '>','..' 
-         ] 
-         ,'DELIMITERS' : [ 
-                 '(', ')', '[', ']','{','}','??','??' 
-         ] 
-         ,'REGEXPS' : 
-         { 
-                 'oefvariables' : { 'search': '()(\\\\\\\\\\\\w+)()', 
-                         'class' : 'oefvariables', 
-                         'modifiers' : 'g', 'execute' : 'after' }, 
-                 'record' : { 'search': '(\\n)(:)()', 
-                         'class' : 'record', 
-                         'modifiers' : 'g', 'execute' : 'after' }, 
-                 'question' : { 'search': '(\\\\?\\\\?)([^\\\\?]+)(\\\\?\\\\?)', 
-                         'class' : 'question', 
-                         'modifiers' : 'g', 'execute' : 'before' } 
-         } 
-         ,'STYLES' : { 
-                 'COMMENTS': 'color: #0000CD;' 
-                 ,'QUOTESMARKS': 'color: #6381F8;' 
-                 ,'KEYWORDS' : { 
-                         'oefcommand' : 'color: #FF9933;' 
-                         ,'oefparm0' : 'color: #FF9933;' 
-                         ,'oefparm1' : 'color: #985717;' 
-                         ,'oefparm2' : 'color: #336600;' 
-                         ,'oefparm3' : 'color: #336600;' 
-                         ,'oefparm4' : 'color: #3399FF;' 
-                         ,'oefparm5' : 'color: #330099;' 
-                         ,'iff' : 'color: #FF00FF;' 
-                         ,'slib' : 'color: #60CA33;' 
-                         ,'anstype' : 'color: #3399FF;' 
-                         ,'special' : 'color: #3399FF;' 
-                         } 
-                 ,'OPERATORS' : 'color: #FF00FF;' 
-                 ,'DELIMITERS' : 'color: #60CA00;' 
-                 ,'REGEXPS': { 
-                         'oefvariables' : 'color: #FF3A6E;' 
-                         ,'question' : 'color:#985717;' 
-                 } 
-         } 
- };" ; 
- my $EDIT_AERA_DOC_end = "} 
-         ,'OPERATORS' : [ 
-                 '*', '+', '-', '/', '^', ':=', '<', '=', '>','..' 
-         ] 
-         ,'DELIMITERS' : [ 
-                 '(', ')', '[', ']','{','}','??','??' 
-         ] 
-         ,'REGEXPS' : 
-         { 
-                 'docvariables' : { 'search': '()(\\\\\\\\\\\\w+)()', 
-                         'class' : 'docvariables', 
-                         'modifiers' : 'g', 'execute' : 'after' }, 
-                 'record' : { 'search': '(\\n)(:)()', 
-                         'class' : 'record', 
-                         'modifiers' : 'g', 'execute' : 'after' }, 
-                 'question' : { 'search': '(\\\\?\\\\?)([^\\\\?]+)(\\\\?\\\\?)', 
-                         'class' : 'question', 
-                         'modifiers' : 'g', 'execute' : 'before' } 
-         } 
-         ,'STYLES' : { 
-                 'COMMENTS': 'color: #0000CD;' 
-                 ,'QUOTESMARKS': 'color: #6381F8;' 
-                 ,'KEYWORDS' : { 
-                         'text' : 'color: #FF9933;' 
-                         ,'iff' : 'color: #FF00FF;' 
-                         ,'slib' : 'color: #60CA33;' 
-                         } 
-                 ,'OPERATORS' : 'color: #FF00FF;' 
-                 ,'DELIMITERS' : 'color: #60CA00;' 
-                 ,'REGEXPS': { 
-                         'docvariables' : 'color: #FF3A6E;' 
-                         ,'question' : 'color:#985717;' 
-                 } 
-         } 
- };" ; 
- my $EDIT_AERA_end = "} 
-         ,'OPERATORS' :[ 
-                 '*', '+', '-', '/', '^', ':=', '<', '=', '>','//','\$' 
-         ] 
-         ,'DELIMITERS' :[ 
-                 '(', ')', '[', ']','{','}','\\(', '\\)','??','??' 
-         ], 
-         'REGEXPS' : 
-         { 
-                 'wimsvariables' : { 'search': '(\\\\\$)([a-zA-Z0-9_]*)()', 
-                         'class' : 'wimsvariables', 
-                         'modifiers' : 'g', 'execute' : 'before' }, 
-                 'record' : { 'search': '(\\n)(:)()', 
-                         'class' : 'record', 
-                         'modifiers' : 'g', 'execute' : 'after' }, 
-         } 
-         ,'STYLES' : { 
-                 'COMMENTS': 'color: #AAAAAA;' 
-                 ,'QUOTESMARKS': 'color: #6381F8;' 
-                 ,'KEYWORDS' : { 
-                         'wimscommand' : 'color: #3399FF;' 
-                         ,'compare' : 'color: #FF00FF;' 
-                         ,'wimslogiciel' : 'color: yellow;' 
-                         } 
-                 ,'OPERATORS' : 'color: green;' 
-                 ,'DELIMITERS' : 'color: #60CA00;', 
-                 'REGEXPS': { 
-                         'wimsvariables' : 'color: #FF3A6E;' 
-                         ,'tex' : 'color:red;' 
-                 } 
-         } 
- };" ; 
- ### end for "editarea" 
- ##### generation 
-   
- my $debut_oef=1; 
- my $debut_wims=1; 
- my $EDIT_AERA_OEF=$EDIT_AERA_OEF_begin ; 
- my $EDIT_AERA=$EDIT_AERA_begin ; 
- my $EDIT_AERA_DOC=$EDIT_AERA_DOC_begin ; 
-   
- for my $lang (@Lang) { 
-    print "oefdoc.pl $lang\n" ;  system(`mkdir -p $DOSSIER/$lang`) ; 
-    slib($lang) ; 
-    for my $t (@table) { tableau($t,$lang) ; } 
-    phtml("$helpdir/$lang/special",$lang,"special",@phtml) ; 
-    $EDIT_AERA_OEF .= "\n, \'special\' : \n[ \'\\embed\', \'\\special{" . join ("\', '\\special{", @phtml) . "\']" if ($lang =~ /en/) ; 
-    anstype($lang) ; 
-   
- }; 
- $EDIT_AERA_OEF .=$EDIT_AERA_OEF_end ; 
- $EDIT_AERA_DOC .=$EDIT_AERA_OEF_end ; 
- if ($debut_wims==1) {$EDIT_AERA .= "\n" ; $debut_wims=0 } else {$EDIT_AERA .= "\n," }; 
- $EDIT_AERA .= " \'wimscommand' : \n[ \' " . join ("\', \'",-  wimscommand ($DOSSIER_wims)) . "']";
 
-   
- $EDIT_AERA .=$EDIT_AERA_end ; 
- out( "$DOSSIER_edit_area/wimsoef.js",  $EDIT_AERA_OEF) ; 
- out( "$DOSSIER_edit_area/wims.js",  $EDIT_AERA) ; 
- out( "$DOSSIER_edit_area/wimsdoc.js",  $EDIT_AERA_DOC) ; 
-   
- sub anstype { my ($lang)=@_ ; 
-  my %HASH ; 
-  my %HELP ; 
-  open (- IN , "$helpdir/$lang/reply.phtml") ;
 
-    while (<IN>) {my $line = $_; my @t=(); 
-     next if ($line =~ /^\!set/) ; 
-     next if !($line) ; 
-     if ($line =~ /\\\n/) { 
-       my @L= split( ',', $line) ; 
-       my $t1 = $L[0] ; $t1=~ s/\|/,/ ; 
-       if ($ta[1]) {@t=split(' ',$ta[1]) ; } else {@t=($L[0])}; 
-       for my $tag (@t) { $HASH{$tag} = cleanup3($L[1] . ' ' . (($L[2]) ? $L[2]: '')); $HELP{$tag}=$ta[0] ;} 
-      } 
-    } 
-  my $text =''; 
-  my $Text = "var anstypename='$name{'anstype'}{$lang}';\n" ; 
-    my $var=join ("$End{'anstype'}\',\'$Begin{'anstype'}", sort keys(%HASH)) ; 
-    $Text .="var anstype = [ '$Begin{'anstype'}$var$End{'anstype'}' ];\n" ; 
-    for my $tag (keys(%HASH)){ 
-      $text .= begin_js("$Begin{'anstype'}$tag$End{'anstype'}") 
-            . title_js($tag,'title') 
-            . middle_js($HASH{$tag},'out', $lang) 
-            . end_js("<a target=\"wims_help\" href=\"wims.cgi?lang=$lang&module=adm%2Fcreatexo&modtoolhelp=yes&+special_parm=reply,$HELP{$tag}\">++>></a>") ; 
-    } 
-    $Text .= function_js($text,'anstype') ; 
-    $EDIT_AERA_OEF .= "\n, \'anstype\' : \n[ \' type=" . join ("\', 'type=", sort keys(%HASH)) . "\']"  if $lang=~/- en / ;
 
-    out ("$DOSSIER/$lang/anstype" . "_bd\.js", $Text) ; 
-   
- } 
-   
- sub slib {my ($lang)= @_ ; 
-  my $Text = "var slibname='$name{'slib'}{$lang}';\n" ; 
-  my @list_keyword=(); 
-  my %HASH ; 
-  my $slibdirhelp="$helpdir/$lang/slib"; 
- for my $file (glob("$slibdir/*/*")) { 
- #for example file=$slibdir/function/integrate 
-  my $text=''; my $tag=''; 
-  my $filehelp="$slibdirhelp/$file" ; 
-  if (!open(- IN , "$filehelp")) { $filehelp="$slibdirhelp/en/$file"; }
 
-  if (!open(- IN , "$filehelp")) { $filehelp="$slibdir/$file"; }
 
-  for my $fff ("$slibdir/$file",$filehelp) { 
-    while (<IN>) {my $line=$_; 
-     if  ($line=~/^ *!exit/) { last ;} 
-     if ($line=~ s/^ *slib_(\w+) *=//){ 
-      $tag=$1; 
-      $line=cleanup($line) ; 
-      if ($tag=~/parms/) { 
-        $HASH{nbparm}{$file}=$line; 
-      } else 
-      { 
-        $HASH{$tag}{$file}=$line ; 
-      } 
-      } else { 
-        next if !($tag) ; 
-        if ($tag=~/parms/) { 
-         next if ($line) ; 
-         my @parm=split(",", $line) ; 
-         if (($parm[1]) && ($parm[1] =~ s/- \\ //)) {
 
-           $HASH{$tag}{$file}.= cleanup3($parm[1]) . ","; 
-          } 
-          else 
-          {  $HASH{$tag}{$file}= (($HASH{$tag}{$file})? $HASH{$tag}{$file}:' ') . (($parm[1]) ? cleanup3($parm[1]):'') ; 
-          } 
-        # $HASH{$tag}{$file} .= "\[$parm[0]\]" if ($parm[0]); 
-        } 
-        else { 
-          $HASH{$tag}{$file} .= cleanup($line); 
-          $tag='' if !($line=~/\\$/) ; 
-        } 
-      } 
-    } 
-  } 
-   push @list_keyword, $file if ($HASH{'title'}{$file}); 
-  $tag=''; 
-  } 
-  my $var=join ("$End{'slib'}\',\'$Begin{'slib'}", @list_keyword) ; 
-  $Text .="var slib = [ '$Begin{'slib'}$var$End{'slib'}' ];\n" ; 
-  my $text='' ; 
-  for my $file (@list_keyword) { 
-   next if !($HASH{'title'}{$file}) ; 
-   my @examples=split("\\\\\\\\",$HASH{'example'}{$file}) if ($HASH{'example'}{$file}); 
-   my $example=''; 
-   for my $ex (@examples) { 
-     next if !($ex) ; 
-     $example .="<div class=\"title\">$name{'example'}{$lang}</div><code><font color=\"red\">slib($file</font> $ex <font color=\"red\">)</font></code>" ; 
-   } 
-   
-   $text.=begin_js("$Begin{'slib'}$file$End{'slib'}") 
-            . title_js($HASH{'title'}{$file},'title') 
-            . syntax_js("<font color=\"red\">slib($file</font> " . ($HASH{'parms'}{$file}  ? $HASH{'parms'}{$file} : '') . " <font color=\"red\">)</font>",$lang) 
-            . middle_js($HASH{'out'}{$file},'out',$lang) 
-            . middle1_js (cleanup($example),'',$lang) 
-            . end_js("<a target=\"wims_help\" href=\"wims.cgi?lang=$lang&module=adm%2Fcreatexo&modtoolhelp=yes&special_parm=slib&+slibdet=$file#slib\">++>></a>") ; 
-  $text =cleanup2($text) ; 
-  } 
-  $Text .= function_js($text,'slib') ; 
-   out ("$DOSSIER/$lang/slib" . "_bd\.js",$Text) ; 
-   if ($lang=~/en/) { 
-     if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; 
-   $EDIT_AERA_OEF .= "\'slib\' : \n[ \'" . join ("\', '", @list_keyword) . "\']"   ; 
-   } 
- } 
- ##special methode 
- sub phtml {my ($dir,$lang,$f,@file)=@_ ; 
-  my $cities=$f; 
-  my %HASH = ( 
-   example       => {}, 
-   signification => {}, 
-   syntaxe => {}, 
-   ) ; 
-  my $text=''; 
-  my $tag=''; 
-  my $Text="var specialname= '$name{'special'}{$lang}';\n"; 
-  for my $meth (@file) { 
-   #print $meth . "\n"; 
-     open (IN, "$dir/$meth.phtml"); 
-     while (<IN>) {my $line=$_; 
-     next if !($line) ; 
-     if ($line =~ /^:/) { 
-     chomp $line; 
-        $tag=$line; $tag=~ s/://; 
-     } 
-     else 
-     { 
-      $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; 
-     } 
-   } 
- } 
-  my $var=join (" }\', \'\\\\special{", @phtml) ; 
-  ### cas particulier 
-  my $meth='embed'; 
-  my $embd='\\\\embed{r  }' ; 
-    open (IN, "$helpdir/$lang/embedans.phtml"); 
-     while (<IN>) {my $line=$_; 
-     next if !($line) ; 
-     if ($line =~ /^:/) { 
-     chomp $line; 
-        $tag=$line; $tag=~ s/://; 
-     } 
-     else 
-     { 
-      $HASH{$tag}{$meth} .= cleanup($line) . "\\n" ; 
-     } 
-   } 
-   close IN ; 
-   $Text .= "var special= [ '$embd', '\\\\special{$var }'];\n" ; 
-   $text = begin_js("$embd") 
-         . syntax_js("\\\\embed{r i, option }",$lang) 
-         . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang) : '') 
-         . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') 
-         . end_js("") ; 
-   ## fin cas particulier embed 
-   for my $meth (@phtml) { 
-    $text .= begin_js("\\\\special{$meth }") 
-            . syntax_js("\\\\special{$meth }",$lang) 
-            . (($HASH{'signification'}{$meth}) ? middle_js($HASH{'signification'}{$meth},'title',$lang ) : '') 
-            . (($HASH{'example'}{$meth}) ? middle1_js ($HASH{'example'}{$meth},'title',$lang) : '') 
-            . end_js("") ; 
-   
-   } 
-   $Text .= function_js($text,'special') ; 
-   out ("$DOSSIER/$lang/$f" . "_bd\.js",$Text) ; 
-   
- } 
- ##file : nom du fichier, n nombre de lignes dans chaque record 
- sub tableau { my ($file, $lang) = @_ ; 
- ### mettre $file à la place ensuite 
-   my $file1="$helpdir/$lang/$file"; 
-   my $cities=$file ; 
-   if ($file =~ /if/){ $cities .= 'f' } ; 
-   my @list_keyword; 
-   my @List_keyword; 
-   my $text=''; 
- ##bug s'il n'y a pas de documentation 
-   open (IN, $file1); 
-   my $cnt=0 ;my $nl; 
-   my $Text = '' ; 
-   while (<IN>) { my $line=$_; 
-    chomp $line ; 
-    next if !($line) ; 
-    next if ($line=~ /^(!!)/); 
-    if ($line =~ /!changeto/){ die "$file1 should be translated"}; 
-    if ($line =~ s /^://) { 
-      $cnt ++ ; 
-      if ($cnt == 1 ) { $Text = "var $cities" . "name= '" . cleanup3($line) . "';\n ";  } 
-      next if $cnt < 3 ; 
-      $line =~ s/:// ; 
-      if($text) { $text .= end_js("") ;} 
-        if ($text) {$text .= begin_js($Begin{$file} . $line . $End{$file}) ;} 
-         else 
-        { $text = begin_js($Begin{$file} . $line . $End{$file}) ; }; 
-      push @list_keyword, $line; 
-      $line =~ s/(\(|\)|\.|,|\[|\]| )//g ; 
-      push @List_keyword, $line; 
-      $nl=0; 
-      } 
-      else  { 
-        next if $cnt<3 ; if ($line =~ /^(\d)/) { my $arg=$1 ; next } 
-        $nl ++ ; 
-        $line = cleanup($line); if ($line =~ /help=/) { $line = '' ;} 
-        if ($nl==1 && !($file=~/oefcommand/)){ 
-          if ($line) { $text .= syntax_js($line,$lang) ; } 
-         } 
-         else { 
-          if ($line) { $text .= middle_js($line,1,$lang) ;  } 
-            } 
-          } 
-    } 
-   close IN ; 
-          $text .= end_js("") ; 
-   my $var=join ("$End{$file}\', \'$Begin{$file}", @list_keyword) ; 
-   $Text .="var $cities= [ \'$Begin{$file}$var$End{$file}\' ];\n" 
-   . function_js($text,$cities) ; 
-   out ("$DOSSIER/$lang/$cities" . "_bd\.js",$Text) ; 
-    if ($lang=~/en/){ 
-      if ($debut_oef==1) { $EDIT_AERA_OEF .= "\n" ; $debut_oef=0 } else {$EDIT_AERA_OEF .= "\n," }; 
-      $EDIT_AERA_OEF .= " \'$cities\' : \n[ \'" . join ("\', '", @List_keyword) . "\']" ; 
-      if ($cities=~ /(iff|oefparm4)/) { 
-        if ($debut_wims==1) {$EDIT_AERA .= "\n" ; $debut_wims=0 } else {$EDIT_AERA .= "\n," }; 
-        push @List_keyword, ('or', 'and') ; 
-        $EDIT_AERA .= " \'compare\' : \n[ \'" . join ("\', '", @List_keyword) . "\']"  ; 
-      } 
-   } 
- } 
-   
- sub wimscommand { my ($d) = @_; 
-   my @wimslist = () ; 
-   for my $file (glob("$d/*")) { 
-     $file =~ s,$d/,, ; 
-     $file =~ s,.phtml,, ; 
-     push @wimslist, $file ; 
-   } 
-   push @wimslist, ("endif","next","else") ; 
-   @wimslist ; 
- } 
- ### subroutine for "editor" 
- sub begin_js {my ($t)= @_ ; 
- "case \'$t\' \:\nchaine_aide=" 
- } 
- sub syntax_js {my ($line,$lang)=@_ ; 
-  "\'<div class=\"syntax\"><div class=\"title\">$name{'syntax'}{$lang}</div><code>$line</code></div>\'+\n" 
- } 
- sub middle_js {my ($line,$tag,$lang)=@_ ; if(!$line) {$line='' ;} 
-  if ($tag) { $line="<div class=\"title\">$name{'explanation'}{$lang}</div>$line" } 
-  "\'<div class=\"explication\">$line</div>\'+\n"; 
- } 
-   
- sub middle1_js {my ($line,$tag,$lang)=@_ ; 
-  if ($tag) { $line="<div class=\"title\">$name{'example'}{$lang}</div>$line" } 
-  "\'<div class=\"exemple\">$line</div>\'+\n"; 
- } 
-   
- sub title_js {my ($line,$tag)=@_ ; 
-  "\'<div class=\"title\">$line</div>\'+\n"; 
- } 
-   
- sub end_js {my ($text)=@_ ; 
-   "\'$text\' ; return chaine_aide; 
-            break; 
-         ////******************** \n 
-         " 
- } 
- sub function_js {my ($text,$tag)=@_ ; 
-  "function $tag" . "fun(instruction){ 
-     switch(instruction) 
-         { 
-         $text 
-         } 
- }" 
- } 
-   
- sub cleanup { my ($txt)=@_ ; 
-   return $txt if !($txt) ; 
-   $txt=~ s/\\\b/\/g ; 
-   $txt=~ s/\\\(/\(/g ; 
-   $txt=~ s/\\\)/\)/g ; 
-   $txt=~ s,\\,\\\\,g ; 
-   $txt=~ s/'/\\'/g ; 
-   $txt=~ s/\n/ /g ; 
-   return $txt ; 
- } 
- sub cleanup2 {my ($txt)=@_ ; 
-   $txt=~ s/\\\\ / /g if ($txt) ; 
-   return $txt; 
- } 
- sub cleanup3 {my ($txt)=@_ ; 
-   $txt=~ s/'/\\'/g if ($txt); 
-   return $txt; 
- } 
-   
-   
- sub htmltex { my ($TEXT) = @_ ; 
- $TEXT =~ s/<tt>\\/\\ttb{/g; 
- $TEXT =~ s/_/\\_/g; 
- $TEXT =~ s/\^/\\^{}/g; 
- $TEXT =~ s/\&/\\\&/g; 
- $TEXT =~ s/<(tt)>/\\text$1\{/g; 
- $TEXT =~ s/<(em|i)>/\\textit\{/g; 
- $TEXT =~ s/<b>/\\textbf\{/g; 
- $TEXT =~ s'</(b|tt|em|i)>'}'g; 
- $TEXT =~ s/<br\s*\/?>/\\par /g; 
- $TEXT =~ s/<p>/\\par /g; 
- $TEXT =~ s/<\/p>/\\par /g; 
- $TEXT =~ s/<ul>/\\begin{itemize}\n /g; 
- $TEXT =~ s/<\/ul>/\\end{itemize}\n /g; 
- $TEXT =~ s/<ol>/\\begin{enumerate}\n /g; 
- $TEXT =~ s/<\/ol>/\\end{enumerate}\n /g; 
- $TEXT =~ s/<li>/\\item /g; 
- $TEXT =~ s/<\/li>/\n /g; 
- $TEXT =~ s/<\/center>/\\end{center}\n /g; 
- $TEXT =~ s/<center>/\\begin{center}\n /g; 
- $TEXT =~ s/<\/center>/\n /g; 
- $TEXT =~ s/<center>/\n /g; 
- $TEXT =~ s/<table[^>]*>/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline /g; 
- $TEXT =~ s/<\/table>/\\\\ \\hline \\end{tabular} \\end{table}/g; 
- $TEXT =~ s/\$table_tr/\\\\\\hline /g; 
- $TEXT =~ s/\$table_hdtr/\\\\ \\hline/g; 
- $TEXT =~ s/\$table_header/\\begin{table}\\begin{tabular}{*{1}{p{30mm}}|*{1}{p{50mm}|}|*{1}{p{50mm}|}}\\hline/g ; 
- $TEXT =~ s/\$table_end/\\end{tabular}\\end{table}/g; 
- #$TEXT =~ s/<caption>/\\caption\{ /g; 
- #$TEXT =~ s/<\/caption>/\}\n /g; 
- $TEXT =~ s/<tr[^>]*>/\\\\/g; 
- $TEXT =~ s/<\/tr>/\\\\/g; 
- $TEXT =~ s/<(td|th) colspan=(\d)( nowrap)?>/\\multicolumn{$2}{|c|}{/g; 
- $TEXT =~ s/<\/(td|th)>/&/g; 
- $TEXT =~ s/<(td|th)[^>]*>/&/g; 
- $TEXT =~ s/&&/&/g; 
- $TEXT =~ s/\_/_/g; 
- $TEXT =~ s/&/\\&/g; 
- $TEXT =~ s'\\\\&'\\\\'g; 
- $TEXT =~ s/ / /g; 
- $TEXT =~ s/é/é/g; 
- $TEXT =~ s/è/è/g; 
- $TEXT =~ s/à/à/g; 
- $TEXT =~ s/ê/ê/g; 
- $TEXT =~ s/</</g; 
- $TEXT =~ s/<(H|h)3>/\\subsection{/g; 
- $TEXT =~ s/<\/(H|h)3>/}/g; 
- $TEXT =~ s/<(H|h)4>/\\subsubsection{/g; 
- $TEXT =~ s/<\/(H|h)4>/}/g; 
- $TEXT =~ s/<(H|h)2>/\\section{/g; 
- $TEXT =~ s/<\/(H|h)2>/}/g; 
- $TEXT =~ s/>/>/g; 
- $TEXT =~ s/\#//g; 
- $TEXT =~ s/<hr>/\\hrule/g; 
- $TEXT =~ s/<pre>/\\begin{verbatim}/g; 
- $TEXT =~ s/<\/pre>/\\end{verbatim}/g; 
- $TEXT =~ s/\n{3,}/\n\n/g; 
- $TEXT =~ s/<a[^>]+>([^<]+)<\/a>/\\url{$1}/g; 
-   
- $TEXT ; 
- } 
-   
- sub out { my ($bloc, $text) = @_ ; 
-   open  (OUT, ">$bloc") || die "peut pas créer $bloc"; 
-   print OUT "<!-- Automatically generated by bin/oefdoc.pl -->\n" . $text ; close OUT ; 
- } 
-   
- sub sortuniq { 
-   my $prev = "not $_[0]"; 
-   grep { $_ ne $prev && ($prev = $_, 1) } sort @_; 
- } 
-