1399c
#      @slp.slp
      sl.slp
.
1397c
#      end
.
1395c
#      if pfl = ise[1][0]
.
1388,1390c
#      ise[0].reject!(&:resume)
#      ise[0].delif_c(2) { |fis, n| fis.resume}
      ise[0].reject! { |fis| fis[1].resume && 0 <= fis[0]}
#     ise[0].delif_c(2) { |fis, n| fis[1].resume && 0 <= fis[0]}     # thl.size
.
1373d
1359,1361d
1345d
1341,1343c
#         pco<< rg['pc'] if ?J == rg['sym'].to_s[0]       # p     # q 
          pco<< rg['pc'] if ifj.(rg['sym'])       # p c 

#         opg.call
#         if ! ifj.(rg['sym'])

.
1338d
1310,1336c
#       if (ifj.(rg['sym']) && ! ifs.(rg['sym']))       # c 2 
        unless (ifj.(rg['sym']) || ifs.(rg['sym']))     # c 2 
          ist.call

          next if pcoj.call
.
1306d
1304d
1302d
1295,1297c
#       fl<< pfl[1] if ! pfl[0] || 0 <= pfl[0] # p 
        if pfl
#         ise[0]<< iset(pfl[1])   # p 
#         ise[0]<< [pfl[0], iset(pfl[1])] # p 
          ise[0]<< [pfl[0], isfl(pfl[1])] # p 
          if 0 <= pfl[0]
            fl<< fls(pfl[0])      # p 
          end
          true
#       pfl && (! pfl[0] || 0 <= pfl[0]) && fl<< pfl[1]        # p 
        end
.
1291d
1288,1289c
######      0.step(1) { |n|
#      0.step(0) { |n|
      fl.delif_c(1) { |v, n| v.resume(n)}
#      fl.reject!.with_index { |v, n| v.resume(n)}
.
1283d
1276c
    ist = -> {       # l 
#      pcf, pfl1 = ise[1].shift
#         if pcf && pcf.abs == rg['pc']         # cp 
#           fl<< pfl1     # p 

      unless ise[0].empty?
#      pfl = ise[0][-1] # .pop
        pfl = ise[0].pop
        pcf = pfl[0]
        if 0 > pcf
          if pcf.abs == rg['pc']                # cp 
            fl<< fls(pcf.abs)             # p     # cp 
            pfl[0] = pcf.abs                    # cp 
            ise[0]<< pfl          # p 
#           ise[0].pop
#         else
#           ise[0]<< iset(rg)             # p 
#           ise[0]<< isfl(rg)             # p 
            next
          end
        else
          ise[0]<< pfl            # p 
        end
      end
      pcf = rg['pc']
      pcf = -pcf if 0 > rg.pg
#####      rg['pc'] *= -1 if 0 > rg['ctr', 1]        # kakezan       # cp 
#####      pcf = rg['pc']
#       ise[1]<< [pcf, fls(rg['pc'])]     # p 
      ise[1]<< [pcf, rg.to_ra]    # p 
    }

#    ifj = -> (sym) {?J != sym.to_s[0]}              # l     # q 
    ifj = -> (sym) {?J == sym.to_s[0]}               # l     # q 
.
1267,1270c
#   @@opg = -> (irep, rg, imem) {    # l 
    opg = -> {                               # l 
      c, sym = @@opf.(irep, rg['pc'])           # c     # cp 
.
1262c
#       @slp.slp 0
        sl.slp 0
.
1258d
1255d
1252c
#    [callinfo, irep, rg]
.
1247,1248c
        callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem)    # c 
#       printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
.
1240c
#         @sp = @callinfo[@cp]
.
1234c
#         @pc = @callinfo[@cp]
.
1224c
          stack[0] = stack[rou.getarg_a(cop)]
.
1222c
#         @stack[@sp] = @stack[@sp + getarg_a(cop)]
.
1220c
          return stack[rou.getarg_a(cop)]
.
1218c
#         return @stack[@sp + getarg_a(cop)]
.
1211,1212c
      case sym
#      case rg['sym']
.
1209c
      cop, sym = rg.to_ra('cop', 'sym')
.
1204a
    rou = @Rou
.
1203d
1201a
#    ise = []
.
1190c
    loc = @@Loc
    sl = @Slp
.
1188a
  def isfl(rg)
    a = []
    fb = iset(rg)
    Fiber.new {
      loop {
#       Fiber.yield r = true == fb.resume(*a)
        Fiber.yield true == fb.resume(*a)
#       fb = fls
        # Fiber.yield fb.resume(m)
      }
    }
  end

.
1185c
#   sym = OPTABLE_SYM[imem.get_opcode(cop)]
    sym = OPTABLE_SYM[(rou = @@Rou).get_opcode(cop)]            # c 
