Questa è la pagina di documentazione per Modulo:En-conj

Questo 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

modifica

È 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, stem e parse:

  • stem 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 stem.. "ed" per il passato semplice)
  • parse 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 (ppres2), per il passato semplice (ps2) e participio passato (ppas2), queste vengono aggiunte accanto alla forma base dalla funzione p.alts (vedi sotto).

Il template genera poi i tempi composti, codificandoli in stringhe: pastperf per il passato semplice (simple past), presperf12s per la prima e seconda persona singolare del presente perfetto (present perfect), condpresperf 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

modifica

La funzione p.wiki (p.wiki(x)) rende il suo argomento, x, un wikilink, con "pipe" alla sezione inglese. In pratica, nel modulo, scrivere p.wiki(qualcosa) equivale al wikicodice [[qualcosa#Inglese|qualcosa]].

Inoltre, la funzione controlla, tramite la funzione standard di Scribunto mw.title.new(x).exists (si veda anche qui) se la pagina a cui punta tale link esiste o meno (funziona in modo molto simile alla 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

modifica

La funzione p.alts (p.alts(x, y)) aggiunge l'eventuale variante alternativa (identificata dal suo secondo argomento, y), se definita, accanto a quella generata automaticamente (identificata dal primo argomento x), separandola con una virgola. Ad esempio, all'interno della funzione principale, il codice

  • ps = p.alts(ps, ps2)

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.