Differenze tra le versioni di "Modulo:Fan-conj"

Da Dialetto Metaurense.
(Pagina svuotata)
Riga 1: Riga 1:
  
-- Questo modulo contiene il codice per il template:It-conj, che genera la coniugazione di tutti i verbi italiani
 
-- La funzione itconj genera la tabella di coniugazione utilizzando i parametri passati dal template
 
 
p = {}
 
 
function p.fanconj(frame)
 
    pframe = frame:getParent()
 
    config = frame.args
 
    args = pframe.args
 
-- Argomenti passati dal template
 
    stem = args[1]
 
    aus = config["ausiliare"] or " "
 
-- Inizializzazione di tutte le variabili interne, che potrebbero altrimenti risultare nulle
 
    ausiliare = ""
 
    inf = ""; ger = ""; par= ""; pp = ""; pplur = ""
 
    pres1s = ""; pres1s2 = ""; pres2s=""; pres3s = ""; pres1p = ""; pres2p = ""; pres3p = ""
 
    imperf1s = ""; imperf2s=""; imperf3s = ""; imperf1p = ""; imperf2p = ""; imperf3p = ""
 
    prem1s = ""; prem1s2 = ""; prem2s = ""; prem3s = ""; prem3s2 = ""; prem1p = ""; prem2p = ""; prem3p = ""; prem3p2 = ""
 
    fut1s = ""; fut2s=""; fut3s = ""; fut1p =" "; fut2p = ""; fut3p = ""
 
    cond1s = ""; cond2s=""; cond3s = ""; cond1p = ""; cond2p = ""; cond3p = ""
 
    cong123s = ""; cong3s = nil; cong1p = ""; cong2p = ""; cong3p = ""
 
    congimp12s = ""; congimp3s = ""; congimp1p = ""; congimp2p = ""; congimp3p = ""
 
    imp2s=""; imp2s2 = ""; imp2s3 = ""; imp3s = ""; imp1p = ""; imp2p = ""; imp3p = ""
 
    mi = ""; ti = ""; si = ""; ci = ""; vi = ""
 
    paspros = ""; trappros = ""; traprem = ""; futant = ""; condpas = ""; congpas = ""; congtrap = ""
 
    paspros1s = ""; paspros2s=""; paspros3s = ""; paspros1p = ""; paspros2p = ""; paspros3p = ""
 
    trappros1s = ""; trappros2s=""; trappros3s = ""; trappros1p = ""; trappros2p = ""; trappros3p = ""
 
    traprem1s = ""; traprem2s=""; traprem3s = ""; traprem1p = ""; traprem2p = ""; traprem3p = ""
 
    futant1s = ""; futant2s=""; futant3s = ""; futant1p = ""; futant2p = ""; futant3p = ""
 
    condpas1s = ""; condpas2s=""; condpas3s = ""; condpas1p = ""; condpas2p = ""; condpas3p = ""
 
    congpas1s = ""; congpas2s=""; congpas3s = ""; congpas1p = ""; congpas2p = ""; congpas3p = ""
 
    congtrap1s = ""; congtrap2s=""; congtrap3s = ""; congtrap1p = ""; congtrap2p = ""; congtrap3p = ""
 