.
1177c
#  @@opf = ->(irep, pc, imem) {      # l 
  @@opf = ->(irep, pc) {     # l 
.
1170c
#     printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
.
1164c
#       @stack[@sp + a] = @stack[@sp + a].send(mid, *args)
.
1160c
#         args.push @stack[@sp + a + i + 1]
.
1156c
#       next
.
1149c
#       @pc = 0
.
1141,1145c
        callinfo.pi
#       @sp += a
.
1139c
        callinfo[0] = irep
.
1136c
        callinfo.pi
.
1134c
        callinfo[0] = rg['pc']
.
1131c
        callinfo.pi
.
1129c
        callinfo[0] = rg['sp']
.
1127c
#       @callinfo[@cp] = @sp
.
1122,1123c
      n = rou.getarg_c(cop)
#     newirep = Irep::get_irep(@stack[@sp + a], mid)
.
1120c
      mid = irep.syms[rou.getarg_b(cop)]
.
1118c
      a = rou.getarg_a(cop)
.
1107,1108c
        rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
#       next
.
1104,1105c
      if !stack[rou.getarg_a(cop)]
#       @pc = @pc + getarg_sbx(cop)
.
1102c
#     if !@stack[@sp + getarg_a(cop)] then
.
1096c
        rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
.
1093c
      if stack[rou.getarg_a(cop)]
.
1087,1088c
      rg['pc', -1] = rg['pc'] + rou.getarg_sbx(cop)
#     next
.
1085c
#     @pc = @pc + getarg_sbx(cop)
.
1077,1078c
    case sym
#    case rg['sym']
.
1075c
    rou = @@Rou
#    cop = rg['cop']
    cop, sym = rg.to_ra('cop', 'sym')
.
1070a
#     pl1[i_lf] += 1
.
1069c
        sp = [*sp]
.
1067c
#       (0 != thi && ht <= thi) ? thi = 0 : thi += 1
        thi += (0 != thi && ht <= thi) ? -thi : 1
#       Fiber.yield(0 == thi)   ##
#       begin                   # fuantei ? mruby:70410200 monami-ya.mrb:60510200
        loop {
          sl.slp 0
          Fiber.yield(0 <= pc ? [true][thi] : ([pcabs][thi] || pc))  # cp 
#       end while [true][thi]   # fuantei ? mruby:70410200 monami-ya.mrb:60510200
        break if 0 != thi }
.
1063,1065c
        pl.ctr_s(pc1) if 0 == thi
.
1061d
1056,1059c
        opa = opg.(thi).push('ctr', [sp])       # c 
.
1046a
#         0 != kfv.size ? lopa += kfv : lopa.push(k, fv)
.
1045d
1042c
#             kfv = fv[oi] ? [thl[oi], fv[oi]] : []
.
1038a
#             kfv = [thl[oi], imem.ta(fv[oi], cop), thl[oi + 1], []]
.
1036d
1032a
#       kfv = []
.
1027d
1025d
1013a
    sl = @Slp
.
1009,1010c
    pcabs = pc.abs      # cp 
#    pc1 = pc + 1
    pc1 = pcabs + 1     # cp 
    loc = @@Loc
.
1006a
    rg = Rg.new rg
.
993,994d
989,991c
#           s.s.hgt <= mx && mx = s.s.hgt
            s.size - 1 <= mx && mx = s.size - 1
.
982,984c
            r = (r = plr[r1]    ; r1 >= sz ||
                r.nil?) ? lm.(r1) : r           # c 
.
974d
972d
965,966c
#         flg[0] && sp || s.p = sp = [pl[i_sp]].flatten[0]
.
959,960c
#         f = ktf && flg.all?
.
950,954d
942a
    mx = 0xf
.
932,934d
926,929c
#    pl, sp, mt, isr0, r, r0, r1, sym, pr = nil
    pl, sp, mt, isr0, r, r0, r1, sym, sy, pr = nil
.
921d
916d
913c
    loc = @@Loc
.
906d
904d
901,902c
        when Array then lpl.ckth(r[1], 2) && r[1] = r[0] end    # q 
.
899a

#    case pl[lpl.afl('ctr', ?i)][0]
#    when Array then lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1   # q     # p 
#    end
#    r[1] = r[-1]

    thl.each_with_index { |v, n| r[n] = pl[lpl.afl(v, ?i)]}     # q 
#    r[1] = r[0] if
#       knid(pl[lpl.afl('ctr', ?i)][0], :Array) && lpl.ckth(r[1], 2)    # q 

.
896a
#    r = [pl[lpl.afl('th0', ?i)]]       # q 
.
894,895c
    thl = @@mh_thl
    r = []
.
888c
#      ENVary.new(0).plm(pc)
      Pl.new.plm(pc)
.
866c
    # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8    # www.monami-ya.jp
.
859d
840,842c
#    GC.disable # g     # gene gc enable : mruby 6170410200 d17506c1
.
826,830c
#   @pl = ENVary.new(rmth + 1, thini, thini, [], [])
.
809a
    @Rou = @@Rou
.
807d
801a
    @@Rou = ROU
.
800d
798d
795,796c
    @@Loc = LOC
.
776c
    if a.empty?
      @a.map { |v| v.dup}
    else
      a.map { |v| self[v]}
    end
.
710c
#   @p = a[0] if ! a.empty?
#    @p = pt
.
707a
#  def sp(pt)
.
703,704c
  def pi() @p += 1 end
.
674c
#####  attr_accessor :p, :s             # fuantei mruby 70410200
  attr_accessor :p
.
639c
# class Pl < ENVary
.
631c
#      @@Slp.slp
      sl.slp
.
604a
    sl = @@Slp
.
596d
594d
592d
589c
#       idx += 1 unless arf = ckth(th[idx], 2)
#       idx += 1 unless arf = mx == idx ? arf : ckth(th[idx], 2)
        idx += 1 unless arf = ckth(th[idx], 2) if mx != idx
.
586c
#       @@Slp.slp 0
        sl.slp 0
.
583d
580,581c
        unless arf = ckth(th[mx], 2)
.
577d
575d
572d
569d
567c
    sl = @@Slp
.
561c
#    (imem = @@Imem).mcall(*a) || a[1]
#    (imem = @@Imem).send(*a) || a[1]
    (rou = ROU).send(*a) || a[1]
.
548d
544a
# private
end

# module M__Pl  # higokan ? mruby 70410200
class Pl < ENVary
  def initialize; end

.
542c
    end.!.!
.
510,511c
#   ctr = (cta = pl_g(0).afl('ctr', self)).shift
#   pl_es(0, ['ctr', cta])
#   ctr
    [(c = pl_g(0).afl('ctr', self)).shift, pl_es(0, ['ctr', c])][0]
.
505,507c
#  def to_ia(n, lpl = self)
#    [lpl = lpl[n], 0 != n && (return @@Plmg.(@@pl0i, lpl))][0] # r     # c 
#  end
.
500,501d
498c
    pl_s(n, pl)
.
480,496c
      i = self.afl(k, ?i)       # q 
      'ctr' == k && knid(v, :Array).! ? pl[i]<< v : pl[i] = v     # p 
#     'ctr' == k && case v when Array then pl[i] = v else pl[i]<< v end           # p     # higokan mruby 70410200
#     'ctr' == k && pl[i] = case v when Array then v else pl[i] + [v] end       # p     # higokan mruby 70410200
.
474d
467,468c
  def pl_es(n = 0, a)
.
457a
GC.disable      # g                                     # fuguai taisaku
.
436a
# @@Idx0 = ->(n = 0, t = 1) {n + (t > n ? 1 : 0)} # l 
.
421a
#    @@loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
.
410a
#    @@loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
386,391c
##   @sz = a.size
#    if 1 > n
##     @n = -n
##     return self[@n]
#      return
#    end
.
376d
365,366d
362,363d
357d
341c
# include RiteOpcodeUtil
.
335,337c
#  def mcall(*op)
#    case op[0] when Numeric then op.inject else self.__send__(*op) end
#  end
.
311,330c
#  def s__sr0(      *a) a[0][                   a[@@I_s__r0]]           end
#  def s__r0(       *a)                         a[@@I_s__r0]            end
#  def s__sr01(     *a) a[0][                   a[@@I_s__r0] + 1]       end
## def s__i_pool_r0( *a) a[@@I_s__i].pool[      a[@@I_s__r0]]           end
## def s__i_syms_r0( *a) a[@@I_s__i].syms[      a[@@I_s__r0]]           end
#  def s__i__r0(            *a) a[0].send(a[@@I_s__mt])[a[@@I_s__r0]]           end
#  def s__r1_eq_sr01(*a) a[0][                  a[@@I_s__r1]] ==
#                       a[0][                   a[@@I_s__r0] + 1]       end

  def s__sr0(       *a) a[0][           a[1]]           end
  def s__r0(        *a)                 a[1]            end
  def s__sr01(      *a) a[0][           a[1] + 1]       end
  def s__i__r0(     *a) a[0].send(a[3])[a[1]]           end
  def s__r1_eq_sr01(*a) a[0][           a[2]] ==
                        a[0][           a[1] + 1]       end
.
309c
# @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
197,198d
178d
169,172c
class Rou
  include RiteOpcodeUtil
  include M__Rou
end

ROU = Rou.new
.
167c
module M__Rou
  def send(*op)
    case op[0] when Numeric then op.inject else self.__send__(*op) end
  end
end
.
24,25c
# NSL_ = 6309   # nanosleep()
NSL_ = 10065    # nanosleep()
.
22a
GC.start        # g 
.



-- 
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net  tel:081-70-5152-1104
heiwa furiisekkusu 1tu