summaryrefslogtreecommitdiff
path: root/tex/context/base/scrp-cjk.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/scrp-cjk.lua')
-rw-r--r--tex/context/base/scrp-cjk.lua140
1 files changed, 73 insertions, 67 deletions
diff --git a/tex/context/base/scrp-cjk.lua b/tex/context/base/scrp-cjk.lua
index 6ac6c5b11..e17d4e967 100644
--- a/tex/context/base/scrp-cjk.lua
+++ b/tex/context/base/scrp-cjk.lua
@@ -7,15 +7,21 @@ if not modules then modules = { } end modules ['scrp-cjk'] = {
}
local has_attribute = node.has_attribute
-local make_glue_node = nodes.glue
-local make_penalty_node = nodes.penalty
local insert_node_after = node.insert_after
local insert_node_before = node.insert_before
local remove_node = nodes.remove
-local glyph = node.id('glyph')
-local glue = node.id('glue')
-local penalty = node.id('penalty')
+local nodepool = nodes.pool
+
+local new_glue = nodepool.glue
+local new_penalty = nodepool.penalty
+
+local nodecodes = nodes.nodecodes
+local skipcodes = nodes.skipcodes
+
+local glyph_code = nodecodes.glyph
+
+local userskip_code = skipcodes.userskip
local preproc = attributes.private('preproc')
local prestat = attributes.private('prestat')
@@ -50,123 +56,123 @@ end
-- at font definition time and/or just assume a correct font
local function nobreak(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
+ insert_node_before(head,current,new_penalty(10000))
end
local function stretch_break(head,current)
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function shrink_break(head,current)
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
local function nobreak_stretch(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function korean_break(head,current)
- insert_node_before(head,current,make_penalty_node(inter_char_hangul_penalty))
+ insert_node_before(head,current,new_penalty(inter_char_hangul_penalty))
end
local function nobreak_shrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
local function nobreak_autoshrink(head,current)
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
end
local function nobreak_stretch_nobreak_shrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
local function nobreak_stretch_nobreak_autoshrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
end
local function nobreak_shrink_nobreak_stretch(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function nobreak_autoshrink_nobreak_stretch(head,current)
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function nobreak_shrink_break_stretch(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function nobreak_autoshrink_break_stretch(head,current)
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function nobreak_shrink_break_stretch_nobreak_shrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
local function nobreak_autoshrink_break_stretch_nobreak_autoshrink(head,current)
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
end
local function nobreak_autoshrink_break_stretch_nobreak_shrink(head,current)
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
local function nobreak_shrink_break_stretch_nobreak_autoshrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
if true then
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
end
end
local function nobreak_stretch_break_shrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
local function nobreak_stretch_break_autoshrink(head,current)
- insert_node_before(head,current,make_penalty_node(10000))
- insert_node_before(head,current,make_glue_node(0,inter_char_stretch,0))
+ insert_node_before(head,current,new_penalty(10000))
+ insert_node_before(head,current,new_glue(userskip_code,inter_char_stretch,0))
if true then
- insert_node_before(head,current,make_glue_node(0,0,inter_char_half_shrink))
+ insert_node_before(head,current,new_glue(userskip_code,0,inter_char_half_shrink))
end
end
@@ -318,7 +324,7 @@ local function process(head,first,last)
local lastfont, previous, originals, last = nil, "start", nil, nil
while true do
local upcoming, id = first.next, first.id
- if id == glyph then
+ if id == glyph_code then
local a = has_attribute(first,prestat)
local current = number_to_kind[a]
local action = injectors[previous]
@@ -338,7 +344,7 @@ local function process(head,first,last)
local p, n = first.prev, upcoming
if p and n then
local pid, nid = p.id, n.id
- if pid == glyph and nid == glyph then
+ if pid == glyph_code and nid == glyph_code then
local pa, na = has_attribute(p,prestat), has_attribute(n,prestat)
local pcjk, ncjk = pa and number_to_kind[pa], na and number_to_kind[na]
if not pcjk or not ncjk
@@ -521,7 +527,7 @@ local function process(head,first,last)
local lastfont, previous, originals, last = nil, "start", nil, nil
while true do
local upcoming, id = first.next, first.id
- if id == glyph then
+ if id == glyph_code then
local a = has_attribute(first,prestat)
local current = number_to_kind[a]
local action = injectors[previous]
@@ -541,7 +547,7 @@ local function process(head,first,last)
local p, n = first.prev, upcoming
if p and n then
local pid, nid = p.id, n.id
- if pid == glyph and nid == glyph then
+ if pid == glyph_code and nid == glyph_code then
local pa, na = has_attribute(p,prestat), has_attribute(n,prestat)
local pcjk, ncjk = pa and number_to_kind[pa], na and number_to_kind[na]
if not pcjk or not ncjk