+do
+ local setfield = node.direct.setfield
+ luatexja.setglue = node.direct.setglue or
+ function(g,w,st,sh,sto,sho)
+ setfield(g,'width', w or 0)
+ setfield(g,'stretch',st or 0)
+ setfield(g,'shrink', sh or 0)
+ setfield(g,'stretch_order',sto or 0)
+ setfield(g,'shrink_order', sho or 0)
+ end
+ local getfield = node.direct.getfield
+ luatexja.getglue = node.direct.getglue or
+ function(g)
+ return getfield(g,'width'),
+ getfield(g,'stretch'),
+ getfield(g,'shrink'),
+ getfield(g,'stretch_order'),
+ getfield(g,'shrink_order')
+ end
+end
+
+--- 以下は全ファイルで共有される定数
+local icflag_table = {}
+luatexja.icflag_table = icflag_table
+icflag_table.ITALIC = 1
+icflag_table.PACKED = 2
+icflag_table.KINSOKU = 3
+icflag_table.FROM_JFM = 4
+-- FROM_JFM: 4, 5, 6, 7, 8 →優先度高(伸びやすく,縮みやすい)
+-- 6 が標準
+icflag_table.KANJI_SKIP = 68 -- = 4+64
+icflag_table.KANJI_SKIP_JFM = 69
+icflag_table.XKANJI_SKIP = 70
+icflag_table.XKANJI_SKIP_JFM = 71
+icflag_table.LINEEND = 72
+icflag_table.PROCESSED = 73
+icflag_table.IC_PROCESSED = 74
+icflag_table.BOXBDD = 75
+icflag_table.PROCESSED_BEGIN_FLAG = 4096 -- sufficiently large power of 2
+
+local stack_table_index = {}
+luatexja.stack_table_index = stack_table_index
+stack_table_index.PRE = 0x200000 -- characterごと
+stack_table_index.POST = 0x400000 -- characterごと
+stack_table_index.KCAT = 0x600000 -- characterごと
+stack_table_index.XSP = 0x800000 -- characterごと
+stack_table_index.RIPRE = 0xA00000 -- characterごと,ruby pre
+stack_table_index.RIPOST = 0xC00000 -- characterごと,ruby post
+stack_table_index.JWP = 0 -- これだけ
+stack_table_index.KSK = 1 -- これだけ
+stack_table_index.XSK = 2 -- これだけ
+stack_table_index.MJT = 0x100 -- 0--255
+stack_table_index.MJS = 0x200 -- 0--255
+stack_table_index.MJSS = 0x300 -- 0--255
+stack_table_index.KSJ = 0x400 -- 0--9
+
+local userid_table = {}
+luatexja.userid_table = userid_table
+userid_table.IHB = luatexbase.newuserwhatsitid('inhibitglue', 'luatexja') -- \inhibitglue
+userid_table.STCK = luatexbase.newuserwhatsitid('stack_marker', 'luatexja') -- スタック管理
+userid_table.BPAR = luatexbase.newuserwhatsitid('begin_par', 'luatexja') -- 「段落始め」
+userid_table.DIR = luatexbase.newuserwhatsitid('direction', 'luatexja') -- 組方向
+userid_table.BOXB = luatexbase.newuserwhatsitid('box_boundary', 'luatexja') -- 「ボックス始め・終わり」
+
+local dir_table = {}
+luatexja.dir_table = dir_table
+dir_table.dir_dtou = 1
+dir_table.dir_tate = 3
+dir_table.dir_yoko = 4
+dir_table.dir_math_mod = 8
+dir_table.dir_node_auto = 128 -- 組方向を合わせるために自動で作られたもの
+dir_table.dir_node_manual = 256 -- 寸法代入によって作られたもの
+dir_table.dir_utod = dir_table.dir_tate + dir_table.dir_math_mod
+ -- 「縦数式ディレクション」 in pTeX
+--- 定義終わり
+