Wicri:Dilib source, module MediaWiki, MediaWikiExtractSources : Différence entre versions

De Wicri Outils
imported>Jacques Ducloy
(Test)
imported>Jacques Ducloy
m (15 révisions importées)
 
(8 révisions intermédiaires par le même utilisateur non affichées)
Ligne 3 : Ligne 3 :
 
==Fichier MediaWikiExtractSources.lex==
 
==Fichier MediaWikiExtractSources.lex==
 
===Code source===
 
===Code source===
 +
{{Avertissement|texte=Ce code pose une difficulté syntaxique par la présence de balise « source » qui ne doivent pas être codées explicitement pour ne pas être analysées comme telles par le parser MediaWiki.}}
 
<source lang="c"  dilib:file="MediaWiki/MediaWikiExtractSources.lex">
 
<source lang="c"  dilib:file="MediaWiki/MediaWikiExtractSources.lex">
 
/*  -*- coding: utf-8 -*-  */
 
/*  -*- coding: utf-8 -*-  */
Ligne 19 : Ligne 20 :
 
%START FILE_NAME
 
%START FILE_NAME
 
%START COPY
 
%START COPY
 +
 +
int getopt();
 +
extern char *optarg;
  
 
  char *root;
 
  char *root;
 +
 
%%
 
%%
 
<JUMP>.                            ;
 
<JUMP>.                            ;
Ligne 31 : Ligne 36 :
 
<SOURCE_TAG>">"                    BEGIN WIKI;
 
<SOURCE_TAG>">"                    BEGIN WIKI;
 
<SOURCE_TAG>.                      ;
 
<SOURCE_TAG>.                      ;
<SOURCE_TAG>"dilib:file="[\"]      {printf("<?dilib  file=\"%s\"", root); BEGIN FILE_NAME;}
+
<SOURCE_TAG>"dilib:file="[\"]      {printf("<?dilib  file=\"%s", root); BEGIN FILE_NAME;}
 
<FILE_NAME>[\"].+\n                {printf("\" ?>\n"); BEGIN COPY;}
 
<FILE_NAME>[\"].+\n                {printf("\" ?>\n"); BEGIN COPY;}
 
<FILE_NAME>.                        ECHO;
 
<FILE_NAME>.                        ECHO;
Ligne 38 : Ligne 43 :
 
<COPY>\n                            ECHO;             
 
<COPY>\n                            ECHO;             
 
%%
 
%%
main()
+
main(int argc, char **argv)
 
{
 
{
   root="testImport/";
+
  int cod_arg;
 +
 
 +
   root="";
 +
 
 +
  while ((cod_arg = getopt(argc,argv,"r:"))!=EOF)
 +
    {
 +
      switch(cod_arg)
 +
{
 +
case 'r':
 +
  root=optarg;
 +
  break;
 +
}
 +
    }
 +
 
 
   BEGIN JUMP;
 
   BEGIN JUMP;
 
   yylex();
 
   yylex();
 +
  exit (0);
 
}
 
}
 
</source>
 
</source>
 +
 
==Test==
 
==Test==
 
===Jeu de test===
 
===Jeu de test===
<pre>
+
Ce jeu présente une difficulté syntaxique matérialisée par quelques remplacement de caractères « < » par des séquences « <= ».
<source>
+
<source lang="xml" dilib:quoteLt="=" dilib:file="MediaWiki/Data/testMediaWikiExtractSources.xml">
 +
<=page>
 +
    <title>Wicri:Dilib source, module CharSet</title>
 +
<=?dilib start wiki ?>
 +
Cette page introduit les sources du module [[Dilib, module CharSet]].
 +
<=source lang="make">
 +
#
 +
#  Module  : CharSet
 +
#  Fichier : CharSet.mk
 +
<=/source>
 +
[[Catégorie:Dilib source]]
 +
<<!-- -->?dilib end wiki ?>
 +
</text>
 +
</revision>
 +
<=/page>
 
</source>
 
</source>
</pre>
 
  
 
[[Catégorie:Dilib source|MediaWikiExtractSources]]
 
[[Catégorie:Dilib source|MediaWikiExtractSources]]

Version actuelle datée du 16 juin 2017 à 19:04

Cette page introduit les sources relatifs à la commande MMediaWikiExtractSources du module MediaWiki.

Fichier MediaWikiExtractSources.lex

Code source

Attention : Ce code pose une difficulté syntaxique par la présence de balise « source » qui ne doivent pas être codées explicitement pour ne pas être analysées comme telles par le parser MediaWiki.
/*   -*- coding: utf-8 -*-  */
/*
  Dilib Version :
  Date : V0.5.46 (7 septembre 2013
  Module MediaWiki, 
  Commande : MediaWikiExtractSources
  Fichier source géré par Wicri/Outils, page : 
       Wicri:Dilib source, module MediaWiki, MediaWikiExtractSources
*/

%START JUMP
%START WIKI
%START SOURCE_TAG
%START FILE_NAME
%START COPY

 int getopt();
 extern char *optarg;

 char *root;

%%
<JUMP>.                             ;
<JUMP>\n                            ;
<JUMP>"\n<?dilib start wiki ?>\n"   {BEGIN WIKI;}
<WIKI>.                             ;
<WIKI>\n                            ;
<WIKI>"\n<source"                   {BEGIN SOURCE_TAG;}
<WIKI>"<?dilib start wiki ?>"       BEGIN JUMP;
<SOURCE_TAG>">"                     BEGIN WIKI;
<SOURCE_TAG>.                       ;
<SOURCE_TAG>"dilib:file="[\"]       {printf("<?dilib  file=\"%s", root); BEGIN FILE_NAME;}
<FILE_NAME>[\"].+\n                 {printf("\" ?>\n"); BEGIN COPY;}
<FILE_NAME>.                        ECHO;
<COPY>^"</"source">"[ ]*\n          BEGIN WIKI;
<COPY>.                             ECHO;
<COPY>\n                            ECHO;            
%%
main(int argc, char **argv)
{
  int cod_arg;

  root="";

  while ((cod_arg = getopt(argc,argv,"r:"))!=EOF)
    {
      switch(cod_arg) 
	{
	case 'r':
	  root=optarg;
	  break;
	}
    }

  BEGIN JUMP;
  yylex();
  exit (0);
}

Test

Jeu de test

Ce jeu présente une difficulté syntaxique matérialisée par quelques remplacement de caractères « < » par des séquences « <= ».

<=page>
    <title>Wicri:Dilib source, module CharSet</title>
<=?dilib start wiki ?>
Cette page introduit les sources du module [[Dilib, module CharSet]].
<=source lang="make">
#
#   Module  : CharSet
#   Fichier : CharSet.mk
<=/source>
[[Catégorie:Dilib source]]
<<!-- -->?dilib end wiki ?>
</text>
</revision>
<=/page>