jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_7_0_1__1070810200.rb
1134,1156c
if 0 <= rg['ctr', 1]
rg.shift 'pc'
# rg['pc'] = rg['pc', 1]
@pc = rg['pc']
rg.shift 'sp'
@sp = rg['sp']
@irep = irep
rg.shift 'cop'
rg.shift 'sym'
end
# ise.reject! { |fis| fis.resume} # higokan ? GC 70410200
.
1003,1131c
lpl.plini
jsc.call
# else
.
996,1001c
# unless fl[0][0]
unless fl.flatten[0]
# rg.push('pc', rg['pc'] + 1)
# rg.push('sp', rg['sp'])
rg['ctr', 1] = rg['ctr', 1].abs
# while ! lpl.ctr_c do Slp.new.slp end
.
993,994c
# ise.reject! {&:resume} # higokan ? monami-ya.mrb:60510200 mruby:70410200
# ise.reject! { |fis| fis.resume} # higokan ? GC 70410200
.
991a
rg.push('pc', rg['pc', -1] + 1)
rg.push('sp', rg['sp', -1])
end
.
988,990c
else
next if pcoj.call
# if 0 <= rg['ctr', 1]
# sym = rg.shift('sym')
pco = rg['pc'] if ?J == rg['sym'].to_s[0] # q
rg['ctr', 1] *= -1 # kakezan
.
986c
fl<< fls(rg['pc'] + 0) # p
# fl[0].push fls(rg['pc'])
# rg.push('pc', rg['pc', -1] + 1)
# rg.push('sp', rg['sp', -1])
# rg.shift('sym')
# end
.
983,984c
# ise<< iset(rg) # p
0 <= rg['pc', nil, '-'] && ise<< iset(rg) # p
next if pcoj.call
.
978,981c
# sp = @sp
@stack.sp(rg['sp']) # + 0
# c, s = opf(irep, rg['pc'])
c, sym = opf(irep, rg['pc'])
rg.push('cop', c)
rg.push('sym', sym)
# rg.push('sym', s)
# end
# lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" # if rg['sym']
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" if rg['sym']
# rg['pc'] *= -1 if pco == rg['pc'] # kakezan
# if rg['sym'] && ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
# if ?J != sym.to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(sym) # q
# if 0 <= rg['ctr', 1]
.
975,976c
# fl[0][0] && fl[0][0].resume && fl[0] = (fl[0][1 .. -1] || [])
# fl.reject!.with_index { |v, n| v.resume(n)}
fl.reject_c!(1) { |v, n| v.resume(n)}
if 0 <= rg['ctr', 1] || pco
pco &&= nil
.
972a
# ise.reject_c!(1) { |fis, n| fis.resume}
# ise = reject_c_th(ise, 1) { |fis, n| fis.resume}
.
971d
968,969c
while true
# loop { # higokan ? monami-ya.mrb:60510200 mruby:70410200
# begin
.
966a
}
pco = nil
pcoj = -> { # l
if 0 > rg['ctr', 1]
rg.pop 'cop'
rg.pop 'sym'
# true
end # || false
}
.
963,965c
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
# SEND Ra, mid, anumでRaをレシーバにしてシンボルmidの名前のメソッドを
# 呼び出す。ただし、引数はanum個あり、R(a+1), R(a+2)... R(a+anum)が引数
when :SEND
# a = getarg_a(cop)
# a = lpl.getarg_a(cop)
a = imem.getarg_a(rg['cop'])
# mid = @irep.syms[getarg_b(cop)]
# mid = irep.syms[lpl.getarg_b(cop)]
mid = irep.syms[imem.getarg_b(rg['cop'])]
# n = getarg_c(cop)
# n = lpl.getarg_c(cop)
n = imem.getarg_c(rg['cop'])
# newirep = Irep::get_irep(@stack[@sp + a], mid)
newirep = Irep::get_irep(@stack[a], mid)
if newirep then
# @callinfo[@cp] = @sp
# @callinfo[@cp] = rg['sp']
# @cp += 1
# @callinfo[@cp] = @pc
# @callinfo[@cp] = rg['pc']
# @cp += 1
# @callinfo[@cp] = @irep
# @callinfo[@cp] = irep
# @cp += 1
# @callinfo[-3 + @cp += 3, 3] = [@sp, @pc, @irep]
@callinfo[-3 + @cp += 3, 3] = [rg['sp'], rg['pc'], irep]
# @sp += a
# rg['sp'] += a
rg['sp', -1] = rg['sp'] + a
# @pc = 0
rg['pc', -1] = 0
# @irep = newirep
irep = newirep
# @irepid = @irep.id
@irepid = irep.id
# next
else
args = []
n.times do |i|
# args.push @stack[@sp + a + i + 1]
args<< @stack[a + i + 1] # p
end
# @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
@stack[a] = @stack[a].send(mid, *args)
end
# RETURN Raで呼び出し元のメソッドに戻る。Raが戻り値になる
when :RETURN
if @cp == 0 then
# return @stack[@sp + getarg_a(cop)]
# return @stack[sp + lpl.getarg_a(cop)]
return @stack[imem.getarg_a(rg['cop'])]
# break @stack[imem.getarg_a(rg['cop'])]
else
# @stack[@sp] = @stack[@sp + getarg_a(cop)]
# @stack[sp] = @stack[sp + lpl.getarg_a(cop)]
@stack[0] = @stack[imem.getarg_a(rg['cop'])]
@cp -= 1
# @irep = @callinfo[@cp]
irep = @callinfo[@cp]
# @irepid = @irep.id
@irepid = irep.id
@cp -= 1
# @pc = @callinfo[@cp]
# pc = @callinfo[@cp]
# rg['pc', -1] = @callinfo[@cp]
rg['pc', -1] = @callinfo[@cp] + 1 # bagu syuusei
@cp -= 1
# @sp = @callinfo[@cp]
# sp = @callinfo[@cp]
# rg['sp'] = @callinfo[@cp]
rg['sp', -1] = @callinfo[@cp]
end
# else
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
958,961c
# JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
when :JMPNOT
# if !@stack[@sp + getarg_a(cop)] then
# if !@stack[sp + lpl.getarg_a(cop)] then
if !@stack[imem.getarg_a(rg['cop'])] then
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
end
.
955,956c
jsc = Proc.new {
# case sym
case rg['sym']
# 何もしない
when :NOP
# JMP nでpcをnだけ増やす。ただし、nは符号付き
when :JMP
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
when :JMPIF
# if @stack[@sp + getarg_a(cop)] then
# if @stack[sp + lpl.getarg_a(cop)] then
if @stack[imem.getarg_a(rg['cop'])] then
# @pc = @pc + getarg_sbx(cop)
# pc = pc + lpl.getarg_sbx(cop) - 1
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
# next
end
.
951,953c
rg = Rg.new([['ctr', 1], ['pc', @pc], ['sp', @sp], ['cop'], ['sym']])
.
949a
sym = nil
.
947,948c
fl = []
# fl = [[], []]
.
941c
# i_th = lpl.afl('th', ?i) # q
.
912,913c
# Fiber.yield(0 != thi && ht <= thi) ##
.
909,910d
901d
892,898c
# pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp]], []][thi <=> 0]) # c
# pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], 'ctr', -pc1], []][thi <=> 0]) # c
pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp], :ctr_s, pc1], []][thi <=> 0]) # c
# (0 != thi && ht <= thi) ? thi = 0 : thi += 1
# if 0 == thi
# pl.ctr_s(pc1)
# elsif ht <= thi
if 0 != thi && ht <= thi
.
885c
thi = 0 ##
.
875,877c
# when 'th'
# fv = (fvl.delete_at(((1 <=> fvl.size) << 1) + 1) || fvl[0]).(oi) # c
when 'th' then fv = fvl[-1].(oi); fvl = fvl[0 .. fvl.size - 2] # c
.
834c
# sl.slp 0
.
831c
# Fiber.yield(@@fls2.resume(pc))
m = Fiber.yield(@@fls2.resume(pc, m))
.
828a
# m = Fiber.yield(false)
.
827c
# Fiber.new {
Fiber.new { |m = 1|
.
824a
# sl = @@slp
.
817c
# Fiber.yield(! flg.include?(false)) ##
# pc = Fiber.yield(flg.all?) ##
# m = fy.(m, f) # c
pc, m = fy.(m, f, pc) # c
.
810,815c
unless f
pl = lpl.pl_g(pc1) ##
# sp ||= s.sp(pl[i_sp][0])
# sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
sym, r, flg = rslt(pl); r0, r1 = r
# unless flg.include?(true) then fy(m, f); redo end
# f = ! flg.include?(false)
f = flg.all?
end
if 0 == m
sp ||= s.sp(pl[i_sp][0])
r0, r1 = r
pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
isr0 = [i, s, r0]
# flg[0] && ca[flg[1] ? 0 : 1].call
flg[0] && ca[flg[1] ? 0 : 1].(r) # c
end
# @@slp.slp 0
.
801,808d
799a
f = false # ; flg = [false, false]
.
793c
# Fiber.new { |pc| ##
# Fiber.new {
# Fiber.new { |m = 1|
Fiber.new { |pc, m = 1|
.
784,791c
# fy = ->(m, f) { @@slp.slp 0
fy = ->(m, f, pc) { @@slp.slp 0
lpl.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
# Fiber.yield(0 == m && f)
Fiber.yield(f && 0 == m)
}
.
775,776c
# plr += lm.(isr0, s[sz, -1 + ap -= (ap + 3) >> 2]) # c
plr += lm.(isr0, s[sz .. sz + ap -= ap >> 2]) # c
.
768,770c
# -> { # flg[0]
->(r) { # flg[0]
# ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# sz.step(sz + ap -= ap >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
.
761c
# -> { # flg[0] && flg[-1]
# -> { # f
->(r) { # f
.
753,755c
# sz = 1; ap = @@fls_m
sz = 4; ap = @@fls_w ||= (1 << sz) - 1 - 1
# sz = 4; @@fls_m || (ap = @@fls_w ||= (1 << sz) - 1 - 1; @@fls_w = nil)
sz -= 2; ap = @@fls_m ||= ((ap << sz) + ap >> sz - 1) + 1 >> 1
.
751a
f = false; flg = [false, false]
r = [] # nil # ; rs = [?-, ?-] # q 2
.
749c
# isr0, r0, r1, pr, sy = nil
isr0, r0, r1, pr, sy, sym = nil
.
745c
# s = Stack.new; sp = nil; plr = nil
pl = nil; s = Stack.new; sp = nil; plr = []
.
738c
pc = 0
pc1 = pc + 1
# pc1 = 0
.
725,728c
# @@fls_w = 4; @@fls_m = (1 << @@fls_w) - 1 - 1
# @@fls_w -= 2
# @@fls_m = ((@@fls_m << @@fls_w) + @@fls_m >> @@fls_w - 1) + 1 >> 1
# @@fls_w = nil
@@fls_w, @@fls_m = nil
.
718c
r = pl[lpl.afl('th', ?i)] # q
.
669d
640a
# v = -v if 'pc' == k && v == @a.assoc(k)[i] && knid(v, :Numeric)
'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end # cp
.
636,637c
# i ||= @a.assoc('ctr')[1].abs
i ||= @a.assoc('ctr')[1]
.
631c
# @a.assoc(k)[i]
v = @a.assoc(k)[i]
# v = v.abs if knid(v, :Numeric) # cp
v = v.abs if 'pc' == k && ?- != m # cp # q
v
.
626,629c
# def [](k, i = @i)
def [](k, i = nil, m = nil)
# i ||= @a.assoc('ctr')[1].abs
i ||= @a.assoc('ctr')[1]
.
617a
def pop(*a)
@a.assoc(a.shift).pop
end
.
595a
# a = @s[@p + a[0].sgp] = a[1]
.
547c
# fpl.reject! { |fb| fb.resume}
# fpl.reject! {&:resume} # higokan ? monami-ya.mrb:60510200 mruby:70410200
# fpl.reject_c!(1) { |fb, n| fb.resume}
fpl = reject_c_th(fpl, 1) { |fb, n| fb.resume}
.
498,521c
Fiber.yield([(f = #### th[idx].nil?.! && # fuguai taisaku
ckth(th[mx], 3)) && # ))) &&
(pl_es(pc, ['th', th]); true),
sl.slp(0)
][0] && idx >= mx)
f && idx -= (idx <=> mx) >> 1 ##
.
495a
mx = thn.hgt
# mx ||= thn.hgt
.
490c
f = nil # ; mx = nil
.
465c
(tb == a || knid(a, :Array).! || 1 >= a.size) && (return a)
.
463c
# ([] == a || knid(a, :Array).! || 1 >= a.size) && (return a) # t
.
461a
tb = TB
.
406a
aa.each_slice(2) { |k, v| send(k, v)}
.
404c
# 'ctr' == k && case v when Array then true end.! ? pl[i_k]<< v : pl[i_k] = v # p # higokan ? mruby 70410200
.
402d
400a
# 'ctr_s' == k && break(-v) # higokan ? mruby 70410200
# knid(k, :Symbol) && (aa.push(k, v); next)
# knid(k, :Symbol) && (aa.push(k, v); break)
case k when Symbol then aa.push(k, v); break end
.
395a
aa = []
.
357c
# sleep 0; GC.start; sleep 0 # g
.
353,354c
# @@Idx0 = ->(n = 0, t = 1) {n + (t > n ? 1 : 0)} # l
.
281c
# if 1 < self.size # self.size : 0 ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
if self[1]
# self.replace(self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]) # ?? # higokan ? mruby:70410200 monami-ya.mrb:60510200
# self.slice!((self.size & ((n = @@rmth + 1) << 1) | n) + 1 .. -1) # higokan mruby:70410200 monami-ya.mrb:60510200
self[0 .. -1] = self[0 .. self.size & ((n = @@rmth + 1) << 1) | n]
end
.
277,278d
274c
# 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8 # www.monami-ya.jp
.
266d
260,261d
210,211c
# case a[4]
case a[@@I_s__r1 + 1]
# when Array then return a[4].map{ |v| v.nil? ? v : send(*a[0 .. 3], v)}
when Array
a[@@I_s__r1 + 1].map{ |v| v.nil? ? v : send(*a[0 .. @@I_s__r0 + 1], v)}
.
208d
136,137c
# @fml.(lb).assoc(sym) # c
@@fml.(lb).assoc(sym) # c
.
85a
def reject_c!(i = nil)
a = self
# unless i
# a.reject! { |v| yield v}
# else
# a.compact!
# a.each.with_index(0) { |v, n| break if n >= i
# v && yield(v, n) && a.delete_at(n)
# }
(i > n = a.size) && i = n
n = c = 0
while c < i
a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
c += 1
end
# end
self.replace a
end
def reject_c_th(a, i = nil)
# unless i
# a.reject! { |v| yield v}
# else
# a.compact!
# a.each.with_index(0) { |v, n| break if n >= i
# v && yield(v, n) && a.delete_at(n)
# }
(i > n = a.size) && i = n
n = c = 0
while c < i
a[n] && yield(a[n], c) && a.delete_at(n) || n += 1
# (v = a[n]) && yield(v, c) && a.delete_at(n) || n += 1
c += 1
end
# end
a
end
.
2a
TB = []
.
--
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net tel:081-70-5152-1104
heiwa furiisekkusu 1tu
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735