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 @@
+
+
-
+
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
+
+