{{Man modulo}}
Questo [[Aiuto:Moduli|modulo]] costituisce il codice di funzionamento del [[Template:En-conj]], e crea, in base ai parametri inseriti in quest'ultimo, la tabella di coniugazione dei verbi inglesi. Si compone di una funzione principale, '''p.enconj''' (richiamata direttamente nel template) e di due funzioni accessorie ('''p.wiki''' e '''p.alts''') che sono utilizzate solo all'interno della funzione principale per abbreviarne il codice.

Il modulo (in particolare la tabella) è stato parzialmente derivato dal [[Modulo:It-conj]].

==Funzione p.enconj==
È la funzione principale del modulo; interpreta i parametri passati dal template e li utilizza per formare le stringhe per le forme flesse e i tempi composti, che sono poi inserite nella tabella di coniugazione che ne costituisce l'output. Possiede due parametri fondamentali, <code>stem</code> e <code>parse</code>:
* <code>stem</code> corrisponde al primo parametro del template, ed equivale alla forma del verbo all'infinito (senza la particella to), viene richiamata per formare le forme flesse dei verbi regolari apponendovi le corrispondenti desinenze (ad es <code>stem.. "ed"</code> per il passato semplice)
* <code>parse</code> corrisponde al secondo parametro del template; riconosce i seguenti valori definiti in base ai quali costruisce automaticamente le forme flesse (per i verbi regolari; si vedano le istruzioni del template): "e", "es", "y", "d" e "doppia". Se invece tale parametro è diverso da tali valori definiti il modulo utilizza per le forme flesse direttamente i parametri passati dal template.

Se sono presenti varianti alternative per il participio presente (<code>ppres2</code>), per il passato semplice (<code>ps2</code>) e participio passato (<code>ppas2</code>), queste vengono aggiunte accanto alla forma base dalla funzione p.alts (vedi sotto).

Il template genera poi i tempi composti, codificandoli in stringhe: <code>pastperf</code> per il passato semplice (simple past), <code>presperf12s</code> per la prima e seconda persona singolare del presente perfetto (present perfect), <code>condpresperf</code> per il presente perfetto condizionale (present perfect conditional) e così via. Tali stringhe per itempi composti, insieme con quelle delle forme base, sono poi inserite nella tabella di coniugazione.

==Funzione p.wiki==
La funzione p.wiki (<code>p.wiki(x)</code>) rende il suo argomento, <code>x</code>, un wikilink, con "[[:w:Aiuto:Piped_link#Piped_wikilink|pipe]]" alla sezione inglese. In pratica, nel modulo, scrivere <code>p.wiki(qualcosa)</code> equivale al wikicodice <nowiki>[[qualcosa#Inglese|qualcosa]]</nowiki>.

Inoltre, la funzione controlla, tramite la funzione standard di Scribunto [[:mw:Extension:Scribunto/Lua_reference_manual#mw.title.new|mw.title.new(x).exists]] (si veda anche [[:en:Wiktionary:Scribunto/Converting_templates#Ifexist|qui]]) se la pagina a cui punta tale link esiste o meno (funziona in modo molto simile alla [[:w:Aiuto:Funzioni parser|funzione parser]] ''ifexist'' del codice mediawiki). Se la pagina non esiste, aggiunge al wikilink la [[:Categoria:Verbi inglesi con forme da scrivere]], e/o la [[:Categoria:Verbi inglesi da scrivere]] se ad essere rosso è il link verso la forma all'infinito.

==Funzione p.alts==
La funzione p.alts (<code>p.alts(x, y)</code>) aggiunge l'eventuale variante alternativa (identificata dal suo secondo argomento, <code>y</code>), se definita, accanto a quella generata automaticamente (identificata dal primo argomento <code>x</code>), separandola con una virgola. Ad esempio, all'interno della funzione principale, il codice
*<code>ps = p.alts(ps, ps2)</code> 
cerca l'eventuale parametro "ps2=" (variante del passato semplice) nel template; se questo è definito lo aggiunge al seguito della forma base base, se non lo è restituisce invece solo quest'ultima.

<noinclude>[[Categoria:Manuali dei moduli|en-conj]]</noinclude>
<includeonly>[[Categoria:Moduli|en-conj]]</includeonly>