-- A partire dalla coniugazione, genera le forme coniugate standard per ciascuna tipologia di verbo
 
    type = config["type"]
 
    if type == nil then
 
        inf = p.wiki(args["inf"])
 
    elseif (type == "â") or (type == "âs") then
 
        inf = p.wiki(stem .. "are")
 
        ger = p.wiki(stem .. "ando");  par = p.wiki(stem .. "ante");  pp = p.wiki(stem .. "ato"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "o");  pres2s = p.wiki(stem .. "i");  pres3s = p.wiki(stem .. "a")
 
        pres1p = p.wiki(stem .. "iamo");  pres2p = p.wiki(stem .. "ate");  pres3p = p.wiki(stem .. "ano")       
 
        imperf1s = p.wiki(stem .. "avo");  imperf2s = p.wiki(stem .. "avi");  imperf3s = p.wiki(stem .. "ava")
 
        imperf1p = p.wiki(stem .. "avamo");  imperf2p = p.wiki(stem .. "avate");  imperf3p = p.wiki(stem .. "avano")
 
        prem1s = p.wiki(stem .. "ai");  prem2s = p.wiki(stem .. "asti");  prem3s = p.wiki(stem .. "ò")
 
        prem1p = p.wiki(stem .. "ammo");  prem2p = p.wiki(stem .. "aste");  prem3p = p.wiki(stem .. "arono")
 
        fut1s = p.wiki(stem .. "erò");  fut2s = p.wiki(stem .. "erai");  fut3s = p.wiki(stem .. "erà")
 
        fut1p = p.wiki(stem .. "eremo");  fut2p = p.wiki(stem .. "erete");  fut3p = p.wiki(stem .. "eranno")
 
        cond1s = p.wiki(stem .. "erei");  cond2s = p.wiki(stem .. "eresti");  cond3s = p.wiki(stem .. "erebbe")
 
        cond1p = p.wiki(stem .. "eremmo");  cond2p = p.wiki(stem .. "ereste");  cond3p = p.wiki(stem .. "erebbero")
 
        cong123s = p.wiki(stem .. "i"); cong3s = nil
 
        cong1p = p.wiki(stem .. "iamo");  cong2p = p.wiki(stem .. "iate");  cong3p = p.wiki(stem .. "ino")
 
        congimp12s = p.wiki(stem .. "assi");  congimp3s = p.wiki(stem .. "asse")
 
        congimp1p = p.wiki(stem .. "assimo");  congimp2p = p.wiki(stem .. "aste");  congimp3p = p.wiki(stem .. "assero")
 
        imp2s = p.wiki(stem .. "a");  imp3s = p.wiki(stem .. "i")
 
        imp1p = p.wiki(stem .. "iamo");  imp2p = p.wiki(stem .. "ate");  imp3p = p.wiki(stem .. "ino")
 
    elseif (type == "care") or (type == "carsi") or (type == "gare") or (type == "garsi") then
 
        inf = p.wiki(stem .. "are")
 
        ger = p.wiki(stem .. "ando");  par = p.wiki(stem .. "ante");  pp = p.wiki(stem .. "ato"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "o");  pres2s = p.wiki(stem .. "hi");  pres3s = p.wiki(stem .. "a")
 
        pres1p = p.wiki(stem .. "hiamo");  pres2p = p.wiki(stem .. "ate");  pres3p = p.wiki(stem .. "ano")       
 
        imperf1s = p.wiki(stem .. "avo");  imperf2s = p.wiki(stem .. "avi");  imperf3s = p.wiki(stem .. "ava")
 
        imperf1p = p.wiki(stem .. "avamo");  imperf2p = p.wiki(stem .. "avate");  imperf3p = p.wiki(stem .. "avano")
 
        prem1s = p.wiki(stem .. "ai");  prem2s = p.wiki(stem .. "asti");  prem3s = p.wiki(stem .. "ò")
 
        prem1p = p.wiki(stem .. "ammo");  prem2p = p.wiki(stem .. "aste");  prem3p = p.wiki(stem .. "arono")
 
        fut1s = p.wiki(stem .. "herò");  fut2s = p.wiki(stem .. "herai");  fut3s = p.wiki(stem .. "herà")
 
        fut1p = p.wiki(stem .. "heremo");  fut2p = p.wiki(stem .. "herete");  fut3p = p.wiki(stem .. "heranno")
 
        cond1s = p.wiki(stem .. "herei");  cond2s = p.wiki(stem .. "heresti");  cond3s = p.wiki(stem .. "herebbe")
 
        cond1p = p.wiki(stem .. "heremmo");  cond2p = p.wiki(stem .. "hereste");  cond3p = p.wiki(stem .. "herebbero")
 
        cong123s = p.wiki(stem .. "hi"); cong3s = nil
 
        cong1p = p.wiki(stem .. "hiamo");  cong2p = p.wiki(stem .. "hiate");  cong3p = p.wiki(stem .. "hino")
 
        congimp12s = p.wiki(stem .. "assi");  congimp3s = p.wiki(stem .. "asse")
 
        congimp1p = p.wiki(stem .. "assimo");  congimp2p = p.wiki(stem .. "aste");  congimp3p = p.wiki(stem .. "assero")
 
        imp2s = p.wiki(stem .. "a");  imp3s = p.wiki(stem .. "hi")
 
        imp1p = p.wiki(stem .. "hiamo");  imp2p = p.wiki(stem .. "ate");  imp3p = p.wiki(stem .. "hino")       
 
    elseif (type == "a") or (type == "ersi") then
 
        inf = p.wiki(stem .. "ere")
 
        ger = p.wiki(stem .. "endo");  par = p.wiki(stem .. "ente");  pp = p.wiki(stem .. "uto"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "o");  pres2s = p.wiki(stem .. "i");  pres3s = p.wiki(stem .. "e")
 
        pres1p = p.wiki(stem .. "iamo");  pres2p = p.wiki(stem .. "ete");  pres3p = p.wiki(stem .. "ono")       
 
        imperf1s = p.wiki(stem .. "evo");  imperf2s = p.wiki(stem .. "evi");  imperf3s = p.wiki(stem .. "eva")
 
        imperf1p = p.wiki(stem .. "evamo");  imperf2p = p.wiki(stem .. "evate");  imperf3p = p.wiki(stem .. "evano")
 
        prem1s = p.wiki(stem .. "etti"); if args["prem1s"] ~= nil then prem1s2 = '' else prem1s2 = p.wiki(stem .. "ei") end; prem2s = p.wiki(stem .. "esti");  prem3s = p.wiki(stem .. "ette"); if args["prem3s"] ~= nil then prem3s2 = '' else prem3s2 = p.wiki(stem .. "é") end
 
        prem1p = p.wiki(stem .. "emmo");  prem2p = p.wiki(stem .. "este");  prem3p = p.wiki(stem .. "ettero"); if args["prem3p"] ~= nil then prem3p2 = '' else prem3p2 = p.wiki(stem .. "erono") end
 
        fut1s = p.wiki(stem .. "erò");  fut2s = p.wiki(stem .. "erai");  fut3s = p.wiki(stem .. "erà")
 
        fut1p = p.wiki(stem .. "eremo");  fut2p = p.wiki(stem .. "erete");  fut3p = p.wiki(stem .. "eranno")
 
        cond1s = p.wiki(stem .. "erei");  cond2s = p.wiki(stem .. "eresti");  cond3s = p.wiki(stem .. "erebbe")
 
        cond1p = p.wiki(stem .. "eremmo");  cond2p = p.wiki(stem .. "ereste");  cond3p = p.wiki(stem .. "erebbero")
 
        cong123s = p.wiki(stem .. "a"); cong3s = nil
 
        cong1p = p.wiki(stem .. "iamo");  cong2p = p.wiki(stem .. "iate");  cong3p = p.wiki(stem .. "ano")
 
        congimp12s = p.wiki(stem .. "essi");  congimp3s = p.wiki(stem .. "esse")
 
        congimp1p = p.wiki(stem .. "essimo");  congimp2p = p.wiki(stem .. "este");  congimp3p = p.wiki(stem .. "essero")
 
        imp2s = p.wiki(stem .. "i");  imp3s = p.wiki(stem .. "a")
 
        imp1p = p.wiki(stem .. "iamo");  imp2p = p.wiki(stem .. "ete");  imp3p = p.wiki(stem .. "ano")
 
    elseif (type == "gliere") or (type == "gliersi") then
 
        inf = p.wiki(stem .. "gliere")
 
        ger = p.wiki(stem .. "gliendo");  par = p.wiki(stem .. "gliente");  pp = p.wiki(stem .. "lto"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "lgo");  pres2s = p.wiki(stem .. "gli");  pres3s = p.wiki(stem .. "glie")
 
        pres1p = p.wiki(stem .. "gliamo");  pres2p = p.wiki(stem .. "gliete");  pres3p = p.wiki(stem .. "lgono")       
 
        imperf1s = p.wiki(stem .. "glievo");  imperf2s = p.wiki(stem .. "glievi");  imperf3s = p.wiki(stem .. "glieva")
 
        imperf1p = p.wiki(stem .. "glievamo");  imperf2p = p.wiki(stem .. "glievate");  imperf3p = p.wiki(stem .. "glievano")
 
        prem1s = p.wiki(stem .. "lsi"); prem2s = p.wiki(stem .. "gliesti");  prem3s = p.wiki(stem .. "lse")
 
        prem1p = p.wiki(stem .. "gliemmo");  prem2p = p.wiki(stem .. "glieste");  prem3p = p.wiki(stem .. "lsero")
 
        fut1s = p.wiki(stem .. "glierò");  fut2s = p.wiki(stem .. "glierai");  fut3s = p.wiki(stem .. "glierà")
 
        fut1p = p.wiki(stem .. "glieremo");  fut2p = p.wiki(stem .. "glierete");  fut3p = p.wiki(stem .. "glieranno")
 
        cond1s = p.wiki(stem .. "glierei");  cond2s = p.wiki(stem .. "glieresti");  cond3s = p.wiki(stem .. "glierebbe")
 
        cond1p = p.wiki(stem .. "glieremmo");  cond2p = p.wiki(stem .. "gliereste");  cond3p = p.wiki(stem .. "glierebbero")
 
        cong123s = p.wiki(stem .. "lga"); cong3s = nil
 
        cong1p = p.wiki(stem .. "gliamo");  cong2p = p.wiki(stem .. "gliate");  cong3p = p.wiki(stem .. "lgano")
 
        congimp12s = p.wiki(stem .. "gliessi");  congimp3s = p.wiki(stem .. "gliesse")
 
        congimp1p = p.wiki(stem .. "gliessimo");  congimp2p = p.wiki(stem .. "glieste");  congimp3p = p.wiki(stem .. "gliessero")
 
        imp2s = p.wiki(stem .. "gli");  imp3s = p.wiki(stem .. "lga")
 
        imp1p = p.wiki(stem .. "gliamo");  imp2p = p.wiki(stem .. "gliete");  imp3p = p.wiki(stem .. "lgano")
 
    elseif (type == "ire-b") or (type == "irsi-b") then
 
        inf = p.wiki(stem .. "ire")
 
        ger = p.wiki(stem .. "endo");  par = p.wiki(stem .. "ente");  pp = p.wiki(stem .. "ito"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "isco");  pres2s = p.wiki(stem .. "isci");  pres3s = p.wiki(stem .. "isce")
 
        pres1p = p.wiki(stem .. "iamo");  pres2p = p.wiki(stem .. "ite");  pres3p = p.wiki(stem .. "iscono")       
 
        imperf1s = p.wiki(stem .. "ivo");  imperf2s = p.wiki(stem .. "ivi");  imperf3s = p.wiki(stem .. "iva")
 
        imperf1p = p.wiki(stem .. "ivamo");  imperf2p = p.wiki(stem .. "ivate");  imperf3p = p.wiki(stem .. "ivano")
 
        prem1s = p.wiki(stem .. "ii");  prem2s = p.wiki(stem .. "isti");  prem3s = p.wiki(stem .. "ì")
 
        prem1p = p.wiki(stem .. "immo");  prem2p = p.wiki(stem .. "iste");  prem3p = p.wiki(stem .. "irono")
 
        fut1s = p.wiki(stem .. "irò");  fut2s = p.wiki(stem .. "irai");  fut3s = p.wiki(stem .. "irà")
 
        fut1p = p.wiki(stem .. "iremo");  fut2p = p.wiki(stem .. "irete");  fut3p = p.wiki(stem .. "iranno")
 
        cond1s = p.wiki(stem .. "irei");  cond2s = p.wiki(stem .. "iresti");  cond3s = p.wiki(stem .. "irebbe")
 
        cond1p = p.wiki(stem .. "iremmo");  cond2p = p.wiki(stem .. "ireste");  cond3p = p.wiki(stem .. "irebbero")
 
        cong123s = p.wiki(stem .. "isca"); cong3s = nil
 
        cong1p = p.wiki(stem .. "iamo");  cong2p = p.wiki(stem .. "iate");  cong3p = p.wiki(stem .. "iscano")
 
        congimp12s = p.wiki(stem .. "issi");  congimp3s = p.wiki(stem .. "isse")
 
        congimp1p = p.wiki(stem .. "issimo");  congimp2p = p.wiki(stem .. "iste");  congimp3p = p.wiki(stem .. "issero")
 
        imp2s = p.wiki(stem .. "isci");  imp3s = p.wiki(stem .. "isca")
 
        imp1p = p.wiki(stem .. "iamo");  imp2p = p.wiki(stem .. "ite");  imp3p = p.wiki(stem .. "iscano")       
 
    elseif (type == "ire") or (type == "irsi") then
 
        inf = p.wiki(stem .. "ire")
 
        ger = p.wiki(stem .. "endo");  par = p.wiki(stem .. "ente");  pp = p.wiki(stem .. "ito"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "o");  pres2s = p.wiki(stem .. "i");  pres3s = p.wiki(stem .. "e")
 
        pres1p = p.wiki(stem .. "iamo");  pres2p = p.wiki(stem .. "ite");  pres3p = p.wiki(stem .. "ono")       
 
        imperf1s = p.wiki(stem .. "ivo");  imperf2s = p.wiki(stem .. "ivi");  imperf3s = p.wiki(stem .. "iva")
 
        imperf1p = p.wiki(stem .. "ivamo");  imperf2p = p.wiki(stem .. "ivate");  imperf3p = p.wiki(stem .. "ivano")
 
        prem1s = p.wiki(stem .. "ii");  prem2s = p.wiki(stem .. "isti");  prem3s = p.wiki(stem .. "ì")
 
        prem1p = p.wiki(stem .. "immo");  prem2p = p.wiki(stem .. "iste");  prem3p = p.wiki(stem .. "irono")
 
        fut1s = p.wiki(stem .. "irò");  fut2s = p.wiki(stem .. "irai");  fut3s = p.wiki(stem .. "irà")
 
        fut1p = p.wiki(stem .. "iremo");  fut2p = p.wiki(stem .. "irete");  fut3p = p.wiki(stem .. "iranno")
 
        cond1s = p.wiki(stem .. "irei");  cond2s = p.wiki(stem .. "iresti");  cond3s = p.wiki(stem .. "irebbe")
 
        cond1p = p.wiki(stem .. "iremmo");  cond2p = p.wiki(stem .. "ireste");  cond3p = p.wiki(stem .. "irebbero")
 
        cong123s = p.wiki(stem .. "a"); cong3s = nil
 
        cong1p = p.wiki(stem .. "iamo");  cong2p = p.wiki(stem .. "iate");  cong3p = p.wiki(stem .. "ano")
 
        congimp12s = p.wiki(stem .. "issi");  congimp3s = p.wiki(stem .. "isse")
 
        congimp1p = p.wiki(stem .. "issimo");  congimp2p = p.wiki(stem .. "iste");  congimp3p = p.wiki(stem .. "issero")
 
        imp2s = p.wiki(stem .. "i");  imp3s = p.wiki(stem .. "a")
 
        imp1p = p.wiki(stem .. "iamo");  imp2p = p.wiki(stem .. "ite");  imp3p = p.wiki(stem .. "ano") 
 
    elseif (type == "iare") or (type == "iarsi") then
 
        inf = p.wiki(stem .. "are")
 
        ger = p.wiki(stem .. "ando");  par = p.wiki(stem .. "ante");  pp = p.wiki(stem .. "ato"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "o");  pres2s = p.wiki(stem);  pres3s = p.wiki(stem .. "a")
 
        pres1p = p.wiki(stem .. "amo");  pres2p = p.wiki(stem .. "ate");  pres3p = p.wiki(stem .. "ano")       
 
        imperf1s = p.wiki(stem .. "avo");  imperf2s = p.wiki(stem .. "avi");  imperf3s = p.wiki(stem .. "ava")
 
        imperf1p = p.wiki(stem .. "avamo");  imperf2p = p.wiki(stem .. "avate");  imperf3p = p.wiki(stem .. "avano")
 
        prem1s = p.wiki(stem .. "ai");  prem2s = p.wiki(stem .. "asti");  prem3s = p.wiki(stem .. "ò")
 
        prem1p = p.wiki(stem .. "ammo");  prem2p = p.wiki(stem .. "aste");  prem3p = p.wiki(stem .. "arono")
 
        fut1s = p.wiki(stem .. "erò");  fut2s = p.wiki(stem .. "erai");  fut3s = p.wiki(stem .. "erà")
 
        fut1p = p.wiki(stem .. "eremo");  fut2p = p.wiki(stem .. "erete");  fut3p = p.wiki(stem .. "eranno")
 
        cond1s = p.wiki(stem .. "erei");  cond2s = p.wiki(stem .. "eresti");  cond3s = p.wiki(stem .. "erebbe")
 
        cond1p = p.wiki(stem .. "eremmo");  cond2p = p.wiki(stem .. "ereste");  cond3p = p.wiki(stem .. "erebbero")
 
        cong123s = p.wiki(stem); cong3s = nil
 
        cong1p = p.wiki(stem .. "amo");  cong2p = p.wiki(stem .. "ate");  cong3p = p.wiki(stem .. "no")
 
        congimp12s = p.wiki(stem .. "assi");  congimp3s = p.wiki(stem .. "asse")
 
        congimp1p = p.wiki(stem .. "assimo");  congimp2p = p.wiki(stem .. "aste");  congimp3p = p.wiki(stem .. "assero")
 
        imp2s = p.wiki(stem .. "a");  imp3s = p.wiki(stem)
 
        imp1p = p.wiki(stem .. "amo");  imp2p = p.wiki(stem .. "ate");  imp3p = p.wiki(stem .. "no")       
 
    elseif (type == "ciare") or (type == "ciarsi") or (type == "giare") or (type == "giarsi") then
 
        inf = p.wiki(stem .. "iare")
 
        ger = p.wiki(stem .. "iando");  par = p.wiki(stem .. "iante");  pp = p.wiki(stem .. "iato"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "io");  pres2s = p.wiki(stem .. "i");  pres3s = p.wiki(stem .. "ia")
 
        pres1p = p.wiki(stem .. "iamo");  pres2p = p.wiki(stem .. "iate");  pres3p = p.wiki(stem .. "iano")
 
        imperf1s = p.wiki(stem .. "iavo");  imperf2s = p.wiki(stem .. "iavi");  imperf3s = p.wiki(stem .. "iava")
 
        imperf1p = p.wiki(stem .. "iavamo");  imperf2p = p.wiki(stem .. "iavate");  imperf3p = p.wiki(stem .. "iavano")
 
        prem1s = p.wiki(stem .. "iai");  prem2s = p.wiki(stem .. "iasti");  prem3s = p.wiki(stem .. "iò")
 
        prem1p = p.wiki(stem .. "iammo");  prem2p = p.wiki(stem .. "iaste");  prem3p = p.wiki(stem .. "iarono")
 
        fut1s = p.wiki(stem .. "erò");  fut2s = p.wiki(stem .. "erai");  fut3s = p.wiki(stem .. "erà")
 
        fut1p = p.wiki(stem .. "eremo");  fut2p = p.wiki(stem .. "erete");  fut3p = p.wiki(stem .. "eranno")
 
        cond1s = p.wiki(stem .. "erei");  cond2s = p.wiki(stem .. "eresti");  cond3s = p.wiki(stem .. "erebbe")
 
        cond1p = p.wiki(stem .. "eremmo");  cond2p = p.wiki(stem .. "ereste");  cond3p = p.wiki(stem .. "erebbero")
 
        cong123s = p.wiki(stem .. "i"); cong3s = nil
 
        cong1p = p.wiki(stem .. "iamo");  cong2p = p.wiki(stem .. "iate");  cong3p = p.wiki(stem .. "ino")
 
        congimp12s = p.wiki(stem .. "iassi");  congimp3s = p.wiki(stem .. "iasse")
 
        congimp1p = p.wiki(stem .. "iassimo");  congimp2p = p.wiki(stem .. "iaste");  congimp3p = p.wiki(stem .. "iassero")
 
        imp2s = p.wiki(stem .. "ia");  imp3s = p.wiki(stem .. "i")
 
        imp1p = p.wiki(stem .. "iamo");  imp2p = p.wiki(stem .. "iate");  imp3p = p.wiki(stem .. "ino")
 
    elseif type == "fare" or (type == "farsi") then
 
        inf = p.wiki(stem .. "fare")
 
        ger = p.wiki(stem .. "facendo");  par = p.wiki(stem .. "facente");  pp = p.wiki(stem .. "fatto"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "faccio");  pres2s = p.wiki(stem .. "fai");  pres3s = p.wiki(stem .. "fà")
 
        pres1s2 = p.wiki(stem .. "fò")
 
        pres1p = p.wiki(stem .. "facciamo");  pres2p = p.wiki(stem .. "fate");  pres3p = p.wiki(stem .. "fanno")       
 
        imperf1s = p.wiki(stem .. "facevo");  imperf2s = p.wiki(stem .. "facevi");  imperf3s = p.wiki(stem .. "faceva")
 
        imperf1p = p.wiki(stem .. "facevamo");  imperf2p = p.wiki(stem .. "facevate");  imperf3p = p.wiki(stem .. "facevano")
 
        prem1s = p.wiki(stem .. "feci");  prem2s = p.wiki(stem .. "facesti");  prem3s = p.wiki(stem .. "fece")
 
        prem1p = p.wiki(stem .. "facemmo");  prem2p = p.wiki(stem .. "faceste");  prem3p = p.wiki(stem .. "fecero")
 
        fut1s = p.wiki(stem .. "farò");  fut2s = p.wiki(stem .. "farai");  fut3s = p.wiki(stem .. "farà")
 
        fut1p = p.wiki(stem .. "faremo");  fut2p = p.wiki(stem .. "farete");  fut3p = p.wiki(stem .. "faranno")
 
        cond1s = p.wiki(stem .. "farei");  cond2s = p.wiki(stem .. "faresti");  cond3s = p.wiki(stem .. "farebbe")
 
        cond1p = p.wiki(stem .. "faremmo");  cond2p = p.wiki(stem .. "fareste");  cond3p = p.wiki(stem .. "farebbero")
 
        cong123s = p.wiki(stem .. "faccia"); cong3s = nil
 
        cong1p = p.wiki(stem .. "facciamo");  cong2p = p.wiki(stem .. "facciate");  cong3p = p.wiki(stem .. "facciano")
 
        congimp12s = p.wiki(stem .. "facessi");  congimp3s = p.wiki(stem .. "facesse")
 
        congimp1p = p.wiki(stem .. "facessimo");  congimp2p = p.wiki(stem .. "faceste");  congimp3p = p.wiki(stem .. "facessero")
 
        imp2s = p.wiki(stem .. "fai");  imp3s = p.wiki(stem .. "faccia")
 
        imp2s2 = p.wiki(stem .. "fa'")
 
        imp1p = p.wiki(stem .. "facciamo");  imp2p = p.wiki(stem .. "fate");  imp3p = p.wiki(stem .. "facciano")
 
    elseif (type == "urre") or (type == "ursi") then
 
        inf = p.wiki(stem .. "urre")
 
        ger = p.wiki(stem .. "ucendo");  par = p.wiki(stem .. "ucente");  pp = p.wiki(stem .. "otto"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "uco");  pres2s = p.wiki(stem .. "uci");  pres3s = p.wiki(stem .. "uce")
 
        pres1p = p.wiki(stem .. "uciamo");  pres2p = p.wiki(stem .. "ucete");  pres3p = p.wiki(stem .. "ucono")       
 
        imperf1s = p.wiki(stem .. "ucevo");  imperf2s = p.wiki(stem .. "ucevi");  imperf3s = p.wiki(stem .. "uceva")
 
        imperf1p = p.wiki(stem .. "ucevamo");  imperf2p = p.wiki(stem .. "ucevate");  imperf3p = p.wiki(stem .. "ucevano")
 
        prem1s = p.wiki(stem .. "ussi");  prem2s = p.wiki(stem .. "ucesti");  prem3s = p.wiki(stem .. "usse")
 
        prem1p = p.wiki(stem .. "ucemmo");  prem2p = p.wiki(stem .. "uceste");  prem3p = p.wiki(stem .. "ussero")
 
        fut1s = p.wiki(stem .. "urrò");  fut2s = p.wiki(stem .. "urrai");  fut3s = p.wiki(stem .. "urrà")
 
        fut1p = p.wiki(stem .. "urremo");  fut2p = p.wiki(stem .. "urrete");  fut3p = p.wiki(stem .. "urranno")
 
        cond1s = p.wiki(stem .. "urrei");  cond2s = p.wiki(stem .. "urresti");  cond3s = p.wiki(stem .. "urrebbe")
 
        cond1p = p.wiki(stem .. "urremmo");  cond2p = p.wiki(stem .. "urreste");  cond3p = p.wiki(stem .. "urrebbero")
 
        cong123s = p.wiki(stem .. "uca"); cong3s = nil
 
        cong1p = p.wiki(stem .. "uciamo");  cong2p = p.wiki(stem .. "uciate");  cong3p = p.wiki(stem .. "ucano")
 
        congimp12s = p.wiki(stem .. "ucessi");  congimp3s = p.wiki(stem .. "ucesse")
 
        congimp1p = p.wiki(stem .. "ucessimo");  congimp2p = p.wiki(stem .. "uceste");  congimp3p = p.wiki(stem .. "ucessero")
 
        imp2s = p.wiki(stem .. "uci");  imp3s = p.wiki(stem .. "uca")
 
        imp1p = p.wiki(stem .. "uciamo");  imp2p = p.wiki(stem .. "ucete");  imp3p = p.wiki(stem .. "ucano")
 
    elseif (type == "orre") or (type == "orsi") then
 
        inf = p.wiki(stem .. "orre")
 
        ger = p.wiki(stem .. "onendo");  par = p.wiki(stem .. "onente");  pp = p.wiki(stem .. "osto"); pplur = p.plurale(-3, pp, "i]]")
 
        pres1s = p.wiki(stem .. "ongo");  pres2s = p.wiki(stem .. "oni");  pres3s = p.wiki(stem .. "one")
 
        pres1p = p.wiki(stem .. "oniamo");  pres2p = p.wiki(stem .. "onete");  pres3p = p.wiki(stem .. "ongono")       
 
        imperf1s = p.wiki(stem .. "onevo");  imperf2s = p.wiki(stem .. "onevi");  imperf3s = p.wiki(stem .. "oneva")
 
        imperf1p = p.wiki(stem .. "onevamo");  imperf2p = p.wiki(stem .. "onevate");  imperf3p = p.wiki(stem .. "onevano")
 
        prem1s = p.wiki(stem .. "osi");  prem2s = p.wiki(stem .. "onesti");  prem3s = p.wiki(stem .. "ose")
 
        prem1p = p.wiki(stem .. "onemmo");  prem2p = p.wiki(stem .. "oneste");  prem3p = p.wiki(stem .. "osero")
 
        fut1s = p.wiki(stem .. "orrò");  fut2s = p.wiki(stem .. "orrai");  fut3s = p.wiki(stem .. "orrà")
 
        fut1p = p.wiki(stem .. "orremo");  fut2p = p.wiki(stem .. "orrete");  fut3p = p.wiki(stem .. "orranno")
 
        cond1s = p.wiki(stem .. "orrei");  cond2s = p.wiki(stem .. "orresti");  cond3s = p.wiki(stem .. "orrebbe")
 
        cond1p = p.wiki(stem .. "orremmo");  cond2p = p.wiki(stem .. "orreste");  cond3p = p.wiki(stem .. "orrebbero")
 
        cong123s = p.wiki(stem .. "onga"); cong3s = nil
 
        cong1p = p.wiki(stem .. "oniamo");  cong2p = p.wiki(stem .. "oniate");  cong3p = p.wiki(stem .. "ongano")
 
        congimp12s = p.wiki(stem .. "onessi");  congimp3s = p.wiki(stem .. "onesse")
 
        congimp1p = p.wiki(stem .. "onessimo");  congimp2p = p.wiki(stem .. "oneste");  congimp3p = p.wiki(stem .. "onessero")
 
        imp2s = p.wiki(stem .. "oni");  imp3s = p.wiki(stem .. "onga")
 
        imp1p = p.wiki(stem .. "oniamo");  imp2p = p.wiki(stem .. "oniate");  imp3p = p.wiki(stem .. "ongano")
 
