1501c
#     ise[i_i_d].reject!.with_index { |fis, n|
.
1497d
1489c
      ise[i_i_s].delif_c(ts) { |pfl, n|
.
1487c
#     ise[i_i_s].reject! { |pfl|        # Inspired by : RobertDoggett ? http://microware.com/# , Professor TAKAZAWA Yosimitu http://mu.ice.uec.ac.jp/~takazawa/
.
1465a
        sl.slp(0, 0xf)

.
1401,1402c
#      ise[i_i_s]<< [0 > rg['ctr', 1] ? -rg['pc'] : rg['pc'], rg.to_a] # p     # cp 
      ise[i_i_s]<< [0 > rg.p ? -pcl : pcl, Rg.new(rg.to_a)]            # p     # cp 
.
1384,1385d
1373d
1310d
1305,1306c
#     end
#      rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
      end && rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1297,1303c
        ! stack[rou.getarg_a(cop)] # || next
.
1288,1292c
        stack[rou.getarg_a(cop)] # || next
.
1282a
        true
.
1261d
1252d
1241d
1238,1239c
#       ri ||= true == fb || (true == fb.resume && fb = true)
        ri ||= true == fb || true == fb.resume && fb = true
.
1234d
1231d
1229d
1182c
#       callinfo.p += 1
        callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
        callinfo.p += 3

.
1180c
#       callinfo[0] = irep
.
1177c
#       callinfo.p += 1
.
1175c
#       callinfo[0] = rg['pc']
.
1172c
#       callinfo.p += 1
.
1170c
#       callinfo[0] = rg['sp']
.
1147d
1137,1138c
        end while [true][thi]   # fuantei ? mruby:70410200 monami-ya.mrb:60510200
#       break if 0 != thi }
.
1133,1134c
        begin                   # fuantei ? mruby:70410200 monami-ya.mrb:60510200
#       loop {
.
1116,1131c
#       pl.pl_es(pc1, opg.(thi).push('ctr', [sp]))      # c 
        pl.pl_es(pc1, opg.(thi).push(                   # c 
                *['ctr', [sp]] + [[:ctr_s, pc1], []][thi <=> 0]))

#       if 0 == thi
#         pl.ctr_s(pc1)
#       elsif ht <= thi
#         thi = -1
#       end
#       thi += 1
        thi += 0 != thi && ht <= thi ? -thi : 1
.
1098,1104c
#         when 'th'
#           fv = [
#               -> {[thl[oi], ta.(fv[oi]), thl[oi + 1], []]},                # c t 
#               -> {(fv[oi] = ta.(fv[oi]) if oi <= ht = fv.hgt) ? # c 
#                       [thl[oi], fv[oi]] : []}
#           ][oi <=> 0].call
          when 'th' then fv = fvl[oi <=> 0].(oi)  # c 
.
1090,1096d
1085a
    fv = []
    fvl = [->(oi) {[thl[oi], ta.(fv[oi]), thl[oi + 1], []]},         # l     # c 
           ->(oi) {((oi <= ht = fv.hgt) && fv[oi] = ta.(fv[oi])) ?        # l     # c 
                [thl[oi], fv[oi]] : []}] # .lazy

.
1084c
#    thl = @@mh_thl
    thl = mh_thl
.
1053c
#       m = fy.(m, f)   # c 
        loc.verb "#{pc.to_xeh}                     #{sym}  #{rs[1]}        #{rs[0]}"
        sl.plwt(m) {m = Fiber.yield(f && 0 == m)}
.
1041c
#       1 < m && m = fy.(m, false)   # c 
.
1037c
#         2 < m && m = fy.(m, false) # c 
.
1030c
#           0 > i ? (r[1] = r[0]; flg[1] = true; ~ i) : i
            0 > i ? (flg[1] = ! ! r[1] = r[0]; ~ i) : i
.
1013,1016c
#   fy = ->(m, f) { # @Slp.slp 0
#     loc.verb "#{pc.to_xeh}                       #{sym}  #{rs[1]}        #{rs[0]}"
#     Fiber.yield(f && 0 == m)
#   }
.
1003,1006c
#       ((sw = sp + sz) + 0xe).step(sw, -1) {   # higokan mruby 70410200        # bbab89e7 5211410200 tmtm
        0 == s.size ? @Slp.slp(0) : # plr += lm.(       # c 
#               s[sz .. sz + (ap = (ap += ap >> 1) >> 1)]) # + (ap <=> 0)])
#       [sl.slp(0),
#         sz.step(sz + ap -= ap >> 2) { |n| plr<< lm.(s[n])}        # p     # c 
          plr += lm.(s[sz .. sz + (ap = (ap += ap >> 1) >> 1)])     # + (ap <=> 0)])  # c 
#         plr += lm.(s[sz .. sz + ap -= ap >> 2]) {r1.empty?}     # ?     # c 
#         plr += lm.(s[sz .. sz + ap -= ap >> 2], 'empty?')       # c 
#       ].lazy.to_a[s.s.size <=> 0] # .force                      # c
#       (sz + ap -= ap >> 2).downto(sz) { |n|
#          plr<< s.ow?(n) ? nil : lm.(s[n])       # p c 
#       }
.
1000a
#       0 == m && wo.include?(r) || wo.push(r).sort!
.
992,993c
#   lm = ->(r1, &b) {yield ? r1 : imem.send(pr, *isr0, r1, mt)}  # ?     # l 
#   lm = ->(r1, ck) {r1.send(ck) ? r1 : imem.send(pr, *isr0, r1, mt)}        # l 
.
989,990c
    lm = ->(r1) {r1 && imem.send(pr, *isr0, r1, mt)}         # l 
#   lm = ->(r1) {imem.send(pr, *isr0, r1, mt)}       # l 
.
984,986c
      ap = @@fls_w ||= 1 << sz = 3
      ap = @@fls_m ||= ((ap += (ap <<= 1) + (ap <<= 2) + (ap << 2)) >> sz) + 1 >> 1
.
981,982c
#      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 ||= ((@@fls_w << sz) + @@fls_w >> sz - 1) + 1 >> 1
##      sz = nil; ap = @@fls_m
.
979a
      m = 1; wo = []
.
976c
      isr0, mt, r0, r1, sym, sy, pr = nil
.
972c
#      i = @irep
      s.irep(i = @irep)
.
970a
      sl = @Slp
.
956,959c
#  @@fls_m = 1 << @@fls_w = 3; @@fls_m = (
#    (@@fls_m += (@@fls_m <<= 1) + (@@fls_m <<= 2) + (@@fls_m << 2)) >> @@fls_w
#       ) + 1 >> 1
#  @@fls_w = nil
  @@fls_w = nil; @@fls_m = nil
.
951,954c
  class Fls__l
  end
.
946,947d
944c
#   r = r.map { |v| v[1] = v[-1]}       # higokan ? mruby 70410200
.
941c
#    r = Array.new(thl.size) { |n| pl[lpl.afl(thl[n], ?i)]}     # q 
.
939a
    r = [pl[lpl.afl(thl[0], ?i)]]       # q 
    r[1] = knid(pl[lpl.afl('ctr', ?i)][0], :Array) &&   # q 
      lpl.ckth(pl[lpl.afl(thl[1], ?i)], 3) ?    # q 
        pl[lpl.afl(thl[1], ?i)] : []            # t     # q 
.
930,938c
#    thl = @@mh_thl
    thl = mh_thl
.
904c
    # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8    # http://www.monami-ya.jp/
.
900c
#    thl = @@mh_thl
    thl = mh_thl
.
819c
#   'pc' == k && case v when Numeric then v == @a.assoc(k)[i] && v = -v end'    # cp 
.
791,795c
#    if a.empty?
#      @a.map { |v| v.dup}
#    else
    a.map { |v| self[v]}
  end

  def to_a
    @a.map { |v| v.dup}
.
758a

  def owc(i = @ir) i = owi?(i) && @@ow.delete_at(@@ow.index(i)) end
.
738a
  def owi?(i) @@ow.assoc(i) end

.
732,736c
#  def []=(*a)
  def []=(sp, va, pc = nil)
#p [sp, va, pc, self.object_id]
#   @@m.lock
      pp = sp + @p

#      knid(pc, :Fixnum) && (@ow[pc] && (@ow[pc].include?(pp) || (@ow.push(pp); @ow.sort!)) || @ow[pc] = [pp])
      @s[pp] = va
#   @@m.unlock
#   a
  end

  def irep(i)
    owi?(i) || (@@ow<< [i, []]; 0xf < @@ow.size && @@ow.shift; @ir = i)        # p 
.
716c
#    @p = sp; @s = s
    @p = sp; @s = s; @ir = nil
.
711c
  attr_accessor :p, :s
.
709a
  @@ow = []
.
668c
#      fpl = delif_c(ts, fpl) { |fb, n| fb.resume}
      fpl = delif_c(ts, fpl) { |fb, n| fb.resume(n)}
.
653c
#      fpl<< plw(pc) if pc && 0 <= pc  # p 
      pc && 0 <= pc && fpl<< plw(pc)   # p 
.
603,640d
601d
599c
#       Fiber.yield(flg || mx < thi)
#       m = Fiber.yield(flg || mx < thi)
#       0.step(m) { |n|
        ((m >> 2) + 1).times { |n| m = Fiber.yield([flg || mx < thi][n])}
.
597a
#       0 < m && m = Fiber.yield(false)
.
593a
#         elsif mx > idx
          else
            pl_es(pc, [thl[idx], th[idx]])
.
590,592c
          if kt.call
#         if ji_ngq ||= kt.(pc)         # c 
#         if ji_ngq ||= plw__kt(pc)
#           thi.step(idx) { |n| pl_es(pc, [thl[n], th[n]])}
            0.step(idx) { |n| pl_es(pc, [thl[n], th[n]])}
.
588d
584d
580c
#       if 0 < idx && kt.call && ckth(th[idx], 2)
        if 0 < idx && ckth(th[idx], 2) && kt.call
#       if 0 < idx && ckth(th[idx], 2) && ji_ngq ||= kt.(pc) # c 
#       if 0 < idx && ckth(th[idx], 2) && ji_ngq ||= plw__kt(pc)
.
576,577c
#    Fiber.new {                ##
    Fiber.new { |m = 1|
      0 < m && Fiber.yield(false)
.
574c
#    kt = -> {ckth(pl_eg(pc, 'ctr')[0], 0)}  # l     # sp [sp]
    kt = -> {ji_ngq ||= ckth(pl_eg(pc, 'ctr')[0], 0)}        # l     # sp [sp]
#   kt = @@kt
.
572c
#    mx = th.hgt
.
566,568d
563c
#    th = ((idx = 0) .. thl.hgt).map { |v|
    th = ((idx = 0) .. mx = thl.hgt).map { |v|
.
558,561c
#    thl = @@mh_thl
    thl = mh_thl
#   idx = 0     ##
.
554a
# def plw__kt(pc)
#   ckth(pl_eg(pc, 'ctr')[0], 0)        # sp [sp]
# end

# @@kt = ->(pc) {ckth(pl_eg(pc, 'ctr')[0], 0)}       # l     # sp [sp]       # higokan ? mruby 70410200
.
550,552c
#       (loc = @@Loc).verb("#{pc.to_xeh}           #{a[0]} #{a[1].to_xeh}")
#    [self.send(*a) || a[1], nil]

    a, op = a
    [self.send(a, op) || op,
        case a when Numeric then true end ||
                (loc = @@Loc).verb("#{pc.to_xeh}           #{a}    #{op.to_xeh}")]
.
544d
541,542c
#     knid(a, :Array)   ?     s_id(a, pc)  :    a       # __method__(a, pc)  :    #? mruby 410200
      case a when Array then  s_id(a, pc)  else a end   # __method__(a, pc)  else #? mruby 410200
.
537c
#   (TB.dup == a || case a when Array then 0 >= a.hgt end) && (return a)
.
512a
    #   0 : ary 1 : ! ary       2 : kara ary    3 : ! kara ary
.
491,494d
481c
    aa.each_slice(2) { |k, v| send(k, v)}
.
461,478c
      knid(k, :Symbol) && (aa.push(k, v); break)
      i = self.afl(k, ?i)                               # q 
#     i = loop {self.afl(k, ?i) && break}               # q     # fuguai taisaku
      pl[i] = 'ctr' == k && ! knid(v, :Array) ? pl[i]<< v : v             # p 
#     pl[i].send(('ctr' == k && ! knid(v, :Array) ? '<<' : 'replace'), v) # p 
##     (pl[i = self.afl(k, ?i)] += [v]).replace!{ |i|   # q 
##      i.send(case v when Numeric then 'itself' else 'pop' end)}
.
453c
    aa = []
.
435,437c
#    if 0 == n
#      pl.map! { |a| a[1]}
#    end
    0 == n && pl.map! { |a| a[1]}
.
334,336c
#      a_ = a[0 .. 2]; return a[3].map{ |v| v.nil? ? v : send(*a_, v)}  # r 
      a3 = a[3]; a3.map{ |v| v.nil? ? v : send(*a[0 .. 2], v, a[4])}
.
325,326d
164a

  def plwt(m = 1)
    sf = 2      # (@@ts >> 1) + 1
    ((m >> sf) + 1).times { |n| yield n}
  end
.
130,134c
#      n = 0
#      c = -i - 1
      n = 0; c =  i + 1
      while 0 < c -= 1       # c += 1 < i # -e:1: non float value (TypeError) ( monami-ya.mrb:60510200 mruby:70410200 )
#       a[n] && yield(a[n], c + i) && (next a.delete_at(n)); n += 1
        a[n] && yield(a[n], i - c) && (next a.delete_at(n)); n += 1
#       (v = a[n]) && yield(v, i - c) && a.delete_at(n) || n += 1
.
122d
96d
35,36c
  @@ts = 1      # = (@@rmth >> 1) + 1     # = $$ + 1      # = 68060
#  @@mh_thl = (0 .. 1).to_a.map { |n| 'th' + n.to_xeh}
  @@mh_thl = nil

  def mh_thl
    @@mh_thl ||= (0 .. 1).to_a.map { |n| 'th' + n.to_xeh}
  end
.
16d
10c
        :ADD,   :ADDI,  :SUB,   :SUBI,  :MUL,   :DIV,   :EQ,    # :LOADF,
.



-- 
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net  tel:081-70-5152-1104
祝 Softbank-PHS 展開期間延長