From 1b43c52f5ded0f2a3680bdbe7bcddf4461edbc9b Mon Sep 17 00:00:00 2001 From: UndeadMaelys Date: Mon, 6 Jun 2022 07:14:01 +0200 Subject: [PATCH] adapted to the new words file --- generator.lua | 3 ++- get_words.lua | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 get_words.lua diff --git a/generator.lua b/generator.lua index 2c7feb4..75ab90e 100644 --- a/generator.lua +++ b/generator.lua @@ -1,7 +1,8 @@ require "r2h2_modified" require "quick-terminal-customization" +require "get_words" -words = dofile("heonian-content/words.lua") +words = getWords("heonian-content/words") input = arg[1] or "input.txt" diff --git a/get_words.lua b/get_words.lua new file mode 100644 index 0000000..9c606c3 --- /dev/null +++ b/get_words.lua @@ -0,0 +1,49 @@ +function getWords(path) + local file = io.open(path,"r") + local text = file:read("*all") + file:close() + + local t = {} -- this table will hold our words!!! words format is {word, translation, types, canon origin, meta origin, notes} last three are optional. + + local p = 0 -- current position, nil if at end of file + while p do + p = p + 1 + + local new_word_data = "" + + -- this isnt the whole word yet, but all the data around it separated with tabs, so lets get what we want. + -- careful if its uh end of file tho! + local np = string.find(text,"\n",p) -- np is the next word. this is so we can slice it + if np then + new_word_data = string.sub(text, p, np-1) + else + new_word_data = string.sub(text, p) + end + + if new_word_data ~= "" then + local new_word = {} -- we'll hold it all here once spliced + local wp = 0 -- word data position! + while wp do -- nil if at end of string so. + wp = wp + 1 -- lets move past the tab we just found + + local wnp = string.find(new_word_data, " ",wp) + local stuff = "" + -- we now splice the word every tab and add it to the uhhh + if wnp then + stuff = string.sub(new_word_data, wp, wnp-1) or stuff + else + stuff = string.sub(new_word_data,wp) or stuff + end + + table.insert(new_word,stuff) + wp = wnp + end + -- now we add the word ot the word table + table.insert(t, new_word) + end + -- and move on the next + p = np + end + -- now we just. return the table. + return t +end \ No newline at end of file