else error("Verb type " .. type .. "not supported.")
 
    end
 
-- Genera le voci verbali specifiche per i verbi riflessivi
 
    if type == "arsi" then
 
        refl = true; inf = p.wiki(stem .. "arsi")
 
        ger = p.wiki(stem .. "andosi"); par = p.wiki(stem .. "antesi"); pp2 = p.wiki(stem .. "atosi")
 
        imp2s = p.wiki(stem .. "ati"); imp1p = p.wiki(stem .. "iamoci"); imp2p = p.wiki(stem .. "atevi")
 
    elseif type == "carsi" then
 
        refl = true; inf = p.wiki(stem .. "arsi")
 
        ger = p.wiki(stem .. "andosi"); par = p.wiki(stem .. "antesi"); pp2 = p.wiki(stem .. "atosi")
 
        imp2s = p.wiki(stem .. "ati"); imp1p = p.wiki(stem .. "hiamoci"); imp2p = p.wiki(stem .. "atevi")
 
    elseif type == "ciarsi" then
 
        refl = true; inf = p.wiki(stem .. "iarsi")
 
        ger = p.wiki(stem .. "iandosi"); par = p.wiki(stem .. "iantesi"); pp2 = p.wiki(stem .. "iatosi")
 
        imp2s = p.wiki(stem .. "iati"); imp1p = p.wiki(stem .. "iamoci"); imp2p = p.wiki(stem .. "iatevi")
 
    elseif type == "ersi" then
 
        refl = true; inf = p.wiki(stem .. "ersi")
 
        ger = p.wiki(stem .. "endosi"); par = p.wiki(stem .. "entesi"); pp2 = p.wiki(stem .. "utosi")
 
        imp2s = p.wiki(stem .. "iti"); imp1p = p.wiki(stem .. "iamoci"); imp2p = p.wiki(stem .. "etevi")
 
    elseif type == "iarsi" then
 
        refl = true; inf = p.wiki(stem .. "arsi")
 
        ger = p.wiki(stem .. "andosi"); par = p.wiki(stem .. "antesi"); pp2 = p.wiki(stem .. "atosi")
 
        imp2s = p.wiki(stem .. "ati"); imp1p = p.wiki(stem .. "amoci"); imp2p = p.wiki(stem .. "atevi")
 
    elseif type == "irsi" then
 
        refl = true; inf = p.wiki(stem .. "irsi")
 
        ger = p.wiki(stem .. "endosi"); par = p.wiki(stem .. "entesi"); pp2 = p.wiki(stem .. "itosi")
 
        imp2s = p.wiki(stem .. "iti"); imp1p = p.wiki(stem .. "iamoci"); imp2p = p.wiki(stem .. "itevi")
 
    elseif type == "irsi-b" then
 
        refl = true; inf = p.wiki(stem .. "irsi")
 
        ger = p.wiki(stem .. "endosi"); par = p.wiki(stem .. "entesi"); pp2 = p.wiki(stem .. "itosi")
 
        imp2s = p.wiki(stem .. "isciti"); imp1p = p.wiki(stem .. "iamoci"); imp2p = p.wiki(stem .. "itevi")
 
    elseif type == "ursi" then
 
        refl = true; inf = p.wiki(stem .. "ursi")
 
        ger = p.wiki(stem .. "ucendosi"); par = p.wiki(stem .. "ucentesi"); pp2 = p.wiki(stem .. "ottosi")
 
        imp2s = p.wiki(stem .. "uciti"); imp1p = p.wiki(stem .. "uciamoci"); imp2p = p.wiki(stem .. "ucetevi")
 
    elseif type == "farsi" then
 
        refl = true; inf = p.wiki(stem .. "farsi")
 
        ger = p.wiki(stem .. "facendosi"); par = p.wiki(stem .. "facentesi"); pp2 = p.wiki(stem .. "fattosi")
 
        imp2s = p.wiki(stem .. "fatti"); imp1p = p.wiki(stem .. "facciamoci"); imp2p = p.wiki(stem .. "fatevi")
 
    end
 
    if refl then mi = "mi "; ti = "ti "; si = "si "; ci = "ci "; vi = "vi " end
 
