Modul:Collation: Porovnání verzí

Odebráno 63 bajtů ,  před 4 lety
revert - nepracuje správně
(základní oprava a zcela základní optimalizace (na trochu důkladnější teď nemám čas))
(revert - nepracuje správně)
 
 
local function charAt( str, pos )
-- Pomocné tabulky
local primaryAlphabet = {}
local secondaryAlphabet = {}
 
-- Inicializace pomocných tabulek
for i, letter in ipairs( _module.alphabet ) do
secondaryAlphabet[letter[1]] = i
primaryAlphabet[letter[1]] = secondaryAlphabet[letter[2]]
end
 
 
local function charAt( str, pos )
return mw.ustring.sub( str, pos, pos )
 
 
local function getChar( str, pos, alphabet )
local newpos = pos
-- 0 if left = right
-- 1 if left > right
local function compareByAlphabet( strLeft, strRight, alphabet )
local iLeft = 1
return -1
elseif alphabet[charLeft] > alphabet[charRight] then
return 1
elseif alphabet[charLeft] < alphabet[charRight] then
return -1
elseif alphabet[charLeft] < alphabet[charRight] then
return 1
end
end
local strLeft = mw.ustring.lower( left )
local strRight = mw.ustring.lower( right )
 
local primaryAlphabet = {}
local secondaryAlphabet = {}
if strLeft == strRight then
return 0
end
 
for i, letter in ipairs( _module.alphabet ) do
secondaryAlphabet[letter[1]] = i
primaryAlphabet[letter[1]] = secondaryAlphabet[letter[2]]
end
output = compareByAlphabet( strLeft, strRight, primaryAlphabet )
if output == 0 then
function _module.sortCompare( left, right )
return _module.compare( left, right ) <== 01
end
16 389

editací