Wicri:Dilib source, module MediaWiki, MediaWikiExtractSources : Différence entre versions
De Wicri Outils
imported>Jacques Ducloy (→Code source) |
imported>Jacques Ducloy m (15 révisions importées) |
||
(11 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 | + | <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=" | + | 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== | ||
+ | ===Jeu de test=== | ||
+ | Ce jeu présente une difficulté syntaxique matérialisée par quelques remplacement de caractères « < » par des séquences « <= ». | ||
+ | <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> | ||
+ | |||
+ | [[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>