From 5035a58df2e820f8dbfd5b4fdb7bcd538705be0b Mon Sep 17 00:00:00 2001 From: UndeadMaelys Date: Wed, 4 May 2022 21:06:53 +0200 Subject: [PATCH] plugged in r2h2 --- R2H2.lua | 241 ++++++++++++++++++++++++++++ converter.lua | 16 +- html/convo/text/start.html | 1 - html/convo/text/start_heonian.html | 1 + html/convo/text/start_roman.html | 1 + test.html | 245 +++++++++++++---------------- 6 files changed, 359 insertions(+), 146 deletions(-) create mode 100644 R2H2.lua delete mode 100644 html/convo/text/start.html create mode 100644 html/convo/text/start_heonian.html create mode 100644 html/convo/text/start_roman.html diff --git a/R2H2.lua b/R2H2.lua new file mode 100644 index 0000000..48f5bfe --- /dev/null +++ b/R2H2.lua @@ -0,0 +1,241 @@ +--functions +function CopyToClipboard(textString) + outClipFile, err = io.open("clipboardTempFile",'w') + if err then + print("[Error Opening Clipboard Temporary File for Writing]") + return + end + outClipFile:write(textString,'\n') + outClipFile:close() + command = 'cat "' .. "clipboardTempFile" .. '" | xclip -selection clipboard &' + os.execute(command) + os.execute("rm clipboardTempFile") +end + +function PrintPosition(string) + local print_text = "" + for i = 1, string.len(string) do + while i >= 10 do i = i - 10 end + print_text = print_text .. tostring(i) + end + print("pos: " .. print_text) + print_text = "" + for i = 1, string.len(string) do + i = math.floor(i/10) + while i >= 10 do i = i - 10 end + if i == 0 then i = " " end + print_text = print_text .. tostring(i) + end + print(" " ..print_text) +end + +-- DATA +-- vowels +vowel_table = {"a","e","i","o","u"} +symbol_vowel = {"","","","",""} +symbol_extending_vowel = {"","","","",""} +-- consonants +consonant_table = {"g","sh","r","ny","ch","n","y","f","t","k","w","l","p","b","d","h"} +symbol_consonant = {"","","","","","","","","","","","","","","",""} +symbol_extending_consonant = {"","","","","","","","","","","","","","","",""} +-- composites +composing_consonant_table = {"g","sh","r","ny","ch","m","y","f","t","k","w","l","p","b","d","h"} +symbol_composite = { + {"","","","","","","","","","","","","","","",""}, + {"","","","","","","","","","","","","","","",""}, + {"","","","","","","","","","","","","","","",""}, + {"","","","","","","","","","","","","","","",""}, + {"","","","","","","","","","","","","","","",""} +} + +-- program start +function convertToHeonian(text) + local step = true -- this is set to false when a conclusion has been reached + local transcribed = false + local transcribed_text = "" + + local debug = false + local autocopy = false + + for _, v in pairs(arg) do + if v == "-v" or v == "--verbose" then debug = true end + if v == "-c" or v == "--copy" then autocopy = true end + end + + -- evaluate conditions that cancel the script + if text == "" then + step = false + end + + -- if its necessary to run the script, then we continue :D + if step then + -- prepare text + -- 1. add syllable marker at start if it isn't already present. + if string.sub(text,1,1) ~= "." then text = "." .. text end + -- 2. turn [x] into [ksh] + text = string.gsub(text,"x","ksh") + -- 3. turn [z] into [dsh] + text = string.gsub(text,"z","d.sh") + -- 4. turn [j] into [y] + text = string.gsub(text,"j","y") + + -- read input and transcribe + -- debug log + if debug then print("") end + if debug then print("src: ".. text) end + if debug then PrintPosition(text) end + + -- sort through all the letters + local i = 1 + while i < string.len(text)+1 do + local pos = i + -- know current pos, since we will be modifying i but still evaluating from the position + local char_step = true + -- this is false when a conclusion has been reached about what symbol does the next segment correspond to + local debug_s = "" + -- debug string + local new_syllable = false + -- this is true when a new syllable begins, and is used to distinguish normal vowels and consonants from trailing ones + + if string.sub(text,i,i) == " " + or string.sub(text,i,i) == "\t" + or string.sub(text,i,i) == "-" then -- check if its an unsupported symbol to skip it. + -- adjust i + i = i + 1 + pos = i + char_step = false + end + -- init checkup + if string.sub(text,i,i) == "." then -- this forces the new syllable, since . is the syllable separator, also skips the symbol and repositions + -- debug log + if debug then print("") end + if debug then print(" @[".. tostring(i).."]"..debug_s.." new syllable MARKER found") end + -- start syllable + new_syllable = true + debug_s = "" + -- adjust i + i = i + 1 + -- debug log + if debug then print(" >>> adjusting by (1) from [".. pos .. "] to [".. i .. "]" ) end + -- adjust pos + pos = i + end + + -- debug log + if debug then print("") end + if debug then print(" @[".. tostring(i).."]"..debug_s.." checking string: ".. string.sub(text,i,i)) end -- debug print positional info + + -- lets check if it is a composite + if char_step == true then + local cons_id = 0 + local length = 0 + -- check if its valid consonant for a composite + for _, consonant in pairs(composing_consonant_table) do + cons_id = cons_id + 1 + -- get consonant length its checking against, so we can properly compare. + length = string.len(consonant) + -- debug log + --if debug then print(" checking composite consonant: " .. composing_consonant_table[cons_id]) end + if string.sub(text,i,i+length-1) == consonant then + -- debug log + if debug then print(" (!) valid consonant: " .. composing_consonant_table[cons_id]) end + -- check if its a valid vowel AFTER the valid consonant, while sorting through all vowels + local vowel_id = 0 + for _, vowel in pairs(vowel_table) do + vowel_id = vowel_id + 1 + --if debug then print(" checking composite: " .. composing_consonant_table[cons_id]..vowel_table[vowel_id]) end + if string.sub(text,i+length,i+length) == vowel then + -- adjust by consonant length + vowel + i = i + string.len(consonant) + 1 + -- debug log + if debug then print(" (!) valid composite: " .. consonant .. vowel ..", length: "..length+1) end + if debug then print(" >>> adjusting by (" .. tostring(length+1) .. ") from [".. pos .. "] to [".. i .. "]" ) end + -- transcribe; conclude; + transcribed_text = transcribed_text .. symbol_composite[vowel_id][cons_id] + char_step = false + break + end + end + -- no need to check for more consonants if one is valid + break + end + end + if debug then if char_step ~= false then print(" [!] invalid composite") end end + end + + -- lets check if it is a non composite vowel + if char_step == true then + local id = 0 + local length = 0 + for _, vowel in pairs(vowel_table) do + id = id+ 1 + -- get vowel length its checking against, so we can properly compare. + length = string.len(vowel) + -- debug log + --if debug then print(" checking standalone vowel: " .. vowel_table[id]) end + if string.sub(text,i,i+length-1) == vowel then + i = i + string.len(vowel) + -- debug log + if debug then print(" (!) valid vowel: " .. vowel_table[id]) end + if debug then print(" >>> adjusting by (" .. tostring(length) .. ") from [".. pos .. "] to [".. i .. "]" ) end + -- transcribe; conclude; + local table = nil + if new_syllable then + table = symbol_vowel + else + table = symbol_extending_vowel + end + transcribed_text = transcribed_text .. table[id] + char_step = false + break + end + end + end + + + -- lets check if it is a non composite consonant + if char_step == true then + local id = 0 + local length = 0 + for _, consonant in pairs(consonant_table) do + id = id+ 1 + -- get consonant length its checking against, so we can properly compare. + length = string.len(consonant) + -- debug log + --if debug then print(" checking standalone consonant: " .. consonant_table[id]) end + if string.sub(text,i,i+length-1) == consonant then + i = i + string.len(consonant) + -- debug log + if debug then print(" (!) valid consonant: " .. consonant_table[id]) end + if debug then print(" >>> adjusting by (" .. tostring(length) .. ") from [".. pos .. "] to [".. i .. "]" ) end + -- transcribe; conclude; + local table = nil + if new_syllable then + table = symbol_consonant + else + table = symbol_extending_consonant + end + transcribed_text = transcribed_text .. table[id] + char_step = false + break + end + end + end + + -- if no idea, move on, and just be confused. prints ? + if char_step == true then + -- debug log + if debug then print(" [!] no idea; moving on to next [".. pos + 1 .."]") end + -- no idea + -- transcribed_text = transcribed_text .. "?" + i = i + 1 + -- debug log + if debug then print(" >>> adjusting by (1) from [".. pos .. "] to [".. i .. "]" ) end + end + end + + -- output + if autocopy then CopyToClipboard(string.sub(transcribed_text,0,-1)) end + return transcribed_text + end +end \ No newline at end of file diff --git a/converter.lua b/converter.lua index 33f8789..2e2b682 100644 --- a/converter.lua +++ b/converter.lua @@ -1,6 +1,7 @@ +require "R2H2" function strip_symbols(str) - local symbol_table = " ~()!?:> \ No newline at end of file diff --git a/html/convo/text/start_heonian.html b/html/convo/text/start_heonian.html new file mode 100644 index 0000000..3e1acab --- /dev/null +++ b/html/convo/text/start_heonian.html @@ -0,0 +1 @@ +