-- Recupera le eventuali forme irregolari o varianti, rimpiazziandole o aggiungendole a quelle standard
 
-- Forme impersonali e participi
 
    inf = p.over(inf,args["inf"])
 
    ger = p.over(ger,args["ger"])
 
    ger2 = p.wiki(args["ger2"])
 
    ger = p.alts(ger, ger2)
 
    par = p.over(par,args["par"])
 
    par2 = p.wiki(args["par2"])
 
    par = p.alts(par, par2)
 
    pp = p.over(pp,args["pp"])
 
    pp2 = p.wiki(args["pp2"]);  pp3 = p.wiki(args["pp3"]);  pp3 = p.wiki(args["pp3"]);  pp4 = p.wiki(args["pp4"])
 
    pp = p.alts(pp, pp2); pp = p.alts(pp, pp3); pp = p.alts(pp, pp4)
 
-- Presente indicativo
 
    pres1s = p.over(pres1s,args["pres1s"]); pres2s = p.over(pres2s,args["pres2s"]); pres3s = p.over(pres3s,args["pres3s"])
 
    pres1p = p.over(pres1p,args["pres1p"]); pres2p = p.over(pres2p,args["pres2p"]); pres3p = p.over(pres3p,args["pres3p"])
 
    pres1s2 = p.over(pres1s2, args["pres1s2"]);  pres2s2 = p.wiki(args["pres2s2"]);  pres3s2 = p.wiki(args["pres3s2"])
 
    pres1p2 = p.wiki(args["pres1p2"]);  pres2p2 = p.wiki(args["pres2p2"]);  pres3p2 = p.wiki(args["pres3p2"])
 
    pres1s = p.alts(pres1s, pres1s2); pres2s = p.alts(pres2s, pres2s2); pres3s = p.alts(pres3s, pres3s2)
 
    pres1p = p.alts(pres1p, pres1p2); pres2p = p.alts(pres2p, pres2p2); pres3p = p.alts(pres3p, pres3p2)   
 
