CINXE.COM
Voir la source de Module:FParser — Wikipédia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available" lang="fr" dir="ltr"> <head> <meta charset="UTF-8"> <title>Voir la source de Module:FParser — Wikipédia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-disabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-not-available";var cookie=document.cookie.match(/(?:^|; )frwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":true,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat": "dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"a2d12220-bbbe-409d-92b8-b92e4dfdce50","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:FParser","wgTitle":"FParser","wgCurRevisionId":193916028,"wgRevisionId":0,"wgArticleId":10448042,"wgIsArticle":false,"wgIsRedirect":false,"wgAction":"edit","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:FParser","wgRelevantArticleId":10448042,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["editextendedsemiprotected"],"wgRestrictionMove":["editextendedsemiprotected"],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0, "wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgCodeEditorCurrentLanguage":"lua","wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options" :"loading","ext.codeEditor.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.charinsert.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.codeEditor","ext.scribunto.edit","mediawiki.action.edit.collapsibleFooter","site","mediawiki.page.ready","skins.vector.js","ext.centralNotice.geoIP","ext.charinsert","ext.gadget.ArchiveLinks","ext.gadget.MonobookToolbarStandard","ext.gadget.Wdsearch","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=ext.charinsert.styles%7Cext.codeEditor.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=fr&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="noindex,nofollow,max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Voir la source de Module:FParser — Wikipédia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//fr.m.wikipedia.org/wiki/Module:FParser"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (fr)"> <link rel="EditURI" type="application/rsd+xml" href="//fr.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://fr.wikipedia.org/wiki/Module:FParser"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr"> <link rel="alternate" type="application/atom+xml" title="Flux Atom de Wikipédia" href="/w/index.php?title=Sp%C3%A9cial:Modifications_r%C3%A9centes&feed=atom"> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="codeeditor-loading skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Module_FParser rootpage-Module_FParser skin-vector-2022 action-edit"><a class="mw-jump-link" href="#bodyContent">Aller au contenu</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principal" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principal</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principal</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">masquer</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_principal" title="Accueil général [z]" accesskey="z"><span>Accueil</span></a></li><li id="n-thema" class="mw-list-item"><a href="/wiki/Portail:Accueil"><span>Portails thématiques</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Page_au_hasard" title="Affiche un article au hasard [x]" accesskey="x"><span>Article au hasard</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Contact"><span>Contact</span></a></li> </ul> </div> </div> <div id="p-Contribuer" class="vector-menu mw-portlet mw-portlet-Contribuer" > <div class="vector-menu-heading"> Contribuer </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-aboutwp" class="mw-list-item"><a href="/wiki/Aide:D%C3%A9buter"><span>Débuter sur Wikipédia</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Aide:Accueil" title="Accès à l’aide"><span>Aide</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_de_la_communaut%C3%A9" title="À propos du projet, ce que vous pouvez faire, où trouver les informations"><span>Communauté</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes" title="Liste des modifications récentes sur le wiki [r]" accesskey="r"><span>Modifications récentes</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikip%C3%A9dia:Accueil_principal" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="l'encyclopédie libre" src="/static/images/mobile/copyright/wikipedia-tagline-fr.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Sp%C3%A9cial:Recherche" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Rechercher sur Wikipédia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Rechercher</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Rechercher sur Wikipédia" aria-label="Rechercher sur Wikipédia" autocapitalize="sentences" title="Rechercher sur Wikipédia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Spécial:Recherche"> </div> <button class="cdx-button cdx-search-input__end-button">Rechercher</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Outils personnels"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Modifier l'apparence de la taille, de la largeur et de la couleur de la police de la page" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Apparence" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Apparence</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_fr.wikipedia.org&uselang=fr" class=""><span>Faire un don</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Module%3AFParser&returntoquery=action%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire." class=""><span>Créer un compte</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Module%3AFParser&returntoquery=action%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o" class=""><span>Se connecter</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Plus d’options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Outils personnels" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Outils personnels</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu utilisateur" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_fr.wikipedia.org&uselang=fr"><span>Faire un don</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Module%3AFParser&returntoquery=action%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Créer un compte</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Module%3AFParser&returntoquery=action%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Se connecter</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages pour les contributeurs déconnectés <a href="/wiki/Aide:Premiers_pas" aria-label="En savoir plus sur la contribution"><span>en savoir plus</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_contributions" title="Une liste des modifications effectuées depuis cette adresse IP [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_discussions" title="La page de discussion pour les contributions depuis cette adresse IP [n]" accesskey="n"><span>Discussion</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <h1 id="firstHeading" class="firstHeading mw-first-heading">Voir la source de Module:FParser</h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Cet article n’existe que dans cette langue. Ajouter l’article pour d’autres langues." > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">Ajouter des langues</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Espaces de noms"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Module:FParser" title="Afficher la page du module [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="new vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Discussion_module:FParser&action=edit&redlink=1" rel="discussion" class="new" title="Discussion au sujet de cette page de contenu (page inexistante) [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Modifier la variante de langue" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Affichages"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="vector-tab-noicon mw-list-item"><a href="/wiki/Module:FParser"><span>Lire</span></a></li><li id="ca-viewsource" class="selected vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:FParser&action=edit" title="Cette page est protégée. Vous pouvez toutefois en visualiser la source. [e]" accesskey="e"><span>Voir le texte source</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Module:FParser&action=history" title="Historique des versions de cette page [h]" accesskey="h"><span>Voir l’historique</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Outils" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Outils</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Outils</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">masquer</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Plus d’options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="vector-more-collapsible-item mw-list-item"><a href="/wiki/Module:FParser"><span>Lire</span></a></li><li id="ca-more-viewsource" class="selected vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:FParser&action=edit"><span>Voir le texte source</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Module:FParser&action=history"><span>Voir l’historique</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Général </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_li%C3%A9es/Module:FParser" title="Liste des pages liées qui pointent sur celle-ci [j]" accesskey="j"><span>Pages liées</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Suivi_des_liens/Module:FParser" rel="nofollow" title="Liste des modifications récentes des pages appelées par celle-ci [k]" accesskey="k"><span>Suivi des pages liées</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Aide:Importer_un_fichier" title="Téléverser des fichiers [u]" accesskey="u"><span>Téléverser un fichier</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_sp%C3%A9ciales" title="Liste de toutes les pages spéciales [q]" accesskey="q"><span>Pages spéciales</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:FParser&action=info" title="Davantage d’informations sur cette page"><span>Informations sur la page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:UrlShortener&url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3AFParser%26action%3Dedit"><span>Obtenir l'URL raccourcie</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:QrCode&url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DModule%3AFParser%26action%3Dedit"><span>Télécharger le code QR</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Dans d’autres projets </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q120869437" title="Lien vers l’élément dans le dépôt de données connecté [g]" accesskey="g"><span>Élément Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Apparence</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">masquer</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> </div> <div id="contentSub"><div id="mw-content-subtitle">← <a href="/wiki/Module:FParser" title="Module:FParser">Module:FParser</a></div></div> <div id="mw-content-text" class="mw-body-content"><p>Vous n’avez pas la permission de modifier cette page, pour les raisons suivantes : </p> <ul class="permissions-errors"><li class="mw-permissionerror-protectedpagetext"><table cellspacing="0" cellpadding="2" class="mw-alerte plainlinks protect-niv-editextendedsemiprotected"> <tbody><tr> <td rowspan="2" align="center" width="64px"><span typeof="mw:File"><a href="/wiki/Wikip%C3%A9dia:Semi-protection_%C3%A9tendue" title="Page en semi-protection étendue"><img alt="Page en semi-protection étendue" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Extended-semi-protection-shackle-frwiki.svg/42px-Extended-semi-protection-shackle-frwiki.svg.png" decoding="async" width="42" height="60" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/72/Extended-semi-protection-shackle-frwiki.svg/63px-Extended-semi-protection-shackle-frwiki.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/72/Extended-semi-protection-shackle-frwiki.svg/85px-Extended-semi-protection-shackle-frwiki.svg.png 2x" data-file-width="512" data-file-height="725" /></a></span></td> <td style="line-height:1.3em; padding-top:9px; vertical-align:top; font-size:100%;"><div style="font-size:120%; align:center; font-weight:bold; width:100%; text-align:center;"><a href="/wiki/Wikip%C3%A9dia:Semi-protection_%C3%A9tendue" title="Wikipédia:Semi-protection étendue">Cette page est en semi-protection étendue</a>.</div><br />Cela veut dire que seuls les <a href="/wiki/Aide:Statuts_des_utilisateurs#Utilisateur_dont_les_modifications_sont_vérifiées_automatiquement" title="Aide:Statuts des utilisateurs">utilisateurs enregistrés depuis plus de trois mois et comptant 500 contributions</a> peuvent la modifier.<br /><br /> </td> </tr> <tr> <td style="text-align: center;"> <hr /> <p><small style="line-height:1.6em">Vous pouvez vous <a href="/wiki/Sp%C3%A9cial:Connexion" title="Spécial:Connexion">connecter</a> ou <a href="/wiki/Sp%C3%A9cial:Connexion/signup" title="Spécial:Connexion/signup">créer un compte</a> • Proposer une modification en <a href="/w/index.php?title=Discussion_module:FParser&action=edit&redlink=1" class="new" title="Discussion module:FParser (page inexistante)">page de discussion</a> ou <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Wikip%C3%A9dia:Demande_d%27intervention_sur_une_page_prot%C3%A9g%C3%A9e&action=edit&section=new&preload=Modèle:Préchargement_pour_requête_d'intervention_sur_une_page_protégée&preloadtitle=%7B%7Ba%27%7CModule:FParser%7D%7D">à un administrateur</a> • Consulter le <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Sp%C3%A9cial:Log&type=protect&page=Module:FParser">journal des protections de cette page</a> pour les raisons et la durée de la protection.</small> </p> </td></tr></tbody></table></li><li class="mw-permissionerror-globalblocking-blockedtext-range"><b>Votre adresse IP fait partie d’une plage qui a été <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Global_blocks" class="extiw" title="m:Special:MyLanguage/Global blocks">bloquée sur tous les wikis de la Fondation Wikimédia</a>.</b> <p>Le blocage a été effectué par <a href="/wiki/Utilisateur:Jon_Kolbert" title="Utilisateur:Jon Kolbert">Jon Kolbert</a>. Le motif invoqué est <i><a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/NOP" class="extiw" title="m:Special:MyLanguage/NOP">Open proxy/Webhost</a>: See the <a href="https://meta.wikimedia.org/wiki/WM:OP/H" class="extiw" title="m:WM:OP/H">help page</a> if you are affected </i>. </p> <ul><li>Début du blocage : 27 août 2023 à 16:12</li> <li>Expiration du blocage : 27 août 2028 à 16:12</li></ul> <p>Votre adresse IP actuelle est 8.222.208.146. La plage bloquée est 8.222.128.0/17. </p><p>Veuillez inclure tous les détails ci-dessus dans toutes les demandes que vous effectuerez. Si vous pensez avoir été bloqué(e) par erreur, vous pouvez trouver plus d’informations et d’instructions dans la politique globale <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/No_open_proxies" class="extiw" title="m:Special:MyLanguage/No open proxies">Pas de serveurs mandataires ouverts</a>. </p> Sinon, pour discuter du blocage, veuillez <a href="https://meta.wikimedia.org/wiki/Steward_requests/Global" class="extiw" title="m:Steward requests/Global">publier une demande de révision sur Méta-Wiki</a>. Vous pouvez également envoyer un courriel à la file des <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/Stewards" class="extiw" title="m:Special:MyLanguage/Stewards">coordinateurs</a> <a href="https://meta.wikimedia.org/wiki/Special:MyLanguage/VRT" class="extiw" title="m:Special:MyLanguage/VRT">VRT</a> à <kbd>stewards@wikimedia.org</kbd>, en incluant tous les détails ci-dessus.</li></ul><hr /> <p>Vous pouvez voir et copier le contenu de cette page. </p><textarea readonly="" accesskey="," id="wpTextbox1" cols="80" rows="25" style="" class="mw-editfont-monospace" lang="en" dir="ltr" name="wpTextbox1">local lexer = {} local parser = {} --[[ These parser functions are generic functions to build a parser. It works with "Lexing" and "Parsing" functions. The parser is initialized by the "parse" function, who generates a "state" object that must be a parameter of each parsing functions, and eventually returns the main node of the AST if everything goes well * Lexing functions have one parameter, the state of the parser, and returns a modified state if they could find the terminals they are supposed to recognize and or nothing if the parse fails. * Parsing functions always have a state as unique parameter. They can be divided into * Generic one, written in this module that corresponds that helps to build a parser but don't generate nodes of the AST themselves, like "alternative", "chain", "star" or "plus" * "chain" corresponds to the concatenation operation in a grammar. for example a function that parses the EBNF rule twelve = "1", "2" ; will be generated by chain{lex_char("1"), lex_char("2")} * "alternative" corresponds to the alternative operation in a grammar, for example a function that parses the EBNF rule digit_excluding_zero = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ; will be written alternative{lex_char("1"), lex_char("2"), lex_char("3"), lex_char("4"), lex_char("5"), lex_char("6"), lex_char("7"), lex_char("8"), lex_char("9")} * User written one, that are functions that must generate a node of the AST as a "node" attribute of the "state" object. To do that they must use attributes of the state object filled by the generic one like * "parsed", the string parsed by the last lexing function, * "acc", the list of nodes that are generated by the function that are passed to function that iterates their call namely "star" and "plus" They return nothing if the parse fails, or the state of the last state returned by a lexer function called if they don't. Other functions are * maybe : a function to avoid checking if the state is nil every time : if the state is in a fail state, it does not apply the parsing or lexing function. Maybe allows to chain the application of lexing and parsing function easily. attribute of the "newstate" object to be able to access the "acc" or "node" of the previous object in a chain, for example. * idop : a function that takes a function as parameter that is used to compute an action on the current state in a chain of parsing function, mainly modifying variables in the closure. Functions passed to idop returns nothing. Usable for example for logging. * statemodop : a function that takes a function as parameter ; who computes a node in the AST from the state and the variables of the closure and typically adding it to the state. Those functions have the same signatures than parsing functions, but typically they do not parse anything. --]] -------------------------------------------------------------------------------- -- lexer -------------------------------------------------------------------------------- local function lex_regex(state, regex) local res = string.match(state.newstate.str, "^" .. regex) if res then local newstate = {} local len = string.len(res) newstate.str = state.newstate.str:sub(len + 1) newstate.pos = state.newstate.pos + len return { ['lexed'] = res, ["newstate"] = newstate, ["node"] = state.node -- forwarding node in case it's not consumed -- case of lexing a closing parenthesis after the node creation. -- this is to avoid to have to create a closure variable } else return nil end end lexer.lex_regex = lex_regex local function lex_epsilon(state) return lex_regex(state, "") end --[[ Tests: p.parse("a", p.chain{p.lexer.lex_epsilon, p.lex_char("a"),p.lexer.lex_epsilon}) --]] lexer.lex_epsilon = lex_epsilon local lex_char = function(char) return function(state) return lex_regex(state, char) end end -- tested with "p.parse("/", p.lex_char('/'))" lexer.lex_char = lex_char function lexer.open_parenthesis(state) return lex_regex(state, "[(]") end function lexer.close_parenthesis(state) return lex_regex(state, "[)]") end function lexer.lex_integer(state) return lex_regex(state, "[0-9]+") end function lexer.eat_blanks(state) return lex_regex(state,' *') end parser.lexer = lexer ------------------------------------------------------- -- generic parser property ---------------------------------------------------------- local function maybe(func) return function(state) if state then return func(state) end end end parser.maybe = maybe local function accumulate(aggregate_func) return function(state) return { ["newstate"]=state.newstate, ["node"]= aggregate_func(state.acc) } end end parser.accumulate = accumulate local function map_node(map_func) return function(state) if state then return { ["newstate"] = state.newstate, ["node"] = map_func(state.node) } end end end parser.map_node = map_node local function idop(func) return function(state) if state then func(state) return state end end end parser.idop = idop -- logs local show = function (string) return idop(function(state) mw.log(string) end) end parser.log = show parser.show = show local dump_state = idop(function(state) mw.logObject(state) end) parser.dump_state = dump_state -- this allows avoiding to pass the state beetween each functions if they were called by hand local function chain(funcs) return function(state) local i = 1 local res = funcs[1](state) while i < #funcs and res do i = i+1 if funcs[i] == nil then error("a nil func in chain") end res = funcs[i](res) end return res end end --[[ Tests : p.parse("aba", p.chain{p.lex_char('a'), p.lex_char('b'), p.lex_char('a')}) => yes p.parse("aba", p.chain{p.lex_char('a'), p.lex_char('b')}) => nope p.parse("aba", p.chain{p.lex_char('a'), p.lex_char('b'), p.lex_char('a'), p.lex_char('a')}) => nope --]] parser.chain = chain -- higher order function that can parse an alternative between several non terminals. -- returns the state of the first match local function alternative(funcs) return function(state) local i = 1 while i <= #funcs do local res = funcs[i](state) if res then return res end i=i+1 end end end --[[ Tests : p.parse("a", p.alternative{p.lex_char('a'), p.lex_char('b')}) => yes p.parse("b", p.alternative{p.lex_char('a'), p.lex_char('b')}) => yes p.parse("c", p.alternative{p.lex_char('a'), p.lex_char('b')}) => nope --]] parser.alternative = alternative local function star(parsing_func) local function star_rec(state, acc, i) local res = chain{ parsing_func, idop( function (stat) table.insert(acc, stat.node) end ), }(state) if res then return star_rec(res, acc, i + 1) else return state, acc end end return function(state) if state then local acc = {} local result, acc2 = star_rec(state, acc, 1) result.acc = acc2 return result end end end --[[ Tests: p.parse("aaab", p.chain{p.star(p.lex_char("a")), p.lex_char("b")}) => yes p.parse("b", p.chain{p.star(p.lex_char("a")), p.lex_char("b")}) => yes --]] parser.star = star local function plus(parsing_func) return function(state) local firstnode local acc return chain{ parsing_func, idop( function(state) firstnode = state.node end ), star(parsing_func), function(state) acc = state.acc table.insert(acc, 1, firstnode) state.acc = acc return state end }(state) end end --[[ res = p.parse("aaab", p.chain{ p.plus( p.chain{ p.lex_char("a"), p.statemodop(function(res) res.node="a" ; return res; end) } ), p.lex_char("b") } ) --]] parser.plus = plus --[[ Tests : p.parse("a", p.chain{p.lex_char('a'), p.idop(function (state) end )}) => yes p.parse("ab", p.chain{p.lex_char('a'), p.idop(function (state) end), p.lex_char('b') }) => nope p.parse("ab", p.chain{p.lex_char('a'), p.idop(function (state) end), p.lex_char('a') }) => nope --]] local function questionmark(parsing_func) return function(state) local node = nil local res=alternative{ chain{ parsing_func, idop(function (stat) node = stat.node end) }, lex_epsilon }(state) res.node = node return res end end parser.questionmark = questionmark -------------------------------------------------------------------------------- -- main function that launches the parsing -------------------------------------------------------------------------------- parser.parse = function (string, base_parsing_function) local state = {} state.newstate = {} state.newstate.str = string state.newstate.pos = 1 local res_node = nil local res = chain{ base_parsing_function, idop(function(stat) res_node = stat.node end), lexer.eat_blanks }(state) if res and res.newstate.str=="" then return res_node end return nil end -- a function to create an AST node which represents an nary operator. Could parse an expression on the form « 1 + 2 + 3 + 4 » and return a « sum » AST node wich have a list of nodes for operands sum([number(1), number(2), number(3) number(4) ) in our example local function nary_op_parser ( first_node_parser, -- a parser that parses only the first element of the operation (« 1 ») next_nodes_parser, -- a parser that parses the infix operation and one node ( « + 2 » and the subsequent) acc_result_node_creator,-- a function that takes the lists of the node generated by the previous parser and generates the final node single_creator -- optional, a function corner case when the expression has no actual operator one element like « 1 » (one might just want to get a « number(1) » AST node instead of « sum([number(1)]) » -- if that’s not the wanted behavior, provide a function to build a node specific for that case. Takes a node, the result of the first_node_parser . ) return function(state) local res local firstNode res = chain{ first_node_parser, idop( function(state) firstNode = state.node end ), star( next_nodes_parser ) }(state) if res then if res.acc and #(res.acc) > 0 then local acc = res.acc table.insert(acc, 1, firstNode) res.node = acc_result_node_creator(acc) else single_creator = single_creator or function(node) return node end res.node = single_creator(firstNode) end res.acc = nil return res end end end parser.nary_op_parser = nary_op_parser return parser </textarea><div id="mw-scribunto-console"></div><div class="templatesUsed"><div class="mw-templatesUsedExplanation"><p>Modèles utilisés par cette page : </p></div><ul> <li><a href="/wiki/Mod%C3%A8le:Documentation_module" title="Modèle:Documentation module">Modèle:Documentation module</a> (<a href="/w/index.php?title=Mod%C3%A8le:Documentation_module&action=edit" title="Modèle:Documentation module">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Liste_horizontale" title="Modèle:Liste horizontale">Modèle:Liste horizontale</a> (<a href="/w/index.php?title=Mod%C3%A8le:Liste_horizontale&action=edit" title="Modèle:Liste horizontale">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Mod%C3%A8le:M" title="Modèle:M">Modèle:M</a> (<a href="/w/index.php?title=Mod%C3%A8le:M&action=edit" title="Modèle:M">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le" title="Modèle:Méta documentation de modèle">Modèle:Méta documentation de modèle</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le&action=edit" title="Modèle:Méta documentation de modèle">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le/styles.css" title="Modèle:Méta documentation de modèle/styles.css">Modèle:Méta documentation de modèle/styles.css</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_documentation_de_mod%C3%A8le/styles.css&action=edit" title="Modèle:Méta documentation de modèle/styles.css">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Mod%C3%A8le:M%C3%A9ta_lien_vers_projet" title="Modèle:Méta lien vers projet">Modèle:Méta lien vers projet</a> (<a href="/w/index.php?title=Mod%C3%A8le:M%C3%A9ta_lien_vers_projet&action=edit" title="Modèle:Méta lien vers projet">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Projet_Scribunto" title="Modèle:Projet Scribunto">Modèle:Projet Scribunto</a> (<a href="/w/index.php?title=Mod%C3%A8le:Projet_Scribunto&action=edit" title="Modèle:Projet Scribunto">voir la source</a>) (protégé)</li><li><a href="/wiki/Mod%C3%A8le:Test_sous-page_documentation" title="Modèle:Test sous-page documentation">Modèle:Test sous-page documentation</a> (<a href="/w/index.php?title=Mod%C3%A8le:Test_sous-page_documentation&action=edit" title="Modèle:Test sous-page documentation">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Bandeau" title="Module:Bandeau">Module:Bandeau</a> (<a href="/w/index.php?title=Module:Bandeau&action=edit" title="Module:Bandeau">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Bandeau/Class" title="Module:Bandeau/Class">Module:Bandeau/Class</a> (<a href="/w/index.php?title=Module:Bandeau/Class&action=edit" title="Module:Bandeau/Class">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Documentation" title="Module:Documentation">Module:Documentation</a> (<a href="/w/index.php?title=Module:Documentation&action=edit" title="Module:Documentation">voir la source</a>) (semi-protection étendue)</li><li><a href="/w/index.php?title=Module:FParser/Documentation&action=edit&redlink=1" class="new" title="Module:FParser/Documentation (page inexistante)">Module:FParser/Documentation</a> (<a href="/w/index.php?title=Module:FParser/Documentation&action=edit" class="new" title="Module:FParser/Documentation (page inexistante)">modifier</a>) </li><li><a href="/wiki/Module:Ic%C3%B4ne_de_titre" title="Module:Icône de titre">Module:Icône de titre</a> (<a href="/w/index.php?title=Module:Ic%C3%B4ne_de_titre&action=edit" title="Module:Icône de titre">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Outils" title="Module:Outils">Module:Outils</a> (<a href="/w/index.php?title=Module:Outils&action=edit" title="Module:Outils">voir la source</a>) (protégé)</li><li><a href="/wiki/Module:Protection" title="Module:Protection">Module:Protection</a> (<a href="/w/index.php?title=Module:Protection&action=edit" title="Module:Protection">voir la source</a>) (semi-protection étendue)</li><li><a href="/wiki/Module:Protection/Donn%C3%A9es" title="Module:Protection/Données">Module:Protection/Données</a> (<a href="/w/index.php?title=Module:Protection/Donn%C3%A9es&action=edit" title="Module:Protection/Données">voir la source</a>) (semi-protégé)</li><li><a href="/wiki/Module:Yesno" title="Module:Yesno">Module:Yesno</a> (<a href="/w/index.php?title=Module:Yesno&action=edit" title="Module:Yesno">voir la source</a>) (protégé)</li></ul></div><p id="mw-returnto">Revenir à la page <a href="/wiki/Module:FParser" title="Module:FParser">Module:FParser</a>.</p> <!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Ce document provient de « <a dir="ltr" href="https://fr.wikipedia.org/wiki/Module:FParser">https://fr.wikipedia.org/wiki/Module:FParser</a> ».</div></div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia">À propos de Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux">Avertissements</a></li> <li id="footer-places-contact"><a href="//fr.wikipedia.org/wiki/Wikipédia:Contact">Contact</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Développeurs</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/fr.wikipedia.org">Statistiques</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li id="footer-places-mobileview"><a href="//fr.m.wikipedia.org/w/index.php?title=Module:FParser&action=edit&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Version mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-qqs7t","wgBackendResponseTime":183,"wgPageParseReport":{"limitreport":{"cputime":"0.010","walltime":"0.015","ppvisitednodes":{"value":51,"limit":1000000},"postexpandincludesize":{"value":3948,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":5,"limit":100},"expensivefunctioncount":{"value":0,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":0,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-qqs7t","timestamp":"20241125075135","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>