1377c
GC.start                # g     # antei ?
.
1373c
GC.start                # g 
.
1348,1349c
      @Slp.slp
    end
.
1346c
#      ise[0].reject! { |fis| fis.resume}
      ise[0].reject!(&:resume)
#     ise[0].delif_c(1) { |fis, n| fis.resume}

#     fl.step(@@rmth) { |n|     # higokan ? touki 70410200
#     fl.reject!.with_index { |v, n| v.resume(n) && 0 == n}     # higokan ? touki 70410200

#     if pfl = ise[1][0]
#       (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0]     # p 
#     end
.
1339,1340c
        stack.ps rg['sp']
#       @irep[0] = irep
        @irep = irep
.
1333c
#      if 0 <= rg['ctr', 1]
      if 0 <= rg.pg
.
1329a
        jsc.call
.
1328d
1324c
#       plini
.
1322a
        rg.ps(rg.pg.abs)        # cp 
.
1320c

#       rg['ctr', 1] = rg['ctr', 1].abs
.
1315c
##      ise[0].reject! { |fis| fis.resume}      # higokan ? GC 70410200
.
1306,1308c
#         pco = rg['pc'] if ?J == rg['sym'].to_s[0]     # q 
          pco<< rg['pc'] if ?J == rg['sym'].to_s[0]       # p     # q 
######    (pco = rg['pc']; pctj<< pco + 1) if ?J == rg['sym'].to_s[0]     # q 
#         ise[1].push([false, false], [false, false])
#         rg['ctr', 1] *= -1    # kakezan
          rg.ps(-rg.pg)
.
1303a
          end
.
1301,1302c
#     if 0 <= rg['ctr', 1] || pco
#     if pco.slice!(0 .. -1) || 0 <= rg['ctr', 1]    # higokan monami-ya.mrb:60510200 mruby:70410200
#      if pco.pop || 0 <= rg['ctr', 1]
      if pco.pop || 0 <= rg.pg
#       pco &&= nil
        opg.call
#       @@opg.(irep, rg, imem)  # c 

        loc.verb "#{rg['pc'].to_xeh}       #{rg['sym']}    #{rg['cop'].to_xeh}" # if rg['sym']

#       if (ifj.(sym) && ! ifs.(sym))           # c 2 
        if (ifj.(rg['sym']) && ! ifs.(rg['sym']))       # c 2 
#         ise<< iset(rg)  # p 
#         ise<< iset(rg) if 0 <= rg['pc', nil, '-']    # p     # cp 
#         ise[0]<< iset(rg) if 0 <= rg['pc', nil, '-'] # p     # cp 
#         next if pcoj.call
#         fl<< fls(rg['pc'])      # p 

#         pcff = false
#         if pfl = ise[1].shift
#           pcf, pfl1 = pfl
#           fl<< pfl1 if pcff = pcf.abs == rg['pc']       # p     # cp 
#         end
          pcf, pfl1 = ise[1].shift
          if pcf && pcf.abs == rg['pc']         # cp 
#######     fl<< pfl1     # p 
            fl<< pfl1 # if pctj.pop != rg['pc']           # p 
          else
#         if ! pcff
            ise[0]<< iset(rg)     # p 

            pcf = rg['pc']
#           pcf = -pcf if 0 > rg['ctr', 1]
            pcf = -pcf if 0 > rg.pg
#######     ise[1]<< [pcf, fls(rg['pc'])] # p 
            ise[1]<< [pcf, fls(rg['pc'])] # if pctj.pop != rg['pc']       # p 
            next if pcoj.call
.
1284,1299c
#      0.step(@@rmth) { |n|
#      0.step(3) { |n|
#      fl.reject_c!(1) { |v, n| v.resume(n)}
      fl.reject!.with_index { |v, n| v.resume(n)}

