blob: 4fd019329539997dcdeb150f04504ea4a1a276ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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()
|