-- Imperfetto
 
    imperf1s = p.over(imperf1s,args["imperf1s"]); imperf2s = p.over(imperf2s,args["imperf2s"]); imperf3s = p.over(imperf3s,args["imperf3s"])
 
    imperf1p = p.over(imperf1p,args["imperf1p"]); imperf2p = p.over(imperf2p,args["imperf2p"]); imperf3p = p.over(imperf3p,args["imperf3p"])
 
    imperf1s2 = p.wiki(args["imperf1s2"]);  imperf2s2 = p.wiki(args["imperf2s2"]);  imperf3s2 = p.wiki(args["imperf3s2"])
 
    imperf1p2 = p.wiki(args["imperf1p2"]);  imperf2p2 = p.wiki(args["imperf2p2"]);  imperf3p2 = p.wiki(args["imperf3p2"])
 
    imperf1s = p.alts(imperf1s, imperf1s2); imperf2s = p.alts(imperf2s, imperf2s2); imperf3s = p.alts(imperf3s, imperf3s2)
 
    imperf1p = p.alts(imperf1p, imperf1p2); imperf2p = p.alts(imperf2p, imperf2p2); imperf3p = p.alts(imperf3p, imperf3p2)
 
-- Passato Remoto (Past historic)
 
    prem1s = p.over(prem1s,args["prem1s"]); prem2s = p.over(prem2s,args["prem2s"]); prem3s = p.over(prem3s,args["prem3s"])
 
    prem1p = p.over(prem1p,args["prem1p"]); prem2p = p.over(prem2p,args["prem2p"]); prem3p = p.over(prem3p,args["prem3p"])
 
    prem1s2 = p.over(prem1s2,args["prem1s2"]);  prem2s2 = p.wiki(args["prem2s2"]);  prem3s2 = p.over(prem3s2,args["prem3s2"])
 
    prem1p2 = p.wiki(args["prem1p2"]);  prem2p2 = p.wiki(args["prem2p2"]);  prem3p2 = p.over(prem3p2,args["prem3p2"])
 
    prem1s = p.alts(prem1s, prem1s2); prem2s = p.alts(prem2s, prem2s2); prem3s = p.alts(prem3s, prem3s2)
 
    prem1p = p.alts(prem1p, prem1p2); prem2p = p.alts(prem2p, prem2p2); prem3p = p.alts(prem3p, prem3p2)
 
-- Alternative extra per il passato remoto
 
    prem1s3 = p.wiki(args["prem1s3"]); prem1s = p.alts(prem1s, prem1s3)
 
    prem3s3 = p.wiki(args["prem3s3"]); prem3s = p.alts(prem3s, prem3s3)
 
    prem3p3 = p.wiki(args["prem3p3"]); prem3p = p.alts(prem3p, prem3p3)
 
-- Futuro
 
    fut1s = p.over(fut1s,args["fut1s"]); fut2s = p.over(fut2s,args["fut2s"]); fut3s = p.over(fut3s,args["fut3s"])
 
    fut1p = p.over(fut1p,args["fut1p"]); fut2p = p.over(fut2p,args["fut2p"]); fut3p = p.over(fut3p,args["fut3p"])
 
    fut1s2 = p.wiki(args["fut1s2"]);  fut2s2 = p.wiki(args["fut2s2"]);  fut3s2 = p.wiki(args["fut3s2"])
 
    fut1p2 = p.wiki(args["fut1p2"]);  fut2p2 = p.wiki(args["fut2p2"]);  fut3p2 = p.wiki(args["fut3p2"])
 
    fut1s = p.alts(fut1s, fut1s2); fut2s = p.alts(fut2s, fut2s2); fut3s = p.alts(fut3s, fut3s2)
 
    fut1p = p.alts(fut1p, fut1p2); fut2p = p.alts(fut2p, fut2p2); fut3p = p.alts(fut3p, fut3p2)
 
-- Condizionale
 
    cond1s = p.over(cond1s,args["cond1s"]); cond2s = p.over(cond2s,args["cond2s"]); cond3s = p.over(cond3s,args["cond3s"])
 
    cond1p = p.over(cond1p,args["cond1p"]); cond2p = p.over(cond2p,args["cond2p"]); cond3p = p.over(cond3p,args["cond3p"])
 
    cond1s2 = p.wiki(args["cond1s2"]);  cond2s2 = p.wiki(args["cond2s2"]);  cond3s2 = p.wiki(args["cond3s2"])
 
    cond1p2 = p.wiki(args["cond1p2"]);  cond2p2 = p.wiki(args["cond2p2"]);  cond3p2 = p.wiki(args["cond3p2"])
 
    cond1s = p.alts(cond1s, cond1s2); cond2s = p.alts(cond2s, cond2s2); cond3s = p.alts(cond3s, cond3s2)
 
    cond1p = p.alts(cond1p, cond1p2); cond2p = p.alts(cond2p, cond2p2); cond3p = p.alts(cond3p, cond3p2)
 
-- Presente congiuntivo
 
    cong123s = p.over(cong123s,args["cong123s"]);  cong3s = p.over(cong3s,args["cong3s"])
 
    cong1p = p.over(cong1p,args["cong1p"]); cong2p = p.over(cong2p,args["cong2p"]); cong3p = p.over(cong3p,args["cong3p"])
 
    cong123s2 = p.wiki(args["cong123s2"]);  cong3s2 = p.wiki(args["cong3s2"])
 
    cong1p2 = p.wiki(args["cong1p2"]);  cong2p2 = p.wiki(args["cong2p2"]);  cong3p2 = p.wiki(args["cong3p2"])
 
    cong123s = p.alts(cong123s, cong123s2); cong3s = p.alts(cong3s, cong3s2)
 
    if cong3s == nil then cong3s = cong123s end
 
    cong1p = p.alts(cong1p, cong1p2); cong2p = p.alts(cong2p, cong2p2); cong3p = p.alts(cong3p, cong3p2)
 
-- Imperfetto congiuntivo
 
    congimp12s = p.over(congimp12s,args["congimp12s"]); congimp3s = p.over(congimp3s,args["congimp3s"])
 
    congimp1p = p.over(congimp1p,args["congimp1p"]); congimp2p = p.over(congimp2p,args["congimp2p"]); congimp3p = p.over(congimp3p,args["congimp3p"])
 
    congimp12s2 = p.wiki(args["congimp12s2"]);  congimp3s2 = p.wiki(args["congimp3s2"])
 
    congimp1p2 = p.wiki(args["congimp1p2"]);  congimp2p2 = p.wiki(args["congimp2p2"]);  congimp3p2 = p.wiki(args["congimp3p2"])
 
    congimp1s = p.alts(congimp12s, congimp12s2); congimp3s = p.alts(congimp3s, congimp3s2)
 
    congimp1p = p.alts(congimp1p, congimp1p2); congimp2p = p.alts(congimp2p, congimp2p2); congimp3p = p.alts(congimp3p, congimp3p2)   
 
-- Imperativo
 
    imp2s = p.over(imp2s,args["imp2s"]); imp3s = p.over(imp3s,args["imp3s"])
 
    imp1p = p.over(imp1p,args["imp1p"]); imp2p = p.over(imp2p,args["imp2p"]); imp3p = p.over(imp3p,args["imp3p"])
 
    imp2s2 = p.over(imp2s2, args["imp2s2"]);  imp3s2 = p.wiki(args["imp3s2"])
 
    imp1p2 = p.wiki(args["imp1p2"]);  imp2p2 = p.wiki(args["imp2p2"]);  imp3p2 = p.wiki(args["imp3p2"])
 
    imp2s = p.alts(imp2s, imp2s2); imp3s = p.alts(imp3s, imp3s2)
 
    imp1p = p.alts(imp1p, imp1p2); imp2p = p.alts(imp2p, imp2p2); imp3p = p.alts(imp3p, imp3p2)
 
-- Alternativa extra per l'imperativo
 
    imp2s3 = p.over(imp2s3, args["imp2s3"]); imp2s = p.alts(imp2s, imp2s3)
 
-- Particelle pronominali riflessive
 
    mi = p.over(mi,args["mi"],0); ti = p.over(ti,args["ti"],0); si = p.over(si,args["si"],0); ci = p.over(ci,args["ci"],0); vi = p.over(vi,args["vi"],0) 
 
-- Tempi composti
 
    if args["pp"] == nil then pplur = p.plurale(-3, pp, "i]]") else pplur = "[[".. p.plurale(-1, args["pp"], "i").. "]]" end
 
    if pp2 >= "a" then pplur2 = "[[".. p.plurale(-1, args["pp2"], "i").. "]]" else pplur2 = "0" end
 
    pplur = p.alts(pplur, pplur2)
 