#      ise[1].each_index { |n|
      ise[1].reject! { |pfl|
#       (fl<< pfl[1]; ise[1].shift) if 0 <= pfl[0]     # p 
#       (fl<< pfl[1]; ise[1].shift) if ! pfl[0] || 0 <= pfl[0] # p 
#       fl<< pfl[1] if pfl[0].! || 0 <= pfl[0]         # p 
        pfl && (pfl[0].! || 0 <= pfl[0]) && fl<< pfl[1]        # p 
#       pfl && (pfl.empty? || 0 <= pfl[0]) && fl<< pfl[1]      # p 
      }
.
1280,1282c
#      ise.reject! { |fis| fis.resume}
#     ise[0].reject! { |fis| fis.resume}
.
1272a
#   @@opg = ->(irep, rg, imem) {     # l 
#    opg = -> { # |irep, rg, imem|   # l 
    opg = -> {       # l 
      c, sym = @@opf.(irep, rg['pc'], imem)     # c 
      rg.push('cop', c)
      rg.push('sym', sym)
#     rg
    }

.
1268a
        @Slp.slp 0
.
1265,1266c
#      if 0 > rg['ctr', 1]
      if 0 > rg.pg
.
1263c
#    pco = nil
    pco = []
.
1260c
#      [callinfo, irep, rg]
.
1252,1257c
        callinfo, irep, rg = @@jsc.(stack, callinfo, irep, rg, imem)    # c
##      printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
#       printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
.
1244,1245c
          callinfo.pd
###       @sp = @callinfo[@cp]
.
1238,1241c
          callinfo.pd
###       @pc = @callinfo[@cp]
#         pc = @callinfo[@cp] - 1
#         rg['pc', -1] = @callinfo[@cp]
.
1231c
          callinfo.pd
.
1227,1229c
          stack[0] = stack[imem.getarg_a(cop)]
.
1225c
###       @stack[@sp] = @stack[@sp + getarg_a(cop)]
.
1220,1223c
          return stack[imem.getarg_a(cop)]
.
1217,1218c
        if 0 == callinfo.pg
###       return @stack[@sp + getarg_a(cop)]
.
1106,1212c
#     case sym
      case rg['sym']
