Module:سۆز ئانالىزى

ئورنى Wiktionary

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