Wicri:Dilib source, module MediaWiki, MediaWikiExtractSources
De Wicri Outils
Révision datée du 9 septembre 2013 à 21:02 par imported>Jacques Ducloy
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>