• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

sile-typesetter / sile / 10621606353

29 Aug 2024 07:43PM UTC coverage: 66.23% (+3.6%) from 62.644%
10621606353

push

github

alerque
Merge tag 'v0.15.5' into develop

13 of 289 new or added lines in 17 files covered. (4.5%)

403 existing lines in 59 files now uncovered.

11585 of 17492 relevant lines covered (66.23%)

5713.06 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/languages/jv.lua
1
local lpeg = require("lpeg")
×
2

3
-- typos: ignore start
UNCOV
4
local types = {
×
5
   "Bi",
6
   "Bi",
7
   "CSR",
8
   "Vs",
9
   "VI",
10
   "VI",
11
   "VI",
12
   "VI",
13
   "VI",
14
   "C",
15
   "C",
16
   "C",
17
   "VI",
18
   "VI",
19
   "VI",
20
   "C",
21
   "C",
22
   "C",
23
   "C",
24
   "C",
25
   "C",
26
   "C",
27
   "C",
28
   "C",
29
   "C",
30
   "C",
31
   "C",
32
   "C",
33
   "C",
34
   "C",
35
   "C",
36
   "C",
37
   "C",
38
   "C",
39
   "C",
40
   "C",
41
   "C",
42
   "C",
43
   "C",
44
   "C",
45
   "C",
46
   "C",
47
   "C",
48
   "C",
49
   "C",
50
   "C",
51
   "C",
52
   "C",
53
   "C",
54
   "C",
55
   "C",
56
   "N",
57
   "M",
58
   "M",
59
   "M",
60
   "M",
61
   "M",
62
   "M",
63
   "M",
64
   "M",
65
   "M",
66
   "CS",
67
   "CM",
68
   "CM",
69
   "V",
70
   "x",
71
   "x",
72
   "x",
73
   "x",
74
   "x",
75
   "x",
76
   "x",
77
   "x",
78
   "x",
79
   "x",
80
   "x",
81
   "x",
82
   "x",
83
   "x",
84
   "x",
85
   "Nd",
86
   "Nd",
87
   "Nd",
88
   "Nd",
89
   "Nd",
90
   "Nd",
91
   "Nd",
92
   "Nd",
93
   "Nd",
94
   "Nd",
95
   "x",
96
   "x",
97
   "x",
98
   "x",
99
   "x",
100
   "x",
101
}
102
local jv = {}
×
103
local P8 = function (c)
104
   return lpeg.P(luautf8.char(c))
×
105
end
106
-- typos: ignore end
107

108
for i = 1, #types do
×
109
   local cp = i - 1 + 0xA980
×
110
   local match = P8(cp)
×
111
   jv[types[i]] = jv[types[i]] and (jv[types[i]] + match) or match
×
112
end
113

114
jv.medial_ra = P8(0xA9BF)
×
115
jv.medial_ya = P8(0xA9BE)
×
116
jv.tarung = P8(0xA9B4)
×
117
jv.consonant = ((jv.C * jv.N) + jv.C + jv.VI)
×
118
jv.consonant_sign = jv.Bi + jv.CSR + jv.Vs + jv.CM
×
119
jv.syllable = (jv.consonant * jv.V) ^ -1
×
120
   * jv.consonant
×
121
   * ((jv.medial_ra ^ -1) * jv.medial_ya) ^ -1
×
122
   * (jv.M * jv.tarung ^ -1) ^ -1
×
123
   * jv.consonant_sign ^ 0
×
124

125
SILE.nodeMakers.jv = pl.class(SILE.nodeMakers.unicode)
×
126
function SILE.nodeMakers.jv:iterator (items)
×
127
   return coroutine.wrap(function ()
×
128
      local chunk = ""
×
129
      for i = 1, #items do
×
130
         local char = items[i].text
×
131
         chunk = chunk .. char
×
132
      end
133
      local i = 1
×
134
      local total = 0
×
135
      while total < #chunk do
×
136
         local syll = (lpeg.P(total) * lpeg.C(jv.syllable)):match(chunk)
×
137
         if syll then
×
138
            while i < #items do
×
139
               if items[i].index >= total + #syll then
×
140
                  break
141
               end
142
               self:addToken(items[i].text, items[i])
×
143
               i = i + 1
×
144
            end
145
            total = total + #syll
×
146
            self:makeToken()
×
147
            self:makePenalty(0)
×
148
         else
149
            self:dealWith(items[i])
×
150
            i = i + 1
×
151
            if i > #items then
×
152
               break
153
            end
154
            total = items[i].index
×
155
         end
156
      end
157
      self:makeToken()
×
158
   end)
159
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc