1691,1692d
1650a
#      if 0 == ise[i_i_d].size || (1 == ise[i_i_d].size && 0 > ise[i_i_d][-1][0])
.
1591,1594c
##    c, sym = @@opf.(irep, pcl)                # c 
#      rg.push('cop', c)
#      rg.push('sym', sym)
#      stack.c = c                              # fuantei ?
      rg.push('cop', stack.c = (sym = @@opf.(irep, pcl)).shift)         # c 
      rg.push('sym', sym = sym[0])
.
1478c
    i_i_d = 0; i_i_s = 1
.
1450d
1396a

.
1340,1341c
#       pl.pl_es(pc1, opg.(thi) +                       # c 
#               [:ctr, [sp]] + [[:_ctr_s, pc1], []][thi <=> 0])
#       pl.pl_es(pc1, opg.(thi) + opg0.call)            # c 2 
        pl.pl_es(pc1, opg.(thi) + opg0.(thi))           # c 2 
.
1336a
#    opg0 = -> {['ctr', [sp]] + [[:ctr_s, pc1], []][thi <=> 0]}                # l 
.
1334c
#      lopa
      lopa + opg0.(oi)          # c 
.
1326,1328c
#         when 'th' then fv = fvl[-1].(oi); fvl = fvl[0 .. fvl.size - 2]        # c 
#         when 'th' then fv = fvl[-1].(oi); fvl = fvl[0 .. fvl.hgt - 1]         # c 

#         when 'th' then fv = fvl.(oi)                          # c 
          when 'th' then fv = fvl[oi <=> 0].(oi)          # c 

.
1315,1320c
##  fvl = [
##      ->(oi) {((oi <= ht = fv.hgt) && fv[oi] = imem.ta(fv[oi], cop)) ?          # l 
##              [thl[oi], verb.(fv[oi])] : []},                                                 # c 
##      ->(oi) {[thl[oi], verb.(imem.ta(fv[oi], cop)), thl[oi + 1], tb]} # .lazy     # l     # c 
##  ]
    fvl = [->(oi) {[thl[oi], verb.(imem.ta(fv[oi], cop)), thl[oi + 1], tb]}, # l     # c 
           ->(oi) {((oi <= ht = fv.hgt) && fv[oi] = imem.ta(fv[oi], cop)) ?       # l 
                        [thl[oi], verb.(fv[oi])] : []}] # .lazy                         # c 

#   k_sp = @pla.assoc('sp')[1]
    opg0 = ->(oi) {[:ctr, [sp]] + [[:_ctr_s, pc1], []][oi <=> 0]}      # l 

.
1307d
1301,1304d
1299c
    fml = [sym]<< fml             # p 
.
1278a
#   rg.to_s             # fuguai taisaku
.
1268,1270d
1264,1265d
1262d
1259c
#         f = c_l.plg(pc1) && c_l.rslt(pc)
          c_l.plg(pc1) && f = c_l.rslt(pc)
.
1250,1254d
1246c
#      c_l = Fls__l.new(loc, s, i, imem, @pl, sl)
      c_l = Fls__l.new(loc, s, i, imem, @Rou, @pl, sl)
.
1236d
1226,1228c
#    sz -= 2; sz = ((@@fls_m << sz) + @@fls_m >> sz - 1) + 1 >> 1
#    @@fls_mc = nil
#    sz
    sz -= 2
    [((@@fls_m << sz) + @@fls_m >> sz - 1) + 1 >> 1, @@fls_mc = nil][0]
.
1218d
1216c
#      @loc.vrb [3, pc, @sym, rs[1], rs[0]]
      @loc.vrb [3, pc, @sym, *rs[0 ... i].reverse]
.
1214d
1211,1212c
#      return if -1 == (rs = @rs)[i = @mh_thl.size]             # r 
      return if -1 == (rs = @rs)[i = @@mh_thl.size]             # r 
.
1203c
#      @f = (@ji_ngq = ji_ngq).all?
      @f = [ji_ngq.all? || (return false), @ji_ngq = ji_ngq][0]         # r 
.
1198d
1190,1195d
1187c
#      r[1] = r[0] if knid(pl[@i_sp][0], :Array) && lpl.ckth(r[1], 2)
      r[1] = r[0] if case pl[@i_sp][0] when Array then lpl.ckth(r[1], 2) end
.
1183,1184c
#      thl.each_with_index { |v, n|
      thl.each_with_index { |h, n|
#       r[n] = (pl[lpl.afl(v, ?i)] || @r[n])            # q     # fuguai taisaku
        r[n] = (pl[lpl.afl(h, ?i)] || @r[n])            # q     # fuguai taisaku
        v[n] = r[n][1]
.
1167c
#       ji_ngq.inject(0) { |ca, v| ca = v ? 0 : 1 | ca << 1}].call
#       (ji_ngq = @ji_ngq).inject(0) { |ca, v| ca = v ? 0 : 1 | ca << 1}
        ji_ngq.inject(0) { |ca, v| ca = v ? 0 : 1 | ca << 1}
      ].(ji_ngq[0] && @plr.size)                # c 
.
1162a
#      (ji_ngq = @ji_ngq)[0] && @sz = @plr.size
.
1160,1161c
#       @isr0 = [@mt ? @i : @s, @r0]
.
1157,1158c
#       @pr || (@pr, @sy = @imem.fml('st', @sym)[1 .. -1][0]
        @pr || (@pr, @sy = @imem.fml('st', @sym)
.
1151d
1148c
      ) # .move # ?     # conf.gem :github => 'miura1729/mruby-mmm'
.
1141c
#         -> {}
          ->(sz) {}
.
1139c
#         -> {       # ji_ngq[-1]
          ->(sz) {   # ji_ngq[-1]
.
1129,1137c
#           0 == @s.size ? nil : # Slp.new.slp(0) : ## @Slp.slp(0) :
            0 == s.size ? nil : # Slp.new.slp(0) : ## @Slp.slp(0) :
#             @sz.step(@sz + @ap -= @ap >> 2) { |n| @plr<< @lm.(@isr0, s[n])}       # p     # c 
              sz.step(sz + (ap = (ap += ap >> 1) >> 1)) { |n| @plr<< lm.(s[n])} # + (ap <=> 0)) # p     # c 
#               plr<< s.ow?(n) ? nil : lm.(isr0, s[n])            # p     # c 
.
1127c
#         -> {       # ji_ngq[0]
          ->(sz) {   # ji_ngq[0]
.
1122,1123c
#         -> {       # f
          ->(sz) {   # f
#           @r = @r1 <= @sz && @plr[@r1] || @lm.(@isr0, @r1) # c 
            @r = @r1 <= sz && @plr[@r1] || lm.(@r1)          # c 
.
1120c
#       @lm = ->(r1) {r1 && @imem.send(@pr, *@isr0, r1)}     # l 
#       lm = ->(r1) {r1 && imem.send(@pr, irep, s, @r0, r1, @mt)}            # l 
        lm = ->(r1) {r1 && rou.send(@pr, @mt ? irep : s, @r0, r1, @mt)}      # l 
.
1117c
#       @sz = 1
.
1114,1115c
#       @isr0, @pr, @sym, @mt, @r0, @r1 = nil; @r = []; @rs = [?-, ?-]          # q 2 
        @pr, @sym, @mt, @r0, @r1 = nil; @r = []; @rs = [?-, ?-]         # q 2 
        @sy = nil

.
1110c
#       i_sp = lpl.afl(@pla.assoc('sp')[1], ?i) ##      # q 
#       @s = s; @i = irep; @imem = imem; @lpl = lpl # ; @ap = ap
        @s = s; @imem = imem; @lpl = lpl
.
1106,1107c
#    def initialize(loc, s, irep, imem, lpl, ap)
    def initialize(loc, s, irep, imem, rou, lpl, ap)
.
1095c
                ['sym', [0]], ['ctr', []]]      # @pla = [['sp', 'ctr']]
.
1090,1093c

#    pl[0] = [[thl[0], [thini]], [thl[1], [thini]],
.
1046,1062d
1030a
    rmth = @@rmth
#   @pla = Array.new($pcmax)
#   $pltini.call()
    thini = [false, 0]
#    @pll = [thini, thini, [], []]
#    @pl = ENVary.new(rmth + 1, thini, thini, [], [])
##    @pl = ENVary.new(rmth + 1, *@pll)

#   @pl = ENVary.new(true)                                              # 410200plini
    plini(@@rmth, @pl = ENVary.new(rmth + 1, thini, thini, [], []))     # 310200plini ?

#    @rmt = []
#    @@nth.times {@rmt<< wkth}    # p 
    @rmt = Array.new(@@nth) {wkth}

.
867d
769,770c
#       (th[idx].nil? ||                # fuguai taisaku ?
#               ckth(th[idx], 2)) && th[idx] = pl_eg(pc, thl[idx])
.
766a

        (th[idx].! || ckth(th[idx], 2)) && ((th[idx] = pl_eg(pc, thl[idx])) ||  # fuguai taisaku ?
                (next ini.call))        # fuguai taisaku ?

.
762,763c
#         v && 0 != vl && loc.vrb([2, pc - 1, *v])
          v[0] && 0 != vl && loc.vrb([2, pc - 1, *v])
.
754,755c
            r = pl_es(pc, [thl[idx], [th[idx], nil]])
.
750d
747,748d
742,743c
#       if # th[idx] && # mx >= idx &&               # fuguai taisaku ?
#               ckth(th[idx], 1) then
        if ckth(th[idx], 1)
.
729,730c
#       v = nil
        v = []
.
726d
720,722d
713,717c
#   th = Array.new(thl.size) { |v| 0 == v ? pl_eg(pc, thl[v]) : tb}     # unwork ( thread )     # mruby-thread e139cfe 1211410200 sdottaka
.
710,711c
#    idx, thi, ji_ngq = nil             # idx = 0 ##
#    ini = -> {idx, thi = 0; ji_ngq = false}.call    # l     # fuguai taisaku ?
    idx, thi, ji_ngq = (ini = -> {[idx = 0, thi = 0, ji_ngq = false]}).call  # l     # fuguai taisaku ?      # idx = 0 ##
.
675c
#   ([] == a || ! knid(a, :Array)) && (return a)                        # t 
.
614,616c
#     i = self.afl(k, ?i)                               # q 
      k = self.afl(k, ?i)                               # q 
#     k = loop {self.afl(k, ?i) && break}               # q     # fuguai taisaku
#      pl[i] = knid(v, :Numeric) ? pl[i]<< v : v          # p 
      pl[k] = knid(v, :Numeric) ? pl[k]<< v : v           # p 
.
589,590c
#    0 == n ? (return pl.map { |a| a[1]}) : pl          # r 
    0 != n ? (return pl) : pl.map { |a| a[1]}           # r 
.
564,565c
#               ENV[@@idb + a[0]])
                ENV[@@Idx.lbl(a)])
.
561,562c
    @@Loc.plok(n) { |a| ### @ca =
#    @@Loc.plok(*@@Idx.idx(:Numeric, n)) { |a| ### @ca =
.
546,547c
#    @@Loc.plok(*@@Idx.idx(:Numeric, n, v)) { |a| ENV[@@idb + a[0]] =
    @@Loc.plok(n, v) { |a| ENV[@@Idx.lbl(a)] =
.
531,533c
#    (0 .. n).each{ |i|
#      self[i] = *a
#    }
    (0 .. n).each{ |i| self[i] = *a}
.
518c
#    @@Idx = Idx.new
    @@Idx = Idx.new(@@idb)
.
513,515c
      @@idb = nil

      def initialize(idb = FL.dup)      @@idb = idb     end

#      def idx(tp, *a)
      def idx(*a)
#       a[0] = a[0].to_xeh
#       a
        a[0].to_xeh
      end

      def lbl(a)
        @@idb + idx(*a)
.
478a

#  def fml_th_bt
#    @@fml_th_bt
##   @@fml[0].assoc(lb)
#  end
.
464,477c
#  def str__getarg(s)
  def getarg__(s)
#    ?_ == s.to_s[0] ? "getarg" << s : s                # q 
    ?_ == s.to_s[0] ? 'getarg' << s : s           # q 
  end

  def ta(l, cop) [l[0] || :_a, l[1] || cop][0 .. l[2] || 1] end

  def fml(lb, sym)
#    [sym, @@fml.assoc(sym)[1 .. -1].assoc(lb)[1 .. -1]]
#   [sym, @@fml.assoc(sym)[1 .. -1][@@fmli.index(lb)]]  # fukusayou ?
#   [sym, @@fml.assoc(sym)[@@fmli.index(lb) + 1]]       # fukusayou ?
#   [sym, @@fml.assoc(sym)[@@fmli.index(lb) + 1] + []]  # fukusayou ? kaihi : mruby 70410200
    @@fml.assoc(sym)[@@fmli.index(lb) + 1] + []         # fukusayou ? kaihi : mruby 70410200
.
456,462c
  def initialize
#   @fml = @@fml
    @fml_th_bt = @@fml_th_bt
  end
.
447,454c
  attr_accessor :fml_th_bt
#  attr_accessor :fml_th_bt, :fmli
.
444,445c
module M__Imem
  @@fml_th_bt = [['sym', true, 'th', true], ['sym', false, 'th', true]]
  @@fmli = ['st', 'th']
  @@fml = [
#    [:MOVE,    ['st', :sr0     ],      ['th', [:_b             ], []]],
#    [:LOADL,   ['st', :__pool  ],      ['th', [:_bx            ], []]],
#    [:LOADI,   ['st', :r0      ],      ['th', [:_sbx           ], []]],
#    [:LOADSYM, ['st', :__syms  ],      ['th', [:_bx            ], []]],
#    [:LOADSELF,        ['st', :sr0     ],      ['th', [:mk_opcode, 0   ], []]], # mk_opcode 0
#    [:LOADT,   ['st', :r0      ],      ['th', [true, '', 0     ], []]],
#    [:ADD,     ['st', :sr01,   :+],    ['th', []]],
#    [:ADDI,    ['st', :r0,     :+],    ['th', [:_c             ], []]],
#    [:SUB,     ['st', :sr01,   :-],    ['th', []]],
#    [:SUBI,    ['st', :r0,     :-],    ['th', [:_c             ], []]],
#    [:MUL,     ['st', :sr01,   :*],    ['th', []]],
#    [:DIV,     ['st', :sr01,   :/],    ['th', []]],
#    [:EQ,      ['st', :r1_eq_sr01],    ['th', []]]
    [:MOVE,     [:sr0           ],      [[:_b           ], []]],
    [:LOADL,    [:__pool        ],      [[:_bx          ], []]],
    [:LOADI,    [:r0            ],      [[:_sbx         ], []]],
    [:LOADSYM,  [:__syms        ],      [[:_bx          ], []]],
    [:LOADSELF, [:sr0           ],      [[:mk_opcode, 0 ], []]], # mk_opcode 0
    [:LOADT,    [:r0            ],      [[true, '', 0   ], []]],
    [:ADD,      [:sr01, :+      ],      [[]]],
    [:ADDI,     [:r0,   :+      ],      [[:_c           ], []]],
    [:SUB,      [:sr01, :-      ],      [[]]],
    [:SUBI,     [:r0,   :-      ],      [[:_c           ], []]],
    [:MUL,      [:sr01, :*      ],      [[]]],
    [:DIV,      [:sr01, :/      ],      [[]]],
    [:EQ,       [:r1_eq_sr01    ],      [[]]]
  ]
#      ['st', nil, 'th', ['bt', ['sym', true, 'th', true], ['sym', false, 'th', true]],
.
441,442d
382,385d
375,380c
ROU = Rou.new
.
373c
class Rou
  include RiteOpcodeUtil
  include M__Rou
end
.
371a
end
.
366,370c
#  def mmis(*a)
#    case a[3]                          # a[@@I_s__r1 + 1]
#    when Array
#      a3 = a[3]; a3.map{ |v| v.nil? ? v : send(*a[0 .. 2], v, a[4])}
#    else send(*a)
#    end
#  end

  def method_missing(*a)        # atode modosu
#   '__' != a[0][0 .. 1] ?              # higokan mruby 70410200
#    '__' != (a[0] = a[0].to_s)[0 .. 1] ?
#      self.mmis('s__' << a[0], *a[1 .. -1]) :
    if '__' != (a[0] = a[0].to_s)[0 .. 1]
      a[0] = 's__' << a[0]
      case a[3]                         # a[@@I_s__r1 + 1]
      when Array then a3 = a.pop; return a3.map{ |v| v.nil? ? v : send(*a, v)}  # r 
      else self.send(*a)
      end
    else
#      self.mmis(:s__send, a[1].to_s[2 .. -1], *a[2 .. -1])
      self.send(:s__send, a[1].to_s[2 .. -1], *a[2 .. -1])
    end
.
361,364c
  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__send(      *a) a[0].send(a[3])[a[1]]           end
  def s__r1_eq_sr01(*a) a[0][           a[1] + 1] ==
                        a[0][           a[2]]           end
#  def method_missing(*a) a[0].send(a[3])[a[1]]         end
.
359c
# 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
.
322,357c
module M__Rou
# @@I_s__stack = @@I_s__irep =
#       @@I_s__i = 0;   @@I_s__r0 = 1;  @@I_s__r1 = 2;  @@I_s__mt = 3
.
301,302c
##      "#{a[2]}   #{a[3].to_xeh}"
        "#{a[2].to_s <<
                (2 != a[0] && 7 < a[2].size ? ' ' : '        ')}#{a[3].to_xeh}"
.
299d
281c
###   @nm && retry
.
242,252d
145,149d
47c
  @@ts = 2      # = (@@rmth >> 1) + 1     # = $$ + 1              # = 68060
.
29c
NTH = 1                                                         # = 68060
.
19d
16,17d
7a
        :sr0,   :r0,    :sr01,  :r1_eq_sr01,
        :s__send,       :__pool,        :__syms,
.



-- 
YAMAGUTIseisei ( str_h__namae = { :sei => "山口" , :mei => "青星" } )
http://hello.to/seisei/ mailto:seisei@.68..net
祝 任天堂すいっち有機 EL モデル