jit-1_-_github__ysei~mruby-meta-circular-heiretu_-_nightly_-_2_0_1_8_0_5_2_0__0250810200.rb
1198,1204c
rg.shift 'cop'
# rg.shift 'sym'
# sl.slp 0
sl.slp
.
1193,1196c
rg.shift 'sp'
# @sp = sp
@sp = rg['sp']
@irep = irep
.
1191c
# @pc = pc + 1
# rg['pc', -1] += 1
# rg.delete_at('pc', 1)
rg.shift 'pc'
rg['pc'] = rg['pc', 1]
@pc = rg['pc']
.
1172,1189c
# if fl.empty? # || ! ise.empty?
# rg['ctr', 1] -= 1 if 0 < rg['ctr', 1]
#
# if ise.empty?
#
# @flag[0] >>= 1
## @flag[0] >>= (1 - (thi <=> 0))
.
1169c
else
sl.slp
next
end # fl[0].empty?
.
1167a
# else
# printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
# printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1138,1166c
# @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] # - 1
# 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]
.
1134,1135c
# next
else
args = []
n.times do |i|
# args.push @stack[@sp + a + i + 1]
args<< @stack[a + i + 1] # p
.
1126,1132c
# @pc = 0
rg['pc', -1] = 0
# @irep = newirep
irep = newirep
# @irepid = @irep.id
@irepid = irep.id
.
1119,1124c
# @sp += a
rg['sp', -1] = rg['sp'] + a
.
1115,1117c
# 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
# @cp += 1
# @callinfo[@cp] = @pc
# @cp += 1
# @callinfo[@cp] = @irep
# @cp += 1
# @callinfo[(@cp += 3) - 3, 3] = [@sp, @pc, @irep]
@callinfo[-3 + @cp += 3, 3] = [@sp, @pc, @irep]
.
1091,1113c
# メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
when :ENTER
.
1067,1089c
# 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
.
1065a
end
.
1064c
rg['pc', -1] = rg['pc'] + imem.getarg_sbx(rg['cop'])
.
1060,1061c
# 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
.
1057,1058c
# 何もしない
when :NOP
.
1054,1055c
case sym
# case rg.shift('sym')
# case rg['sym']
.
1052a
lpl.plini
# @flag[0] = 2
.
1050,1051c
# if fl.empty?
unless fl[0][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
.
1045,1048c
if 0 <= rg['ctr', 1]
sym = rg.shift('sym')
# rg.push('pc', rg['pc'] + 1)
# rg.push('sp', rg['sp'])
rg['ctr', 1] *= -1 # kakezan
end
.
1037,1043c
# sym = rg.shift('sym')
.
1034d
1032c
rg.shift('sym')
.
1025,1029d
1014,1023c
# if ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
# if rg['sym'] && ?J != rg['sym'][0] # higokan mruby 70410200 # q
if rg['sym'] && ?J != rg['sym'].to_s[0] && ! [:ENTER, :SEND, :RETURN, :NOP].include?(rg['sym']) # q
if 0 <= rg['ctr', 1] # && ! ise.empty?
# thi, th = iset(sym, cop, sp, pc, thi, th) ###
ise<< iset(rg) # p
# ise.reject! { |fis| [true][rg['thi'] = fis.resume]}
# fl<< fls(rg['pc']) # p
fl[0]<< fls(rg['pc']) # p
.
1010,1012c
# flg[0], pl = fls(pc, pl) if 0 == @flag[0] ###
# fl[0] && fl[0].resume && fl = (fl[1 .. -1] || [])
fl[0][0] && fl[0][0].resume && fl[0] = (fl[0][1 .. -1] || [])
.
1006,1008c
# ise.reject! { |fis| rg['thi'] = fis.resume; 0 == rg['thi']}
ise.reject! { |fis| fis.resume}
.
1002,1004c
# lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}"
lpl.verb "#{rg['pc'].to_xeh} #{rg['sym']} #{rg['cop'].to_xeh}" if rg['sym']
.
998,999c
c, s = opf(irep, rg['pc']) #### if pco != pc
rg.push('cop', c)
rg.push('sym', s)
.
975,996c
if 0 <= rg['ctr', 1]
# sp = @sp
# @stack.sp(rg['sp'] = @sp) # + 0
@stack.sp(rg['sp']) # + 0
.
969,970c
# rg = Rg.new([['ctr', 0], ['thi', 0], ['pc', @sp], ['sp', @sp], ['cop'], ['sym']])
rg = Rg.new([['ctr', 1], ['pc', @sp], ['sp', @sp], ['cop'], ['sym']])
# pco = rg['pc']
.
966c
# fl = []
fl = [[], []]
.
963d
961c
# @flag[0] = 1
.
931c
# Fiber.yield(0 == thi) ##
Fiber.yield(0 > thi) ##
# rg = Fiber.yield(0 > thi) ##
# thi += 1
.
929c
# [thi, th] ###
.
924d
921a
# thi += 1
.
905,915c
# opa = opg.(thi) + [[k_sp, [sp]], []][thi <=> 0] # c
# pl.pl_es(pc1, opa)
pl.pl_es(pc1, opg.(thi) + [[k_sp, [sp]], []][thi <=> 0]) # c
.
889,890c
# fv = fvl[-1].(oi); fvl.delete_at(((1 <=> fvl.size) << 1) + 1) # c
fv = (fvl.delete_at(((1 <=> fvl.size) << 1) + 1) || fvl[0]).(oi) # c
.
887d
875d
857a
# pc1 = 0
.
855c
# def iset2 ##
pc, sp, cop, sym = rg.to_a('pc', 'sp', 'cop', 'sym')
# pc, sp, cop, sym = nil
.
853d
846,847c
@@slp.slp 0
.
842d
840d
838c
# Fiber.yield(false)
.
836a
.
831,835d
821,822d
817,819c
# lpl.verb "#{(pc - 1).to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
lpl.verb "#{pc.to_xeh} #{sym} #{r[0].to_xeh} #{r[1].to_xeh}"
.
814,815c
# ca[flg.inject(0) { |rv, v| rv = v ? 0 : 1 | rv << 1}].call
flg[0] && ca[flg[1] ? 0 : 1].call
.
804,808c
# sym, (r0, r1) = rslt pl # higokan mruby 70410200 # bce75e27 2211410200 matz
.
802a
# pl = lpl.pl_g(pc) ##
pl = lpl.pl_g(pc1) ##
sp ||= s.sp(pl[i_sp][0])
.
798,799c
pc1 = pc + 1
.
793c
# sz = 4; ap = (1 << sz) + sz + 1
# sz.step(wd - 2 + ap -= (ap + 2) >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= ((ap + 2) >> 2) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= (ap >> 2) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= ((ap + 2) >> 1) + 1 >> 1) { |n| plr<< lm.(isr0, s[n])} # p c
# sz.step(wd - 1 + ap -= (ap >> 1) >> 1) + 1) { |n| plr<< lm.(isr0, s[n])} # p c
.
787,790c
} # , # rs[1] = r0.to_xeh
# -> { # flg[-1]
# }, # rs[0] = r1.to_xeh
# -> {}
.
782,785c
# plr += lm.(isr0, s[sz .. sz - 1 + ap = ap - (ap >> 2) & 0x3f]) # c
plr += lm.(isr0, s[sz, -1 + ap -= (ap + 3) >> 2]) # c
.
777c
## ((sw = sp + sz) + 0xe).step(sw, -1) { # higokan mruby 70410200 # bbab89e7 5211410200 tmtm
# sz.step(sz - 1 + ap -= (ap + 3) >> 2) { |n| plr<< lm.(isr0, s[n])} # p c
.
765,766c
lm = ->(isr0, r1) {r1 && imem.send(pr, *isr0, r1)} # l
.
761,762c
# sz = 4; ap = 1 << sz
# sz -= 2; ap = ((ap << sz) + ap >> sz - 1) + 1 >> 1
sz = 1; ap = @@fls_m
.
758a
.
754d
749c
i_th = lpl.afl('th', ?i) # q
.
746a
pc1 = 0
.
745a
## pl = lpl.pl_g(pc) ### fls
## pl[i_th] = lpl.pl_eg(pc, 'th') ### fls
.
740a
@@fls_w = 4; (@@fls_m = 1 << @@fls_w) + @@fls_w + 1
@@fls_w -= 2
@@fls_m = ((@@fls_m << @@fls_w) + @@fls_m >> @@fls_w - 1) + 1 >> 1
@@fls_w = nil
.
735,736d
732c
r = pl[lpl.afl('th', ?i)] # q
.
707a
# @pl.nmrcf
.
702a
# @pla = Array.new($pcmax)
# $pltini.call()
@pl = ENVary.new
@rmt = wkth
.
684,691c
# @flag = []
.
659c
def to_a(*a)
.
653,655c
i ||= @a.assoc('ctr')[1].abs
# i ||= @a.assoc('ctr')[1] + 1
# @a.assoc(a[0])[@i] = a[1]
# @a.assoc(a.shift)[a[0] || @i] = v
.
646c
i ||= @a.assoc('ctr')[1].abs
# i ||= @a.assoc('ctr')[1] + 1
.
615d
611d
601d
590,596c
# a.empty? || @p = a[0]
@p = pt
# @p
.
581,582c
@p = sp; @s = s
# @p = sp; @m = m; @s = s
.
578a
# def initialize(sp = 0, s = @@s, m = @@m)
.
567a
# private
# def nmrcf
# @@nmrcf = Float == self.afl('Numeric')[0].class
# end
.
563d
561d
552d
547d
542d
540d
518,530c
(mx &&= thn.hgt) || mx = 1
# sl.slp(0, 4096)
# Fiber.yield([if f = ckth(th[mx], 3)
##### Fiber.yield([if f = (th[idx].nil?.! && ckth(th[mx], 3)) # fuguai taisaku
# f2 = idx >= mx && pl_es(pc, ['th', th])
# true
# end,
Fiber.yield([(f = #### (th[idx].nil?.! && # fuguai taisaku
ckth(th[mx], 3)) &&
f2 = idx >= mx && (pl_es(pc, ['th', th]); true),
sl.slp(0)
# ][0] && idx >= mx)
][0] && f2)
# (f =
# ckth(th[mx], 3)
##### th[idx].nil?.! && ckth(th[mx], 3) # fuguai taisaku
# ) && f2 = idx >= mx && pl_es(pc, ['th', th])
# sl.slp(0)
## Fiber.yield(f && idx >= mx)
# Fiber.yield(f && f2)
## f && idx -= (idx <=> mx) >> 1 ##
.
516c
# mx = thn.hgt
.
508d
488,489c
# return a[0] if 1 >= a.size
## return a.ijr { |v| v.inject(@@imem.mcall) || v[0]}
.
485,486c
# knid(a, :Array) ? __method__(a, pc) : a
case a when Array then __method__(a, pc) else a end
.
482a
([] == a || knid(a, :Array).! || 1 >= a.size) && (return a) # t
.
481c
# ([] == a || ! knid(a, :Array)) && (return a) # t
.
436d
431d
425d
417,423d
406,407d
392,394c
# self[n] = 0 == n ? (@@plmg ||= ->(pi, pv) {pi.map { |v| # l
# [v[0], pv.shift]}}).(pl_g(-1), pl) : pl # c
self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl # c
# self[n] = 0 == n ? pl_g(-1).map { |v| [v[0], pl.shift]} : pl
.
388,390d
386c
# @@plmg = nil
@@Plmg = ->(pi, pv) {pi.map { |v| [v[0], pv.shift]}} # l
.
381a
# @@nmrcf ? pl.mapr { |v| v.to_i_from(Numeric)} : pl # furui mattn/mruby-json
.
379d
374d
370a
# if 0 == n && ! flg
.
368,369c
# if 1 > n then pl = pl[self.idx0(n)] end
.
364,366c
# pl = self[@@idx0.(n, 0)] # c
pl = self[0 > n ? ~ n : n]
.
362a
# if 0 > n then flg = true; n = ~ n end
.
361c
# sleep 0; GC.start; sleep 0
.
358c
# @@idx0 = nil
.
323,325c
ploc(n) { |a| (a = ENV[@@idb + a[0]]) &&
('[]' == (a[0] << a[-1]) && a = JSON::parse(a)); a}
# (('[]' == (a.rotate(-1)[0 .. 1]) && a = JSON::parse(a)); a} # higokan monami-ya.mrb:60510200 mruby:70410200
# knid(a, :Array) && JSON::parse(a)}
.
285,286c
# @@idx0 ||= ->(n = 0, t = 1) {n - ((n <=> t) >> 1)} # l
.
280,282d
271d
266c
# plini
.
261,262c
# 0.step(@@rmth + 1) { |i|
# (0 .. @@rmth + 1).each{ |i|
1.step(@@rmth + 1) { |i|
.
259c
plini
.
252d
210c
# a[0] = ?s + a[0].to_s
a[0] = ?s << a[0].to_s
.
208d
194d
93c
@@slp = 5 # conf.gem :github => 'matsumotory/mruby-sleep' # msleep usleep
.
82d
78d
33a
case v when Kernel.const_get(k) then true end.!.!
.
28,30c
## return v.kind_of?(Object.const_get k) # if 0.kind_of?(Numeric) # super
# return v.kind_of?(Kernel.const_get k) # if 0.kind_of?(Numeric) # super
## return v.kind_of?(k.constantize) # if 0.kind_of?(Numeric) # RoR # super
.
--
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