-- Passato prossimo
 
    if aus == "avere" and pp ~= "" then
 
    paspros1s = "[[ho]] ".. pp; paspros2s = "[[hai]] ".. pp; paspros3s = "[[ha]] ".. pp; paspros1p = "[[abbiamo]] ".. pp; paspros2p = "[[avete]] ".. pp; paspros3p = "[[hanno]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    paspros1s = "[[sono]] ".. pp; paspros2s = "[[sei]] ".. pp; paspros3s = "[[è]] ".. pp; paspros1p = "[[siamo]] ".. pplur; paspros2p = "[[siete]] ".. pplur; paspros3p = "[[sono]] ".. pplur
 
    elseif pp == "" then
 
    paspros1s = ""; paspros2s = ""; paspros3s = ""; paspros1p = ""; paspros2p = ""; paspros3p = ""
 
    else
 
    paspros1s = "[[ho]] ".. pp.. "</br>[[sono]] ".. pp; paspros2s = "[[hai]] ".. pp.. "</br>[[sei]] ".. pp; paspros3s = "[[ha]] ".. pp.. "</br>[[è]] ".. pp; paspros1p = "[[abbiamo]] ".. pp.. "</br>[[siamo]] ".. pplur; paspros2p = "[[avete]] ".. pp.. "</br>[[siete]] ".. pplur; paspros3p = "[[hanno]] ".. pp.. "</br>[[sono]] ".. pplur
 
end
 
-- Trapassato prossimo
 
    if aus == "avere" and pp ~= "" then
 
    trappros1s = "[[avevo]] ".. pp; trappros2s = "[[avevi]] ".. pp; trappros3s = "[[aveva]] ".. pp; trappros1p = "[[avevamo]] ".. pp; trappros2p = "[[avevate]] ".. pp; trappros3p = "[[avevano]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    trappros1s = "[[ero]] ".. pp; trappros2s = "[[eri]] ".. pp; trappros3s = "[[era]] ".. pp; trappros1p = "[[eravamo]] ".. pplur; trappros2p = "[[eravate]] ".. pplur; trappros3p = "[[erano]] ".. pplur
 
    elseif pp == "" then
 
    trappros1s = ""; trappros2s = ""; trappros3s = ""; trappros1p = ""; trappros2p = ""; trappros3p = ""
 
    else
 
    trappros1s = "[[avevo]] ".. pp.. "</br>[[ero]] ".. pp; trappros2s = "[[avevi]] ".. pp.. "</br>[[eri]] ".. pp; trappros3s = "[[aveva]] ".. pp.. "</br>[[era]] ".. pp; trappros1p = "[[avevamo]] ".. pp.. "</br>[[eravamo]] ".. pplur; trappros2p = "[[avevate]] ".. pp.. "</br>[[eravate]] ".. pplur; trappros3p = "[[avevano]] ".. pp.. "</br>[[erano]] ".. pplur
 
end
 
-- Trapassato remoto
 
    if aus == "avere" and pp ~= "" then
 
    traprem1s = "[[ebbi]] ".. pp; traprem2s = "[[avesti]] ".. pp; traprem3s = "[[ebbe]] ".. pp; traprem1p = "[[avemmo]] ".. pp; traprem2p = "[[aveste]] ".. pp; traprem3p = "[[ebbero]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    traprem1s = "[[fui]] ".. pp; traprem2s = "[[fosti]] ".. pp; traprem3s = "[[fu]] ".. pp; traprem1p = "[[fummo]] ".. pplur; traprem2p = "[[foste]] ".. pplur; traprem3p = "[[furono]] ".. pplur
 
    elseif pp == "" then
 
    traprem1s = ""; traprem2s = ""; traprem3s = ""; traprem1p = ""; traprem2p = ""; traprem3p = ""
 
    else
 
    traprem1s = "[[ebbi]] ".. pp.. "</br>[[fui]] ".. pp; traprem2s = "[[avesti]] ".. pp.. "</br>[[fosti]] ".. pp; traprem3s = "[[ebbe]] ".. pp.. "</br>[[fu]] ".. pp; traprem1p = "[[avemmo]] ".. pp.. "</br>[[fummo]] ".. pplur; traprem2p = "[[aveste]] ".. pp.. "</br>[[foste]] ".. pplur; traprem3p = "[[ebbero]] ".. pp.. "</br>[[furono]] ".. pplur
 
end 
 
-- Futuro anteriore
 
    if aus == "avere" and pp ~= "" then
 
    futant1s = "[[avrò]] ".. pp; futant2s = "[[avrai]] ".. pp; futant3s = "[[avrà]] ".. pp; futant1p = "[[avremo]] ".. pp; futant2p = "[[avrete]] ".. pp; futant3p = "[[avranno]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    futant1s = "[[sarò]] ".. pp; futant2s = "[[sarai]] ".. pp; futant3s = "[[sarà]] ".. pp; futant1p = "[[saremo]] ".. pplur; futant2p = "[[sarete]] ".. pplur; futant3p = "[[saranno]] ".. pplur
 
    elseif pp == "" then
 
    futant1s = ""; futant2s = ""; futant3s = ""; futant1p = ""; futant2p = ""; futant3p = ""
 
    else
 
    futant1s = "[[avrò]] ".. pp.. "</br>[[sarò]] ".. pp; futant2s = "[[avrai]] ".. pp.. "</br>[[sarai]] ".. pp; futant3s = "[[avrà]] ".. pp.. "</br>[[sarà]] ".. pp; futant1p = "[[avremo]] ".. pp.. "</br>[[saremo]] ".. pplur; futant2p = "[[avrete]] ".. pp.. "</br>[[sarete]] ".. pplur; futant3p = "[[avranno]] ".. pp.. "</br>[[saranno]] ".. pplur
 
end 
 
-- Condizionale passato
 
    if aus == "avere" and pp ~= "" then
 
    condpas1s = "[[avrei]] ".. pp; condpas2s = "[[avresti]] ".. pp; condpas3s = "[[avrebbe]] ".. pp; condpas1p = "[[avremmo]] ".. pp; condpas2p = "[[avreste]] ".. pp; condpas3p = "[[avrebbero]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    condpas1s = "[[sarei]] ".. pp; condpas2s = "[[saresti]] ".. pp; condpas3s = "[[sarebbe]] ".. pp; condpas1p = "[[saremmo]] ".. pplur; condpas2p = "[[sareste]] ".. pplur; condpas3p = "[[sarebbero]] ".. pplur
 
    elseif pp == "" then
 
    condpas1s = ""; condpas2s = ""; condpas3s = ""; condpas1p = ""; condpas2p = ""; condpas3p = ""
 
    else
 
    condpas1s = "[[avrei]] ".. pp.. "</br>[[sarei]] ".. pp; condpas2s = "[[avresti]] ".. pp.. "</br>[[saresti]] ".. pp; condpas3s = "[[avrebbe]] ".. pp.. "</br>[[sarebbe]] ".. pp; condpas1p = "[[avremmo]] ".. pp.. "</br>[[saremmo]] ".. pplur; condpas2p = "[[avreste]] ".. pp.. "</br>[[sareste]] ".. pplur; condpas3p = "[[avrebbero]] ".. pp.. "</br>[[sarebbero]] ".. pplur
 
end 
 
-- Congiuntivo passato
 
    if aus == "avere" and pp ~= "" then
 
    congpas1s = "[[abbia]] ".. pp; congpas2s = "[[abbia]] ".. pp; congpas3s = "[[abbia]] ".. pp; congpas1p = "[[abbiamo]] ".. pp; congpas2p = "[[abbiate]] ".. pp; congpas3p = "[[abbiano]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    congpas1s = "[[sia]] ".. pp; congpas2s = "[[sia]] ".. pp; congpas3s = "[[sia]] ".. pp; congpas1p = "[[siamo]] ".. pplur; congpas2p = "[[siate]] ".. pplur; congpas3p = "[[siano]] ".. pplur
 
    elseif pp == "" then
 
    congpas1s = ""; congpas2s = ""; congpas3s = ""; congpas1p = ""; congpas2p = ""; congpas3p = ""
 
    else
 
    congpas1s = "[[abbia]] ".. pp.. "</br>[[sia]] ".. pp; congpas2s = "[[abbia]] ".. pp.. "</br>[[sia]] ".. pp; congpas3s = "[[abbia]] ".. pp.. "</br>[[sia]] ".. pp; congpas1p = "[[abbiamo]] ".. pp.. "</br>[[siamo]] ".. pplur; congpas2p = "[[abbiate]] ".. pp.. "</br>[[siate]] ".. pplur; congpas3p = "[[abbiano]] ".. pp.. "</br>[[siano]] ".. pplur
 
end 
 
-- Congiuntivo trapassato
 
    if aus == "avere" and pp ~= "" then
 
    congtrap1s = "[[avessi]] ".. pp; congtrap2s = "[[avessi]] ".. pp; congtrap3s = "[[avesse]] ".. pp; congtrap1p = "[[avessimo]] ".. pp; congtrap2p = "[[aveste]] ".. pp; congtrap3p = "[[avessero]] ".. pp
 
elseif aus == "essere" and pp ~= "" then
 
    congtrap1s = "[[fossi]] ".. pp; congtrap2s = "[[fossi]] ".. pp; congtrap3s = "[[fosse]] ".. pp; congtrap1p = "[[fossimo]] ".. pplur; congtrap2p = "[[foste]] ".. pplur; congtrap3p = "[[fossero]] ".. pplur
 
    elseif pp == "" then
 
    congtrap1s = ""; congtrap2s = ""; congtrap3s = ""; contrap1p = ""; congtrap2p = ""; congtrap3p = ""
 
    else
 
    congtrap1s = "[[avessi]] ".. pp.. "</br>[[fossi]] ".. pp; congtrap2s = "[[avessi]] ".. pp.. "</br>[[fossi]] ".. pp; congtrap3s = "[[avesse]] ".. pp.. "</br>[[fosse]] ".. pp; congtrap1p = "[[avessimo]] ".. pp.. "</br>[[fossimo]] ".. pplur; congtrap2p = "[[aveste]] ".. pp.. "</br>[[foste]] ".. pplur; congtrap3p = "[[avessero]] ".. pp.. "</br>[[fossero]] ".. pplur
 
