summaryrefslogtreecommitdiff
path: root/language/spanish/hyphen/base/eshyph-make.lua
diff options
context:
space:
mode:
Diffstat (limited to 'language/spanish/hyphen/base/eshyph-make.lua')
-rw-r--r--language/spanish/hyphen/base/eshyph-make.lua82
1 files changed, 82 insertions, 0 deletions
diff --git a/language/spanish/hyphen/base/eshyph-make.lua b/language/spanish/hyphen/base/eshyph-make.lua
new file mode 100644
index 0000000000..4fd0193295
--- /dev/null
+++ b/language/spanish/hyphen/base/eshyph-make.lua
@@ -0,0 +1,82 @@
+-- (encoding:utf-8)
+
+-- (c) Javier Bezos 2009
+-- License: LPPL. v. 4.5
+
+patfile = io.open('eshyph.tex', 'w')
+patfile:write('\\patterns{\n')
+
+-- Basic patters
+-- Using the characters iterator in luatex
+
+digraphs = 'ch ll'
+liquids = 'bl cl fl gl kl pl vl br cr dr fr gr kr pr rr tr vr'
+avoid = 'tl'
+silent = 'h'
+letters = 'bcdfghjklmnpqrstvwxyz'
+
+for n in letters:gmatch('.') do
+ if silent:find(n) then
+ patfile:write('2' .. n .. '.')
+ else
+ patfile:write('1' .. n .. ' 2' .. n .. '.')
+ end
+ for m in letters:gmatch('.') do
+ pat = n .. m
+ if digraphs:find(pat) then
+ patfile:write(' ' .. n .. '4'.. m .. ' 2' .. pat .. '.')
+ elseif liquids:find(pat) then
+ patfile:write(' ' .. n .. '2'.. m .. ' 2' .. pat .. '.')
+ elseif avoid:find(pat) then
+ patfile:write(' 2' .. n .. '2'.. m)
+ elseif silent:find(m) then
+ patfile:write(' 2' .. n .. '1' .. m)
+ else
+ patfile:write(' 2' .. pat)
+ end
+ end
+ patfile:write('\n')
+end
+
+patfile:write('1ñ 2ñ.\n')
+
+letters = 'bcdlmnrstxy'
+etim = 'pt ct cn ps mn gn ft pn cz tz ts'
+
+for n in etim:gmatch('%S+') do
+ for m in letters:gmatch('.') do
+ patfile:write('2' .. m .. '3' .. n:sub(1,1) .. '2' .. n:sub(2,2) .. ' ')
+ end
+ patfile:write('4' .. n .. '.\n')
+end
+
+src = io.open('eshyph.src')
+
+function prefix(p)
+ if p:match('r$') then
+ p = p:sub(1,-2) .. '2' .. p:sub(-1) .. '1'
+ patfile:write(p:sub(1,-2) .. '3r\n')
+ elseif p:match('[aeiou]$') then
+ p = p .. '1'
+ patfile:write(p .. 'h\n')
+ end
+ patfile:write(p .. 'a2 ' .. p .. 'e2 ' .. p .. 'i2 ' .. p .. 'o2 ' .. p .. 'u2\n')
+ patfile:write(p .. 'á2 ' .. p .. 'é2 ' .. p .. 'í2 ' .. p .. 'ó2 ' .. p .. 'ú2\n')
+
+end
+
+for ln in src:lines() do
+ ln = ln:match('[^%%]*')
+ for p in ln:gmatch('%S+') do
+ if p:match('/(.*)/') then
+ prefix(p:match('/(.*)/'))
+ elseif p:sub(1,1) == '*' then
+ patfile:write('de2s3' .. p:sub(2) .. '\n')
+ else
+ patfile:write(p .. '\n')
+ end
+ end
+end
+
+patfile:write('}')
+patfile:close()