Moduł:Ramka: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Nie podano opisu zmian
Nie podano opisu zmian
Linia 443:
local maksymalna_liczba_nazwy_danego_parametru=0;
for nazwa_parametru, wartosc_parametru in pairs(args)do
local czy_jedynka=false;
if(type(nazwa_parametru)=="string")then
local nazwa_podstawy_parametru,spacja,liczba=mw.ustring.match(nazwa_parametru,"^([%a%s]*%a)(%s?)(%d+)$");
Linia 449 ⟶ 450:
spacja="";
liczba=1;
czy_jedynka=true;
end;
local subtab=tabela[nazwa_podstawy_parametru];
if(subtab)then
local nie_spacja_parametru=parametry_modul.CzyTak(subtab[1]);
local czy_z_jedynka=parametry_modul.CzyTak(subtab[2]);
liczba=tonumber(liczba) or 0;
if((((not nie_spacja_parametru and (((spacja==" ")and ((liczba>=1)or((not czy_jedynka)and(czy_z_jedynka))or((not nie_spacja_parametru czy_z_jedynka)and(not czy_jedynka)))) or(((not czy_z_jedynka)and(czy_jedynka))and(spacja=="" and liczba==1))))
or (((nie_spacja_parametru and (((spacja=="")and ((liczba>=1)or((not czy_jedynka)and(czy_z_jedynka))or(nie_spacja_parametru(not czy_z_jedynka)and(not czy_jedynka)))) or(((not czy_z_jedynka)and(czy_jedynka))and(spacja=="" and liczba==1))))
)then
if(((podstawa_parametru_wyszukiwana) and (nazwa_podstawy_parametru==podstawa_parametru_wyszukiwana))or(not podstawa_parametru_wyszukiwana))then
Linia 473 ⟶ 476:
if(type(wartosc_parametru)=="string")then
local maksymalna_liczba_nazwy_danego_parametru=LiczbaZmiennychOOgolniePodstawieParametru(wartosc_parametru);
maksimum=(tabela[wartosc_parametru] and tabela[wartosc_parametru][2])
and math.max(maksimum,maksymalna_liczba_nazwy_danego_parametru-(tonumber(tabela[wartosc_parametru][23]) or 0))
or (tonumber(maksymalna_liczba_nazwy_danego_parametru) or 0);
end;
Linia 525 ⟶ 528:
if(zacznij_na_poczatku==0)then return "(początek jest ustawiony na zero)";end;
for name, tab_par in pairs(tabela)do
if(tab_par[34])then zacznij_na_poczatku=math.min(zacznij_na_poczatku,tab_par[34]);end;
if(tab_par[45])then skoncz_na_koncu=math.max(skoncz_na_koncu,tab_par[45]);end;
end;
Linia 535 ⟶ 538:
local wytnij=parametry_modul.CzyTak(frame.args["wytnij"]);
local _i=parametry_modul.CzyTak(frame.args["znacznik"])and frame.args["znacznik"] or "_";
local czy_parametry_ze_spacjaczy_parametry_ze_spacja_i_jedynka=function(nazwa_parametru)
local value=tabela[nazwa_parametru];
if(value)then
return not parametry_modul.CzyTak(value[1]),parametry_modul.CzyTak(value[2]);
end;
return true,false;
end;
if(not czy_rozne)then
Linia 553 ⟶ 556:
for zmienne_parametrowe,_ in pairs(tabela_wszystkich_parametrow)do
if(zmienne_parametrowe)then
local czy_parametrowze_spacja,czy_z_jedynka=czy_parametry_ze_spacjaczy_parametry_ze_spacja_i_jedynka(zmienne_parametrowe);
local element2=pf.args[zmienne_parametrowe..((czy_parametrowze_spacja)and " " or "")..licznik];
local czy2=(licznik==1)and ((element2 and(not wytnij)) or((wytnij)and (parametry_modul.CzyTak(element2))));
local element=((czy_z_jedynka)or(licznik>1)) and element2 or (czy2 and element2 or pf.args[zmienne_parametrowe..((licznik>1)and (((czy_parametrowze_spacja)and " " or "")..licznik) or "")]);
czy=czy or (((element or czy2) and not wytnij) or ((wytnij)and (parametry_modul.CzyTak(element2) or parametry_modul.CzyTak(element))));
local tabelka_szablonow={
["{{".._i.."}}"]=licznik,
["{{".._i.._i.."}}"]=((not czy2)and((licznik>1)and licznik or ((not czy_z_jedynka) and "" or 1)) or 1),
};
lancuch=mw.ustring.gsub(lancuch,"{{".._i.."+}}",tabelka_szablonow);
Linia 600 ⟶ 603:
local czy_niepuste=false;
local wytnij_ujemne=false;
local function Analiza_zmiennej_parametrowej(zmienne_parametrowe,licznik,spacjaczy_ze_spacja,czy_z_jedynka)
local wartosc,klucz;
if(zmienne_parametrowe)then
Linia 607 ⟶ 610:
if(liczb2<1)then wytnij_ujemne=true;end;
if(liczb2>0)then
local czy2=(liczb2=element=1)and pf.args[element..((spacjaczy_ze_spacja)and " " or "")..liczb2];
local czy2=(liczb2==1)and element;
czy_niepuste=parametry_modul.CzyTak(czy2);
local wartosc_elementu=pf.args[element..((czy_z_jedynka)or(liczb2>1)and ((spacja)and " " or "")..liczb2 or "")]
and element
or (czy2 and element or pf.args[element..((liczb2>1)and ((czy_ze_spacja)and " " or "")..liczb2 or "")]);
czy_niepuste=czy_niepuste or parametry_modul.CzyTak(wartosc_elementu);
czy=czy or wartosc_elementu or czy2;
wartosc="{{{"..zmienne_parametrowe..((not czy_z_jedynka) and ((not czy2)and((liczb2>1)and (((spacjaczy_ze_spacja)and " " or "")..liczb2) or "")
or ((spacjaczy_ze_spacja)and " " or "")..1) or (((czy_ze_spacja)and " " or "")..liczb2));
klucz="{{{%s*"..zmienne_parametrowe..((spacjaczy_ze_spacja)and "%s+" or "").."{{%s*".._i.._i.."+%s*}}";
end;
end;
local subtab=tabela[zmienne_parametrowe];
local czy_w_tabeli=subtab and subtab[23];
local liczba_przesuniecia=(czy_w_tabeli)and czy_w_tabeli or 0;
Niewspomniane_w_rozne(zmienne_parametrowe,liczba_przesuniecia);
Linia 636 ⟶ 642:
if(lokalizacja)then
zmienne_parametrowe=mw.text.trim(zmienne_parametrowe);
local kluczczy_ze_spacja,wartoscczy_z_jedynka=Analiza_zmiennej_parametrowej(zmienne_parametrowe,licznik,czy_parametry_ze_spacja(zmienne_parametrowe));
local klucz,wartosc=Analiza_zmiennej_parametrowej(zmienne_parametrowe,licznik,czy_ze_spacja,czy_z_jedynka);
if(wytnij_ujemne)then break;end;
lancuch_zaanalizowany=Tekst_do_analizy(lancuch_zaanalizowany,klucz,wartosc);