\ No newline at end of file diff --git a/html/convo/text/start_roman.html b/html/convo/text/start_roman.html new file mode 100644 index 0000000..2fe67a2 --- /dev/null +++ b/html/convo/text/start_roman.html @@ -0,0 +1 @@ +

\ No newline at end of file diff --git a/test.html b/test.html index dc4c4ca..be6c4f7 100644 --- a/test.html +++ b/test.html @@ -8,6 +8,8 @@ + +

@@ -15,12 +17,11 @@ LU'NYA
-

+

nyan’pash! balfur yu e she polika'nya dre?

-

- -nyan’pash balfur yu e she polika'nya dre +

+

@@ -31,19 +32,17 @@ nyan’pash balfur yu e she polika'nya dre ESH'NYUI -

+

re chu meshu yu polika'nya

-

- -re chu meshu yu polika'nya +

+

-

+

(po'nyash!!!)

-

- -po'nyash +

+

@@ -54,19 +53,17 @@ po'nyash LU'NYA -

+

aa, anko!

-

- -aa, anko +

+

-

+

(po'nyash!)

-

- -po'nyash +

+

@@ -77,19 +74,17 @@ po'nyash ESH'NYUI -

+

ba yu e wawote to pu mipura lili'nya dre?

-

- -ba yu e wawote to pu mipura lili'nya dre +

+

-

+

uwu

-

- -uwu +

+

@@ -100,12 +95,11 @@ uwu LU'NYA -

+

relfur chu mya pu yu mya relfur lup apatka’nya faka’nya’pash ponme mya wawote polika’nya peekaka’nya’pash.

-

- -relfur chu mya pu yu mya relfur lup apatka’nya faka’nya’pash ponme mya wawote polika’nya peekaka’nya’pash +

+

@@ -116,19 +110,17 @@ relfur chu mya pu yu mya relfur lup apatka’nya faka’nya’pash ponme mya waw ESH'NYUI -

+

mi’shi’pash~

-

- -mi’shi’pash +

+

-

+

balfur yu e ton polika’nya dre?

-

- -balfur yu e ton polika’nya dre +

+

@@ -139,26 +131,23 @@ balfur yu e ton polika’nya dre LU'NYA -

+

mishi’pash!!

-

- -mishi’pash +

+

-

+

relfurla mya ton polika'nya yu meluton ka’nya!

-

- -relfurla mya ton polika'nya yu meluton ka’nya +

+

-

+

balfurla yu dra?

-

- -balfurla yu dra +

+

@@ -169,19 +158,17 @@ balfurla yu dra ESH'NYUI -

+

relfurla yu esh’dre mya ton polika’nya yu puroton ka’nya~

-

- -relfurla yu esh’dre mya ton polika’nya yu puroton ka’nya +

+

-

+

relfur yu shi’ro’bae’pu yu pon’ya ka’nya~

-

- -relfur yu shi’ro’bae’pu yu pon’ya ka’nya +

+

@@ -192,12 +179,11 @@ relfur yu shi’ro’bae’pu yu pon’ya ka’nya LU'NYA -

+

puroton yu ponya ton ka’nya!

-

- -puroton yu ponya ton ka’nya +

+

@@ -208,19 +194,17 @@ puroton yu ponya ton ka’nya ESH'NYUI -

+

be’nyui-rerenlafura yu meluton mimifaka’nya…

-

- -be’nyui-rerenlafura yu meluton mimifaka’nya… +

+

-

+

relfur yu meluton mimiku'pash~

-

- -relfur yu meluton mimiku'pash +

+

@@ -231,19 +215,17 @@ relfur yu meluton mimiku'pash LU'NYA -

+

’o, relfur chu parefaka’nya…

-

- -’o, relfur chu parefaka’nya… +

+

-

+

be’nyui-babanlafura yu meluton naomiminku dre?

-

- -be’nyui-babanlafura yu meluton naomiminku dre +

+

@@ -254,26 +236,23 @@ be’nyui-babanlafura yu meluton naomiminku dre ESH'NYUI -

+

uu, relfur yu naomiminku mya mimifuku mya ton ka’nya...

-

- -uu, relfur yu naomiminku mya mimifuku mya ton ka’nya +

+

-

+

relfur yu guraton to meluton mimifuku..

-

- -relfur yu guraton to meluton mimifuku +

+

-

+

relfur yu ton mimiku’pash~

-

- -relfur yu ton mimiku’pash +

+

@@ -284,19 +263,17 @@ relfur yu ton mimiku’pash LU'NYA -

+

ishi-balfur yu mishi'pash!

-

- -ishi-balfur yu mishi'pash +

+

-

+

balfur chu mya arilaen yu en ka’nya peekaka’nya fa'dre?

-

- -balfur chu mya arilaen yu en ka’nya peekaka’nya fa'dre +

+

@@ -307,26 +284,23 @@ balfur chu mya arilaen yu en ka’nya peekaka’nya fa'dre ESH'NYUI -

+

yesh-balfur yu mishi'pash~

-

- -yesh-balfur yu mishi'pash +

+

-

+

(>///////////////<)

-

- +

-

+

relfur yu ari’laen parefaka’nya, balfur yu pareka’nya dra?

-

- -relfur yu ari’laen parefaka’nya, balfur yu pareka’nya dra +

+

@@ -337,37 +311,33 @@ relfur yu ari’laen parefaka’nya, balfur yu pareka’nya dra LU'NYA -

+

relfur chu arilaen dedaka’nya.

-

- -relfur chu arilaen dedaka’nya +

+

-

+

imanla rila shashka’nya’pash.

-

- -imanla rila shashka’nya’pash +

+

-

+

imanla shoo chu ike to pikeshe ka’nya.

-

- -imanla shoo chu ike to pikeshe ka’nya +

+

-

+

relfur chu arilaenlan luka’nya’pash.

-

- -relfur chu arilaenlan luka’nya’pash +

+

@@ -378,12 +348,11 @@ relfur chu arilaenlan luka’nya’pash ESH'NYUI -

+

arilaenla shoo chu pikeshe fuka’nya’bash dra?

-

- -arilaenla shoo chu pikeshe fuka’nya’bash dra +

+

@@ -394,19 +363,17 @@ arilaenla shoo chu pikeshe fuka’nya’bash dra LU'NYA -

+

gao chu relfur yu fayu kan’ya.

-

- -gao chu relfur yu fayu kan’ya +

+

-

+

relfur chu arilaen dedaka’nya.

-

- -relfur chu arilaen dedaka’nya +

+