.
1104c
    jsc = Proc.new {
      cop = rg['cop']
.
1100d
1097c
    ise = [[], []]
.
1091c
    @irep = irep
.
1087,1089c
    imem = @imem
    stack = @stack
    callinfo = @callinfo
.
1085d
1080d
1076,1078c
    sym = OPTABLE_SYM[imem.get_opcode(cop)]
.
1065,1068c
  @@opf = ->(irep, pc, imem) {       # l 
.
1058,1062c
  @@jsc = Proc.new { |stack, callinfo, irep, rg, imem|
    cop = rg['cop']

#   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(cop)
##    next

    when :JMPIF
#     if @stack[@sp + getarg_a(cop)] then
#     if @stack[rg['sp'] + imem.getarg_a(cop)]
      if stack[imem.getarg_a(cop)]
#       @pc = @pc + getarg_sbx(cop)
#       pc = pc + lpl.getarg_sbx(cop) - 1
        rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
#       next
      end

      # JMPNOT Ra, nでもしRaがnilかfalseならpcをnだけ増やす。ただし、nは符号付き
    when :JMPNOT
###   if !@stack[@sp + getarg_a(cop)] then
#     if !@stack[rg['sp'] + imem.getarg_a(cop)]
      if !stack[imem.getarg_a(cop)]
##      @pc = @pc + getarg_sbx(cop)
#       pc = pc + lpl.getarg_sbx(cop) - 1
        rg['pc', -1] = rg['pc'] + imem.getarg_sbx(cop)
##      next
      end

      # メソッドの先頭で引数のセットアップする命令。面倒なので詳細は省略
    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 = imem.getarg_a(cop)
#     mid = @irep.syms[getarg_b(cop)]
      mid = irep.syms[imem.getarg_b(cop)]
#     n = getarg_c(cop)
      n = imem.getarg_c(cop)
###   newirep = Irep::get_irep(@stack[@sp + a], mid)
#     newirep = Irep::get_irep(@stack[rg['sp'] + a], mid)
      newirep = Irep::get_irep(stack[a], mid)
      if newirep then
###     @callinfo[@cp] = @sp
#       @callinfo[@cp] = rg['sp']
#       callinfo[0] = rg['sp']
#       @cp += 1
#       callinfo.pi
#       @callinfo[@cp] = @pc
#       @callinfo[@cp] = rg['pc']
#       callinfo[0] = rg['pc']
#       @cp += 1
#       callinfo.pi
#       @callinfo[@cp] = @irep
#       @callinfo[@cp] = irep
#       callinfo[0] = irep
#       @cp += 1
#       callinfo.pi
        callinfo[0 .. 2] = [rg['sp'], rg['pc'], irep]
        callinfo.pi 3

###     @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[rg['sp'] + a] = @stack[rg['sp'] + a].send(mid, *args)
        stack[a] = stack[a].send(mid, *args)
      end

#   else
##    printf("Unkown code %s \n", OPTABLE_SYM[get_opcode(cop)])
#     printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
    end

    [callinfo, irep, rg]
.
1048,1053c
        @Slp.slp 0

        Fiber.yield(0 == thi)   ##
#       sp = [sp].flatten
        sp = [sb].flatten
.
1046c
        (0 != thi && ht <= thi) ? thi = 0 : thi += 1
.
1043,1044c
        pl.pl_es(pc1, opa)
        pl.ctr_s(pc1) if 0 == thi
.
1040,1041c
#       opa = opg.(thi) # c 
#       opa.push(k_sp, [sp]) if 0 == thi
        opa = opg.(thi).push('ctr', [sp])       # c 
.
1038c
#   k_sp = @pla.assoc('sp')[1]
    Fiber.new { ##
.
1028,1032c
        if v # && if knid(fv, :Array)
          if 'th' == k
            if 0 == oi
#             fv = [fv[oi] = th[oi] = imem.ta(fv[oi], cop)] + [[]]
              lopa.push(thl[oi], imem.ta(fv[oi], cop))
              k, fv = [thl[oi + 1], []]
            else
              fv[oi] = imem.ta(fv[oi], cop) if oi <= ht = fv.hgt
              fv[oi] ? (k, fv = [thl[oi], fv[oi]]) : k = nil
#             fv = th
            end
          end
#         lopa.push(k, fv)
          lopa.push(k, fv) if k
        end
.
1020,1024d
1018c
#    th = []    ##
    thl = @@mh_thl
.
1006,1016c
    fml = imem.fml('th', sym) || (
#     printf("Unkown code %s \n", OPTABLE_SYM[imem.get_opcode(cop)])
#     printf("Unkown code %s \n", OPTABLE_SYM[rou(:get_opcode, cop)])
#     printf("Unkown code %s \n", OPTABLE_SYM[@@rou.(:get_opcode, cop)])      # c 
      loc.verb("Unkown code #{sym} ") # .to_s
#     return nil
#     raise
##    rg = Fiber.yield(nil)
    )
    bt = imem.fml('th', 'bt')[1 .. -1]
    sb = sp
.
1003,1004c
    pc1 = pc + 1
    loc = @@loc
    imem = @imem
    pl = @pl
#   i_lf = @idx['lf']
.
996,1001c
  def iset(rg)  ##
    pc, sp, cop, sym = rg.to_ra('pc', 'sp', 'cop', 'sym')
.
991c
        m = fy.(m, f)   # c 
.
979,989c
        if 0 == m
#         s.sp(sp ||= (plr = pl[i_sp])[0])
#         s.sp(sp ||= (plr = [pl[i_sp]].flatten)[0]) if flg[0]
#         s.ps(sp ||= [pl[i_sp]].flatten[0]) if flg[0]
          s.ps(sp ||= pl[i_sp].flatten[0]) if flg[0]
#         plr ||= [sp]
#         s.sp sp
          r0, r1 = r
#         pr || (pr, sy = imem.fml('st', sym)[1 .. -1])
          pr || (pr, sy, mt = imem.fml('st', sym)[1 .. -1])

#         isr0 = [i, s, r0]
          isr0 = [mt ? i : s, r0]
#         sz = plr.size
          sz = plr.size if flg[0]
          if f
#         if f && ktf
#           r = r1 < sz && plr[r1] || lm.(isr0, r1)  # c 
            r = r1 < sz ? plr[r1] : nil              # isyoku tokusei
#           r.nil? && r = lm.(isr0, r1)         # c 
            r.nil? && r = lm.(r1)               # c 
            s[r1] = sy ? [s[r1], r].inject(sy) : r
            rs = [r1.to_xeh, r0.to_xeh]
          elsif flg[0]
#         elsif flg[0] && ktf
            mx = 0xf
            s.s.hgt <= mx && mx = s.s.hgt
#           sz.step(mx) { |n| plr<< lm.(isr0, s[n])}      # p c 
            sz.step(mx) { |n| plr<< lm.(s[n])}    # p c 
#           (mx - sz).times { |n| plr<< lm.(isr0, s[n + sz])}     # p c 
#           (mx - sz).times { |n| s[n + sz] && plr<< lm.(isr0, s[n + sz])}        # p c 
            rs[1] = r0.to_xeh
          elsif flg[-1]
#         elsif flg[-1] && ktf
            rs[0] = r1.to_xeh
          end
.
967,977c
#       if f.! || ! ktf
          pl = lpl.pl_g(pc1)    ##
          sym, r = rslt(pl)

##        for idx in (0 ... pl[i_th].size)
#         for idx in (0 ... r.size)
##          flg[idx] = lpl.ckth(pl[i_th][idx], 1)       ##      ####
#           flg[idx] = lpl.ckth(r[idx], 1)      ##      ####
#         end
          r.each_with_index { |v, i| flg[i] = lpl.ckth(v, 1)}   ##      ####

#         sp = pl[i_sp]
#         sp = sp[0] if (ktf = knid(sp, :Array))
#         f = ktf && ! flg.include?(false)
#         f = ! flg.include?(false)
          f = flg.all?
          m = fy.(m, false)     # c 
.
963,965d
961c
    Fiber.new { |m = 1|
.
916,957c
    fy = ->(m, f) { # @Slp.slp 0
      loc.verb "#{pc.to_xeh}                       #{sym}  #{rs[1]}        #{rs[0]}"
.
914a
    pc1 = pc + 1
    loc = @@loc
    lpl = @pl
    imem = @imem
#    i_th = lpl.afl('th', ?i)   # q 
    i_sp = lpl.afl(@pla.assoc('sp')[1], ?i)     ##      # q 

    f = false; flg = [false] # ; ktf = false
    s = Stack.new
#    i = @irep[0]
    i = @irep
    plr = []

#     sp, wd, isr0, r0, r1, lm, sy = [][0]
#    r = 0; r0, r1 = [nil, nil]
#    pl, sp, r, r0, r1, sym, pr = nil
#    pl, sp, mt, r, r0, r1, sym, pr = nil
    pl, sp, mt, isr0, r, r0, r1, sym, pr = nil

    rs = [?-, ?-]       # q 2 

#    lm = ->(isr0, r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)} # l 
##   lm = ->(isr0, r1) {imem.send(pr, *isr0, r1, mt)}                        # l 
    lm = ->(r1) {r1.nil? ? r1 : imem.send(pr, *isr0, r1, mt)}        # l 
#   lm = ->(r1) {imem.send(pr, *isr0, r1, mt)}                       # l 
.
911,912c
  def fls(pc)   ##
.
895,908c
    r[1] = r[-1]
    [pl[lpl.afl('sym', ?i)].to_sym, r]  # q 
#    [pl[@pl.afl('sym', ?i)].to_sym, r] # q 
.
876,892c
#    knid(pl[lpl.afl('ctr', ?i)], :Array) &&            # q 
#    knid(pl[lpl.afl('ctr', ?i)][0], :Array) && # q 
#       lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1        # q     # p 
    case pl[lpl.afl('ctr', ?i)][0]
    when Array then lpl.ckth(r1 = pl[lpl.afl('th1', ?i)], 3) && r<< r1    # q     # p 
.
813,874c
  def rslt(pl)
    lpl = @pl
#   r = pl[@pl.afl('th', ?i)]           # q 
    r = [pl[lpl.afl('th0', ?i)]]        # q 
.
809c
      ENVary.new(0).plm(pc)
.
788,797c
#    @pl[0] = 
#      [['th', [[thini]]], ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
#    @pl[0] = [['th', [[thini]]], [thl[0], [thini]], [thl[1], [thini]],
#             ['sym', [0]], ['ctr', []], ['Numeric', [0]]]
    pl[0] = [[thl[0], [thini]], [thl[1], [thini]],
              ['sym', [0]], ['ctr', []]]
#             ['sym', [0]], ['ctr', []], ['Numeric', [0]]]      # furui mattn/mruby-json
#    @pla = [['sp', 'ctr']]
.
785c
    # 3080410200 : 5x2 ok ( gc ) : monami-ya.mrb 8270410200 813e2af8    # http://www.monami-ya.jp/
.
781c
    thl = @@mh_thl
.
778a
#  def plini
.
757,760c
    @pla = [['sp', 'ctr']]

#######    @pl.nmrcf
.
751,752c
    thini = [false, 0]
#    @pl = ENVary.new(rmth + 1, [thini], [], [])
#    @pl = ENVary.new(rmth + 1, [thini], thini, thini, [], [])
#    @pl = ENVary.new(rmth + 1, thini, thini, [], [])

#   plini

#   @pl = ENVary.new(true)                                              # 410200plini
    plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], []))     # 310200plini ?
.
748a
    rmth = @@rmth
.
746c
    @irep = nil                 # 現在実行中の命令列オブジェクト
.
742a
    @callinfo = Stack.new(0, [])        # メソッド呼び出しで呼び出し元の情報を格納
.
741c
    @stack = Stack.new          # スタック(@spより上位をレジスタとして扱う)
.
736,737c
    GC.start    # g     # antei ?

#   @imem = Imem.new
    @imem = @@Imem
    @Slp = @@Slp
.
727,732c
    @@rmth = 39
#    @@loc = Loc.new
    @@loc = LOC

#    @@Imem = Imem.new
    @@Imem = IMEM
#    @@Slp = Slp.new
    @@Slp = SLP
.
721a
  include M__H
.
713a

# prepend M__Ist
.
711c
  def ps(i)
    @a.assoc('ctr')[1] = i
  end

  def pg
    @a.assoc('ctr')[1]
  end

  def to_ra(*a)
.
707c
#    case v when Numeric then 'pc' == k && v == @a.assoc(k)[i] && v = -v end    # cp 
.
693,697c
   @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
.
655,656c
  def pg() @p      end
#  def pi() @p += 1 end
  def pi(i = 1) @p += i end
  def pd() @p -= 1 end

# def sp(*a)
  def ps(i)
#   p id = self.object_id
#   a.empty? || @p = a[0]
    @p = i
#   @p
.
652c
#    @@m.unlock
#    a
.
650c
#    @@m.lock
.
644,646c
#    @@m.lock
#      s = @s
#    @@m.unlock
    @s[a[0] + @p]
.
635,640c
    @p = sp; @s = s
#   @p = sp; @m = m; @s = s
#    @@m.lock
#      s = @s
#    @@m.unlock
#    s
    @s
.
618,620c
# def []=(*a)
##  sleep 0
##  @@Slp.slp 0
##  a.to_s
#   super
# end
.
614,616c
# def [](*a)            # ok : monami-ya.mrb:60510200
##  sleep 0
##  @@Slp.slp 0
##  a.to_s
#   super
# end
.
610,612c
# def initialize
##  @f = ''             # cannot set instance variable (ArgumentError)
# end
.
607,608c
# @@f = 0x0.chr * (0x20 << 2)
# @@bm = 0xff.chr
.
601c
# class ENVary < Array
.
598a

# private
.
595,596c
      @@Slp.slp
      GC.start  # g     # antei ?
.
590a
##    fpl = delif_c(1, fpl) { |fb, n| fb.resume(pc)}    # ? 
.
583a
#       self.pl(cto)
#       self.pl(pc - 1)
.
581c
#       fpl<< self.plw(pc) if flg[0]      # p 
.
576c
##    pc && 0 <= pc && fpl<< (@@plw ||= plw); GC.disable       # p     # g 
.
571d
555,563c
        idx += 1 unless arf = ckth(th[idx], 2)
        arf ||= ckth(th[idx], 2)
        th[idx] = pl_eg(pc, thl[idx]) if arf
#       flg = ckth(pl_eg(pc, 'ctr'), 0) if ! flg        # [sp]
        flg ||= ckth(pl_eg(pc, 'ctr')[0], 0)            # [sp]
#       th = th[0 ... idx] if ckth(th[idx], 2) && flg
        th = th[0 ... idx] if flg && (arf.! || ckth(th[idx], 2))
#       idx += 1        ##
      }
.
550,553c
#    th = []    ##
    thl = @@mh_thl
#    th = [pl_eg(pc, 'th0'), pl_eg(pc, 'th1')]
#    th = [pl_eg(pc, thl[0]), pl_eg(pc, thl[1])]
    th = pl_g(pc, *thl)

    idx = 0     ##
    Fiber.new { ##
#      while th[idx .. -1] = (thn = pl_eg(pc, 'th'))[idx .. -1] ##
      loop {
#       th = th[0 .. (mx = thn.hgt)]    ####
        mx = th.hgt
        th[idx] = s_id(th[idx], pc - 1) if mx >= idx
        if ckth(th[mx], 3)
#         self.pl_es(pc, ['th', th])
          th.each_index { |n| pl_es(pc, [thl[n], th[n]])}
#         idx = idx == mx ? 0 : idx + 1 ###
          flg = true    ##
        end
        @@Slp.slp 0
        Fiber.yield(flg && idx >= mx)        ##
.
547d
542c
        (loc = @@Loc).verb("#{pc.to_xeh}           #{a[0]} #{a[1].to_xeh}")
.
520,526d
509,517c
    while (0 == 1 & md) == a[(md & bf) >> 1]
#       ((a[(md & bf) >> 1] ? 0 : 1) == 1 & md)
#       ([true, false][1 & md] == a[(md & bf) >> 1])
      md >>= bfsz
##    0 == lf ? return(false) : (md &= bf if 0 == lf >> bfsz) # ? mruby 70410200
      0 == md >> bfsz && break
    end # .!.!
.
480a
  def to_ia(n, lpl = self)
    [lpl = lpl[n], 0 != n && (return @@Plmg.(@@pl0i, lpl))][0]  # r     # c 
  end
.
475c
### aa.each_slice(2) { |k, v| send(k, v)}
.
453,455c
##     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
.
451c
#    ary.each_slice(2) { |k, v| # .shift(2) higokan mruby 70410200
    a.each_slice(2) { |k, v|    # .shift(2) higokan mruby 70410200
.
445,447c
#  def pl_es(n = 0, ary = nil, pl = nil)
  def pl_es(n = 0, a = nil, pl = nil)
### aa = []
#   pl[0 == n ? 1 : nil][idx(k)] = v
.
441c
# def pl_eg(n = 0, k)
  def pl_eg(n, k)
.
437d
435c
#    self[n] = 0 == n ? @@Plmg.(pl_g(-1), pl) : pl      # c 
.
431d
428c
#   pl
    a.empty? ? pl : a.map { |a| pl.afl(a, self)}
.
423,426d
419,420c
#   1 > n ? pl[idx0(n)] : pl
#   if 1 > n then pl = pl[idx0(n)] end
.
417c
#   self[n < 0 ? n + 1 : n][idx0(n)]
.
411,414c
# @@Idx0 = ->(n = 0, t = 1) {n - ((n <=> t) >> 1)}       # l 
  @@Pldv = ->(pl) {pl.map { |a| a[1]}}       # l 
# def pl_g(n = 0)
# def pl_g(n)
  def pl_g(n, *a)
.
393,397c
#    ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
    @@Loc.ploc(n) { |a| JSON::parse(ENV[@@idb + a[0]])}
.
383c
#    ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
    @@Loc.ploc(n, v) { |a| ENV[@@idb + a[0]] = JSON::generate(a[1])}
.
371,372c
#   @ary = Array.new(n)
    (0 .. n).each{ |i|
#     @ary = a
      self[i] = *a
    }
.
367c
    n = a.shift
#   @sz = a.size
    if 1 > n
#     @n = -n
#     return self[@n]
      return
    end
.
363c
# def initialize(a = nil)
  def initialize(*a)
.
360c
#    @@loc = Loc.new(@@fl)
    @@Loc = LOC
.
355,357d
341,347c
#    @@Imem = Imem.new
    @@Imem = IMEM
#    @@slp = Slp.new
    @@Slp = SLP

#    @@fl = '~~ritepl'
#    @@idb = @@fl
    @@idb = FL
#    @@fl += '.loc'
##   @@fl += '/loc'     # RISC OS ?
.
338a
  include M__H
.
331a
IMEM = Imem.new

.
301,319c
#  def s__sr0(      *a) a[@@I_s__s][                   a[@@I_s__r0]]     end
#  def s__r0(       *a)                                a[@@I_s__r0]      end
#  def s__sr01(     *a) a[@@I_s__s][                   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[@@I_s__i].send(a[@@I_s__mt])[a[@@I_s__r0]]     end
#  def s__i__r0(            *a) a[@@I_s__s].send(a[@@I_s__mt])[a[@@I_s__r0]]     end
#  def s__r1_eq_sr01(*a) a[@@I_s__s][                  a[@@I_s__r1]] ==
#                       a[@@I_s__s][                   a[@@I_s__r0] + 1] end

  @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3

  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 method_missing(*a) self.send(?s << a[0].to_s, *a[1 .. -1]) end
.
299c
#  @@I_s__s = 0; @@I_s__r0 = 1; @@I_s__r1 = 2; @@I_s__mt = 3
.
233,242c
    @@fml.(lb).assoc(sym)               # c 
#   (f = @@fml).(lb).assoc(sym)         # c 
.
209d
207a
LOC = Loc.new(FL << '.loc')
# LOC = Loc.new(FL << '/loc')     # RISC OS ?


.
194a
# }
.
185,186c
#      @@slp.slp 0
##     (s ||= @@slp).slp 0
#     (s ||= @@Slp).slp 0       # higokan ? mruby 70410200
      @@Slp.slp 0
.
175a
# @@ploc = Fiber.new { |a|
# @@ploc = Proc.new { |*a|
.
169c
#    @@slp = Slp.new
    @@Slp = SLP
.
165a

.
158a
SLP = Slp.new


.
142,143c
#   (r - 1).times {sleep 0}; GC.start; r.times {sleep t}        # g     # fuantei ( keisan gosa ) ?
    (r - 1).times {usleep 0}; r.times {usleep t}
.
140c
#   (r - 1).times {usleep 0}; GC.start; r.times {usleep t}      # g     # conf.gem :github => 'kimushu/mruby-sleep'  # msleep usleep
.
29a
module M__H
  @@mh_thl = (0 .. 1).map { |n| 'th' + n.to_xeh}
end

.
24,25c
FL = '~~ritepl'
.
2a
# Experimental : Merry HongmengOS memorial

.



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