end
 
-- Genera i titolo dei cassetti per i tempi composti
 
    if pp == "" then
 
    paspros = "manca dei tempi composti"; trappros = "manca dei tempi composti"; traprem = "manca dei tempi composti"; futant = "manca dei tempi composti"; condpas = "manca dei tempi composti"; congpas = "manca dei tempi composti"; congtrap = "manca dei tempi composti"
 
    else
 
    paspros = "ausiliare (".. aus.. ") coniugato all'indicativo presente seguito dal participio passato"
 
    trappros = "ausiliare (".. aus.. ") coniugato all'indicativo imperfetto seguito dal participio passato"
 
    traprem = "ausiliare (".. aus.. ") coniugato all'indicativo passato remoto seguito dal participio passato"
 
    futant = "ausiliare (".. aus.. ") coniugato all'indicativo futuro seguito dal participio passato"
 
    condpas = "ausiliare (".. aus.. ") coniugato al condizionale presente seguito dal participio passato"
 
    congpas = "ausiliare (".. aus.. ") coniugato al congiuntivo presente seguito dal participio passato"
 
    congtrap = "ausiliare (".. aus.. ") coniugato al congiuntivo imperfetto seguito dal participio passato"
 
    end
 
-- Costruisce la tabella di coniugazione
 
    conj = '{| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px" class="inflection-table"\n'
 
    conj = conj .. '|-\n'
 
    conj = conj .. '! colspan="1" style="background:#e2e4c0" | infinito\n'
 
    conj = conj .. '| colspan="1" | ' .. inf .. '\n'
 
    conj = conj .. '|-\n'
 
    conj = conj .. '! colspan="2" style="background:#e2e4c0" | verbo ausiliare\n'
 
    conj = conj .. '| colspan="1" | ' .. aus ..'\n'
 
    conj = conj .. '! colspan="2" style="background:#e2e4c0" | gerundio\n'
 
    conj = conj .. '| colspan="2" | ' .. ger .. '\n'
 
    conj = conj .. '|-\n! colspan="2" style="background:#e2e4c0" | participio presente\n'
 
    conj = conj .. '| colspan="1" | ' .. par .. '\n'
 
    conj = conj .. '! colspan="2" style="background:#e2e4c0" | participio passato\n'
 
    conj = conj .. '| colspan="2" | ' .. pp .. '\n'
 
    conj = conj .. '|-\n! colspan="1" rowspan="2" style="background:#C0C0C0" | persona\n'
 
    conj = conj .. '! colspan="3" style="background:#C0C0C0" | singolare\n'
 
    conj = conj .. '! colspan="3" style="background:#C0C0C0" | plurale\n'
 
    conj = conj .. '|-\n! style="background:#C0C0C0;width:12.5%" | prima\n'
 
    conj = conj .. '! style="background:#C0C0C0;width:12.5%" | seconda\n'
 
    conj = conj .. '! style="background:#C0C0C0;width:12.5%" | terza\n'
 
    conj = conj .. '! style="background:#C0C0C0;width:12.5%" | prima\n'
 
    conj = conj .. '! style="background:#C0C0C0;width:12.5%" | seconda\n'
 
    conj = conj .. '! style="background:#C0C0C0;width:12.5%" | terza\n'
 
    conj = conj .. '|-\n! style="background:#c0cfe4" colspan="1" | indicativo\n'
 
    conj = conj .. '! style="background:#c0cfe4" | io\n'
 
    conj = conj .. '! style="background:#c0cfe4" | tu\n'
 
    conj = conj .. '! style="background:#c0cfe4" | lui/lei\n'
 
    conj = conj .. '! style="background:#c0cfe4" | noi\n'
 
    conj = conj .. '! style="background:#c0cfe4" | voi\n'
 
    conj = conj .. '! style="background:#c0cfe4" | essi/esse\n|-\n'
 
    conj = conj .. '! style="height:3em;background:#c0cfe4" colspan="1" | presente\n'
 
    conj = conj .. '|' .. mi .. pres1s .. '\n|' .. ti .. pres2s .. '\n|' .. si .. pres3s .. '\n|' .. ci .. pres1p .. '\n|' .. vi .. pres2p .. '\n|' .. si .. pres3p .. '\n'
 
    conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | imperfetto\n'
 
    conj = conj .. '|' .. mi .. imperf1s .. '\n|' .. ti .. imperf2s .. '\n|' .. si .. imperf3s .. '\n|' .. ci .. imperf1p .. '\n|' .. vi .. imperf2p .. '\n|' .. si .. imperf3p .. '\n'
 
    conj = conj .. '|-\n! style="height:3em;background:#c0cfe4" colspan="1" | futuro\n'
 
    conj = conj .. '|' .. mi .. fut1s .. '\n|' .. ti .. fut2s .. '\n|' .. si .. fut3s .. '\n|' .. ci .. fut1p .. '\n|' .. vi .. fut2p .. '\n|' .. si .. fut3p .. '\n'
 
    conj = conj .. '|-\n! style="background:#c0d8e4" colspan="1" | condizionale\n'
 
    conj = conj .. '! style="background:#c0d8e4" | io\n'
 
    conj = conj .. '! style="background:#c0d8e4" | tu\n'
 
    conj = conj .. '! style="background:#c0d8e4" | lui/lei\n'
 
    conj = conj .. '! style="background:#c0d8e4" | noi\n'
 
    conj = conj .. '! style="background:#c0d8e4" | voi\n'
 
    conj = conj .. '! style="background:#c0d8e4" | essi/esse\n'
 
    conj = conj .. '|-\n! style="height:3em;background:#c0d8e4" colspan="1" | presente\n'
 
    conj = conj .. '|' .. mi .. cond1s .. '\n|' .. ti .. cond2s .. '\n|' .. si .. cond3s .. '\n|' .. ci .. cond1p .. '\n|' .. vi .. cond2p .. '\n|' .. si .. cond3p .. '\n' 
 
    conj = conj .. '|-\n! style="height:3em;background:#c0d8e4" colspan="1" | passato\n'
 
    conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="mw-collapsible mw-collapsed" style="border:0" data-expandtext="▼ Espandi" data-collapsetext="▲ Nascondi">'.. condpas.. '<div class="mw-collapsible-content">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. mi .. condpas1s .. '\n|' .. ti .. condpas2s .. '\n|' .. si .. condpas3s .. '\n|' .. ci .. condpas1p .. '\n|' .. vi .. condpas2p .. '\n|' .. si .. condpas3p .. '\n |- \n |}</div></div>\n' 
 
    conj = conj .. '|-\n! style="background:#c0e4c0" colspan="1" | congiuntivo\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che io\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che tu\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che lui/che lei\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che noi\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che voi\n'
 
    conj = conj .. '! style="background:#c0e4c0" | che essi/che esse\n|-\n'
 
    conj = conj .. '! style="height:3em;background:#c0e4c0" | presente\n'
 
    conj = conj .. '|' .. mi .. cong123s .. '\n|' .. ti .. cong123s .. '\n|' .. si .. cong3s .. '\n|' .. ci .. cong1p .. '\n|' .. vi .. cong2p .. '\n|' .. si .. cong3p .. '\n' 
 
    conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" rowspan="1" | imperfetto\n'
 
    conj = conj .. '|' .. mi .. congimp12s .. '\n|' .. ti .. congimp12s .. '\n|' .. si .. congimp3s .. '\n|' .. ci .. congimp1p .. '\n|' .. vi .. congimp2p .. '\n|' .. si .. congimp3p .. '\n'
 
    conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" colspan="1" | passato\n'
 
    conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="mw-collapsible mw-collapsed" style="border:0" data-expandtext="▼ Espandi" data-collapsetext="▲ Nascondi">'.. congpas.. '<div class="mw-collapsible-content">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. mi .. congpas1s .. '\n|' .. ti .. congpas2s .. '\n|' .. si .. congpas3s .. '\n|' .. ci .. congpas1p .. '\n|' .. vi .. congpas2p .. '\n|' .. si .. congpas3p .. '\n |- \n |}</div></div>\n' 
 
    conj = conj .. '|-\n! style="height:3em;background:#c0e4c0" colspan="1" | trapassato\n'
 
    conj = conj .. '| style="background:#F0F0F0" colspan="6" | <div class="mw-collapsible mw-collapsed" style="border:0" data-expandtext="▼ Espandi" data-collapsetext="▲ Nascondi">'.. congtrap.. '<div class="mw-collapsible-content">\n {| style="background:#F0F0F0;border-collapse:separate;border-spacing:2px;width:100%" class="inflection-table" \n |- \n | ' .. mi .. congtrap1s .. '\n|' .. ti .. congtrap2s .. '\n|' .. si .. congtrap3s .. '\n|' .. ci .. congtrap1p .. '\n|' .. vi .. congtrap2p .. '\n|' .. si .. congtrap3p .. '\n |- \n |}</div></div>\n'
 
    conj = conj .. '|-\n! colspan="1" rowspan="2" style="height:3em;background:#e4d4c0" | imperativo\n'
 
    conj = conj .. '! style="background:#e4d4c0" | -\n'
 
    conj = conj .. '! style="background:#e4d4c0" | tu\n'
 
    conj = conj .. '! style="background:#e4d4c0" | lui/lei\n'
 
    conj = conj .. '! style="background:#e4d4c0" | noi\n'
 
    conj = conj .. '! style="background:#e4d4c0" | voi\n'
 
    conj = conj .. '! style="background:#e4d4c0" | essi/esse\n'
 
    conj = conj .. '|-\n|\n'
 
    conj = conj .. '|' .. imp2s .. '\n|' .. si .. imp3s .. '\n|' .. imp1p .. '\n|' .. imp2p .. '\n|' .. si .. imp3p .. '\n'
 
    conj = conj .. '|-\n'   
 
    conj = conj .. '|}'
 
    return conj
 
