Module:سۆز ئانالىزى
Documentation for this module may be created at Module:سۆز ئانالىزى/doc
--[[
ئۇيغۇرچە سۆزلەرنى ئانالىز قىلىش پروگراممىسى
نەشرى 1.0
تەلئەت قادىر
]]--
b = require('Module:bases')
local export = {}
function export.boghum(str)
if type(str) == "table" then str = str.args[1] end
if str==nil or str=="" then
str = mw.title.getCurrentTitle().text
end
local t = {}
local last_end = 1
local tepildi = 0
local s, e = mw.ustring.find(str,"(.-)[اەېىوۇۆۈ]" , 1)
while s do
tepildi = 1
if s==1 then --birinchi boghum
table.insert(t,mw.ustring.sub(str,s,e))
else --bashqa boghum
perqi= e - last_end
if perqi == 0 then
t[#t] = t[#t] .. mw.ustring.sub(str,s,s)
elseif perqi == 1 then --ABA => A'BA
table.insert(t,mw.ustring.sub(str,s,e))
elseif perqi == 2 then --ABBA => AB'BA
table.insert(t,mw.ustring.sub(str,s+1,e))
t[#t-1] = t[#t-1] .. mw.ustring.sub(str,s,s)
elseif perqi == 3 then --ABBBA => ABB'BA
table.insert(t,mw.ustring.sub(str,s+2,e))
t[#t-1] = t[#t-1] .. mw.ustring.sub(str,s,s+1)
elseif perqi == 4 then --ABBBBA => ABB'BBA
table.insert(t,mw.ustring.sub(str,s+2,e))
t[#t-1] = t[#t-1] .. mw.ustring.sub(str,s,s+1)
else
--
end
end
last_end = e + 1
s, e = mw.ustring.find(str,"(.-)[اەېىوۇۆۈ]" , last_end)
end
if s==nil and tepildi==0 or #str==1 then -- بەلكىم سوزۇق تاۋۇش يوق بىر ھەرپ
--t[#t] = t[#t]
else
--t[#t] = t[#t] --.. "111"
if last_end <= #str then
--t[#t] = t[#t] --.. "222"
t[#t] = t[#t] .. mw.ustring.sub(str,last_end)
end
end
return t
end
function export.show(frame)
san = {"بىر","ئىككى","ئۈچ","تۆت","بەش","ئالتە","يەتتە","سەككىز","توققۇز","ئون","ئون بىر","ئون ئىككى","ئون ئۈچ","ئون تۆت","ئون بەش"}
PAGENAME = mw.title.getCurrentTitle().text
local args = frame:getParent().args
local str = frame.args[1]
local bgh = args["bgh"]; if bgh == "" then bgh = nil end
ret = ""
if str==nil or str=="" then
str = PAGENAME
end
--return str
if mw.ustring.find(str," ") ~= nil then
return ""
end
if mw.ustring.find(str,"-") ~= nil then
return ""
end
if bgh ~= nil then
--return bgh
else
boghumlar = export.boghum(str)
-- ret = table.concat(boghumlar,"'")
if #boghumlar ~= 0 then
ret = ret .. b.fait_categorie_contenu('ئۇيغۇر تىلىدىكى ' .. san[ #boghumlar] .. ' بوغۇملۇق سۆزلەر') -- .. "</br>جەمئى بوغۇم سانى:" .. #boghumlar
end
--ret = ret .. "</br>ئاخىرقى بوغۇم:" .. boghumlar[#boghumlar]
--ret = ret .. "</br>ئەڭ ئاخىرقى تاۋۇش: "
--ret = ret .. "</br>ئاخىرقى بوغۇمدىكى ئەڭ ئاخىرقى سوزۇق تاۋۇش: "
--ret = ret .. "</br>ئاخىرقى بوغۇمدىكى ئاڭ ئاخىرقى ئۈزۈك تاۋۇش"
end
return ret
end
function export.imla( frame )
PAGENAME = mw.title.getCurrentTitle().text
local args = frame:getParent().args
local str = frame.args[1]
local bgh = args["bgh"]; if bgh == "" then bgh = nil end
ret = ""
if str==nil or str=="" then
str = PAGENAME
end
if mw.ustring.find(str," ") ~= nil then
return "سۆز بىرىكمىسى"
end
if mw.ustring.find(str,"-") ~= nil then
return "قوشما سۆز"
end
ret = str
if bgh ~= nil then
--return bgh
else
boghumlar = export.boghum(str)
ret = ret .. "</br>" .. #boghumlar .. "</br>" .. table.concat(boghumlar,"'")
if #boghumlar > 0 then
--ret = ret .. b.fait_categorie_contenu('ئۇيغۇر تىلىدىكى ' .. san[ #boghumlar] .. ' بوغۇملۇق سۆزلەر') -- .. "</br>جەمئى بوغۇم سانى:" .. #boghumlar
a_boghum = boghumlar[#boghumlar]
ret = ret .. "</br>ئاخىرقى بوغۇم:" .. a_boghum
ret = ret .. "</br>ئەڭ ئاخىرقى تاۋۇش: " .. mw.ustring.sub(a_boghum,-1)
a_sozuq = ""
s,e = mw.ustring.find(a_boghum,"(.-)[اەېىوۇۆۈ]" , 1)
while s do
--ret = ret .. "</br>tapti: " .. s .. ", " .. e
a_sozuq = mw.ustring.sub(a_boghum,e,e)
s,e = mw.ustring.find(a_boghum,"(.-)[اەېىوۇۆۈ]" , e+1)
end
ret = ret .. "</br>ئاخىرقى بوغۇمدىكى ئەڭ ئاخىرقى سوزۇق تاۋۇش: " .. a_sozuq
--ret = ret .. "</br>ئاخىرقى بوغۇمدىكى ئەڭ ئاخىرقى ئۈزۈك تاۋۇش"
end
end
return ret
end
return export