end
 
 
function p.over(x,over,xtra)
 
-- Utilizzato all'interno della funzione itconj
 
-- Rimpiazza una voce verbale standard con quella eventualmente indicata nel template (se quest'ultimo è un link rosso, aggiunge anche la relativa categoria)
 
    if over == nil then return x end
 
    if over < "a" then return '' end
 
    if xtra == 0 then return over .. " " end -- for reflexive pronouns
 
if over >= "a" and mw.title.new(over).exists == false then
 
RedCat = "[[Categoria:Verbi italiani con forme da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]] "
 
else
 
RedCat = ""
 
end
 
return RedCat.. "[[" .. over .. "#Italiano|" .. over .. "]]"
 
end
 
 
function p.wiki(x)
 
-- Utilizzato all'interno della funzione itconj
 
    if x == nil then return " " end
 
    if x == "" then return " " end
 
    -- aggiunge la categoria link rossi
 
    if x == (stem.. "are") or x == (stem.. "iare") or x == (stem.. "ere") or x == (stem.. "gliere") or x == (stem.. "ire") or x == (stem.. "urre") or x == (stem.. "orre") or x == (stem.. "fare")  then --per la voce all'infinito
 
    if x >= "a" and mw.title.new(x).exists == false then
 
    RedCat = "[[Categoria:Verbi italiani da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]] "
 
        else
 
    RedCat = ""
 
    end
 
    else --per tutte le altre
 
    if x >= "a" and mw.title.new(x).exists == false then
 
    RedCat = "[[Categoria:Verbi italiani con forme da scrivere|".. mw.title.getCurrentTitle().subpageText.. "]] "
 
        else
 
    RedCat = ""
 
    end
 
end
 
-- Rende il suo argomento un wikilink, o lo rende nullo se non definito (per facilitare la concatenazione)
 
    return RedCat.. "[[" .. x .. "#Italiano|" .. x .. "]]"
 
    end
 
 
function p.alts(x,y)
 
-- Utilizzato all'interno della funzione itconj
 
-- Aggiunge le eventuali forme alternative, se specificate nel template, separandole da quelle base con una virgola
 
--    if y == nil then return x end
 
    if y >= "a" then return x .. ", " .. y end
 
    return x
 
end
 
 
function p.plurale(pos, str, r)
 
-- Utilizzato all'interno della funzione itconj
 
--genera automaticamente il plurale del participio passato
 
    return str:sub(1, pos-1) .. r
 
end
 
 
return p
 

Versione delle 21:46, 25 ott 2018

Questo modulo costituisce il codice di funzionamento del Template:fan-conj e crea, in base ai parametri inseriti in quest'ultimo, la tabella di coniugazione dei verbi italiani. Si compone di una funzione principale, p.itconj (richiamata direttamente nel template) e di quattro funzioni accessorie (p.over, p.wiki, p.alts e p.plurale) che sono utilizzate solo all'interno della funzione principale per abbreviarne il codice (ad es., la funzione p.wiki rende il suo argomento un wikilink). Le sezioni seguenti illustrano il loro funzionamento, iniziando da quella principale.

Questo modulo è stato importato nel febbraio 2013 a partire dal corrispondente modulo di en.wikt, la cui cronologia riporta i relativi autori (NB: successive modifiche apportate tanto su en. quanto su it. hanno reso i due moduli molto diversi fra loro, per cui i relativi template potrebbero comportarsi in modo molto differente).

Funzione p.itconj

È la funzione principale del modulo; interpreta i parametri inseriti nel template (radice, desinenza all'infinito, ausiliare, eventuali forme irregolari) e in base ad essi costruisce la tabella che ne costituisce l'output. La funzione internamente è suddivisibile in sottosezioni identificate nel modulo dai -- commenti; tali sottosezioni vengono di seguito brevemente descritte separatamente.

La prima sottosezione definisce le variabili passate al modulo dal template:

  • stem : la radice del verbo (ad. es. parl per "parlare", corr per "correre" e così via); corrisponde al primo parametro del Template:It-conj
  • type : la desinenza (all'infinito) del verbo (are, ere, arsi etc.); corrisponde al secondo parametro del Template:It-conj
  • aus : l'ausiliare (essere o avere); corrisponde al terzo parametro del Template:It-conj

Successivamente vengono definite le variabili interne al template, che saranno poi codificate successivamente: ad es. inf per la voce verbale all'infinito, pres1s per la prima persona singolare del presente indicativo, prem1s per la prima persona singolare del passato remoto e così via; se si aggiunge una nuova variabile è bene aggiungerla anche a tale lista, altrimenti potrebbe risultare nulla.

Segue poi la costruzione delle voci verbali standard: in base alla desinenza (type) il modulo genera le stringhe per le varie forme flesse unendo radice (stem) e relativa uscita: ad es. se la desinenza è "are" (if type = "are"), pres1s = stem.. "o" (parlo); prem1s = stem.. "ai" (parlai) e così via. Stesso discorso per i verbi riflessivi (tipe = "arsi" e simili).

Nella sottosezione identificata da -- Recupera le eventuali forme irregolari o varianti.., le stringhe per le voci verbali così create vengono riunite in stringhe uniche: la funzione p.over sostituisce la forma flessa generata automaticamente con quella eventualmente inserita manualmente nel template, se presente; la funzione p.alts aggiunge alla forma flessa generata automaticamente quella eventualmente inserita manualmente, se presente. Ad es. per il presente indicativo:

  • pres1s = p.over(pres1s,args["pres1s"]) -> se nel template è inserito il parametro "pres1s=", viene sovrascritto a quello generato automaticamente
  • pres1s = p.alts(pres1s, pres1s2) -> se nel template è inserito il parametro "pres1s2=", viene aggiunto accanto a quello generato automaticamente

Nella sottosezione -- Tempi composti vengono generate le forme per i tempi composti (passato prossimo etc.) e i relativi titoli dei cassetti. Prima si genera automaticamente, tramite la funzione p.plurale (vedi sotto), il plurale del participio passato pplur (necessario se l'ausiliare è essere). Successivamente, in base all'ausiliare inserito, si generano le stringhe per le varie voci verbali unendo ausiliare (coniugato) e participio passato: ad es. per il passato prossimo:

  • se l'ausiliare è avere (if aus = "avere"), paspros1s = "[[ho]] ".. pp (ho parlato) e così via
  • se l'ausiliare è essere (if aus = "essere"), paspros1s = "[[sono]] ".. pp (sono arrossito) e così via
  • se il participio passato non esiste (if pp = "") le forme composte si annullano paspros1s = ""
  • se l'ausiliare è diverso da "essere" o "avere" (else), escono le doppie forme composte paspros1s = "[[ho]] ".. pp, "[[sono]] ".. pp e così via.

Subito dopo si generano i titoli dei cassetti, con la corrispondente descrizione (se if pp = "", la descrizione è per tutti "manca dei tempi composti").

Infine, nella sottosezione -- Costruisce la tabella di coniugazione il modulo costruisce la tabella (conj) e vi inserisce le forme flesse precedentemente generate. Il modulo restituise tale tabella con output (return conj).

Funzione p.over

La funzione p.over (p.over(x,over,xtra)) serve per sovrascrivere l'eventuale voce verbale irregolare (identificata dal suo secondo argomento, over), se definita, a quella generata automaticamente (identificata dal primo argomento x). Ad esempio, all'interno della funzione principale il codice

  • pp = p.over(pp,args["pp"])

cerca l'eventuale parametro "pp=" (participio passato) nel template; se questo è definito (come nel caso del verbo "scrivere", in cui "pp= scritto") lo rimpiazza alla forma predefinita (che sarebbe, sempre nel caso di "scrivere", scrivuto), se non lo è restituisce invece quest'ultima.

Il terzo parametro xtra va settato su 0 solo nel caso dei verbi riflessivi, e inserisce la corrispondete particella pronominale ("mi", "ti" etc.), in tutti gli altri casi può essere ignorato.

Funzione p.wiki

La funzione p.wiki (p.wiki(x)) rende il suo argomento, x, un wikilink, con "pipe" alla sezione italiana. In pratica, nel modulo, scrivere p.wiki(qualcosa) equivale al wikicodice [[qualcosa#Italiano|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 italiani con forme da scrivere, e/o la Categoria:Verbi italiani da scrivere se ad essere rosso è il link verso la forma all'infinito.

Funzione p.alts

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

  • pp = p.alts(pp, pp2)

cerca l'eventuale parametro "pp2=" (variante del participio passato) nel template; se questo è definito (come nel caso del verbo "vedere", in cui "pp2= visto") lo aggiunge al seguito di quella base (che sarebbe, sempre nel caso di "vedere", veduto), se non lo è restituisce invece solo quest'ultima.

Funzione p.plurale

La funzione p.plurale (p.plurale(pos, str, r)) sostituisce, al suo argomento str, tanti caratteri quanti sono indicati dall'argomento pos con l'argomento r. In pratica, il codice p.plurale(-1, "cane", i) restituisce "cani". Serve per generare il plurale del participio passato pplur (a sua volta necessario per i tempi composti con ausiliare essere) tramite il codice:

  • pplur = p.plurale(-3, pp, "i]]") e simili