Created
August 12, 2014 03:51
-
-
Save jsl/995ccbe928e50635a5d4 to your computer and use it in GitHub Desktop.
Ruby generated file from Idris -> Ruby backend
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# Example generated from https://github.com/edwinb/idris-demos/blob/master/RLE/rle-vect.idr. | |
class I_VM | |
attr_accessor :valstack, :valstack_top, :valstack_base, :ret, :callstack | |
def initialize() | |
@valstack = [] | |
@valstack_top = 0 | |
@valstack_base = 0 | |
@ret = nil | |
@callstack = [] | |
end | |
end | |
i_valstack = [] | |
i_callstack = [] | |
class I_CON | |
attr_accessor :tag, :args, :app, :ev | |
def initialize(tag,args,app,ev) | |
@tag = tag | |
@args = args | |
@app = app | |
@ev = ev | |
end | |
end | |
def i_SCHED(vm) | |
$i_vm = vm | |
$i_valstack = vm.valstack | |
$i_valstack_top = vm.valstack_top | |
$i_valstack_base = vm.valstack_base | |
$i_ret = vm.ret | |
$i_callstack = vm.callstack | |
end | |
def i_SLIDE(args) | |
for i in 0 ... args | |
$i_valstack[$i_valstack_base + i] = $i_valstack[$i_valstack_top + i] | |
end | |
end | |
def i_PROJECT(val,loc,arity) | |
for i in 0 ... arity | |
$i_valstack[$i_valstack_base + i + loc] = val.args[i] | |
end | |
end | |
def i_CALL(fun,args) | |
$i_callstack.push(args) | |
$i_callstack.push(fun) | |
end | |
def i_ffiWrap(fid,oldbase,myoldbase) | |
return Proc.new do |*arguments| | |
$i_callstack = [] | |
$i_valstack = [] | |
res = fid | |
arguments.each do |arg| | |
if res.instance_of?(I_CON) then | |
$i_valstack_top += 1 | |
$i_valstack[$i_valstack_top] = res | |
$i_valstack[$i_valstack_top + 1] = arg | |
i_SLIDE(2) | |
$i_valstack_top = $i_valstack_base + 2 | |
i_CALL($_idris__123_APPLY0_125_,[oldbase]) | |
while $i_callstack.length > 0 do | |
func = $i_callstack.pop() | |
args = $i_callstack.pop() | |
func.call(*args) | |
end | |
res = $i_ret | |
end | |
end | |
$i_callstack = $i_vm.callstack | |
$i_valstack = $i_vm.valstack | |
$i_ret | |
end | |
end | |
def i_charCode(s) | |
s.class == String ? s.ord : s[0] | |
end | |
def i_fromCharCode(c) | |
c.class == String ? c : c.chr | |
end | |
def i_systemInfo() | |
"Ruby #{RUBY_VERSION} [#{RUBY_PLATFORM}]" | |
end | |
$_idris_Prelude_46_Vect_46__43__43__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 7] = $i_ret | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 5],$i_valstack[$i_valstack_base + 7]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Prelude_46_Vect_46__43__43_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 5 | |
case $i_valstack[$i_valstack_base + 3].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 3],5,2) | |
$i_valstack[$i_valstack_base + 7] = nil | |
$i_valstack[$i_valstack_base + 8] = nil | |
$i_valstack[$i_valstack_base + 9] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 8] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 9] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 5 | |
i_CALL($_idris_Prelude_46_Vect_46__43__43__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46__43__43_,[myoldbase]) | |
when 0 | |
$i_ret = $i_valstack[$i_valstack_base + 4] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Force_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 3] = $i_ret | |
$i_ret = $i_valstack[$i_valstack_base + 3] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Prelude_46_Either_46_choose = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
case $i_valstack[$i_valstack_base].tag | |
when 0 | |
$i_ret = $i_CON_1 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
when 1 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Main_46_compress_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 4] | |
i_SLIDE(3) | |
$i_valstack_top = $i_valstack_base + 3 | |
i_CALL($_idris__123_Main_46_compress20_125_,[oldbase]) | |
end | |
$_idris_Main_46_compress = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 3 | |
$i_valstack[$i_valstack_base + 2] = nil | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 1] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Main_46_compress_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Main_46_rle,[myoldbase]) | |
end | |
$_idris_Main_46_compressString_5 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 1] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 2] | |
i_SLIDE(2) | |
$i_valstack_top = $i_valstack_base + 2 | |
i_CALL($_idris_Main_46_compress,[oldbase]) | |
end | |
$_idris_Main_46_compressString_4 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 3] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Main_46_compressString_5,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46_fromList,[myoldbase]) | |
end | |
$_idris_Main_46_compressString_3 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Main_46_compressString_4,[oldbase,myoldbase]) | |
i_CALL($_idris__123_Prelude_46_Strings_46_unpack27_125_,[myoldbase]) | |
end | |
$_idris_Main_46_compressString_2 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Main_46_compressString_3,[oldbase,myoldbase]) | |
i_CALL($_idris__123_Prelude_46_Strings_46_strM25_125_,[myoldbase]) | |
end | |
$_idris_Main_46_compressString_1 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Main_46_compressString_2,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Either_46_choose,[myoldbase]) | |
end | |
$_idris_Main_46_compressString_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Main_46_compressString_1,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Bool_46_not,[myoldbase]) | |
end | |
$_idris_Main_46_compressString = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 4 | |
$i_valstack[$i_valstack_base + 1] = nil | |
$i_valstack[$i_valstack_base + 2] = nil | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = "" | |
$i_valstack[$i_valstack_base + 4] = ($i_valstack[$i_valstack_base] == $i_valstack[$i_valstack_base + 4])?(1):(0) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Main_46_compressString_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Classes_46_intToBool,[myoldbase]) | |
end | |
$_idris_Prelude_46_Vect_46_fromList_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 4] | |
i_SLIDE(3) | |
$i_valstack_top = $i_valstack_base + 3 | |
i_CALL($_idris_Prelude_46_Vect_46_reverse,[oldbase]) | |
end | |
$_idris_Prelude_46_Vect_46_fromList = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 5 | |
$i_valstack[$i_valstack_base + 2] = nil | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = nil | |
$i_valstack[$i_valstack_base + 5] = nil | |
$i_valstack[$i_valstack_base + 6] = $i_CON_0 | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 5] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 1] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 4 | |
i_CALL($_idris_Prelude_46_Vect_46_fromList_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46_fromList_39_,[myoldbase]) | |
end | |
$_idris_Prelude_46_Vect_46_fromList_39_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 5 | |
case $i_valstack[$i_valstack_base + 3].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 3],4,2) | |
$i_valstack[$i_valstack_base + 6] = nil | |
$i_valstack[$i_valstack_base + 7] = nil | |
$i_valstack[$i_valstack_base + 8] = I_CON.new(1,[$i_valstack[$i_valstack_base + 4],$i_valstack[$i_valstack_base + 2]],nil,nil) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 8] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 5] | |
i_SLIDE(4) | |
$i_valstack_top = $i_valstack_base + 4 | |
i_CALL($_idris_Prelude_46_Vect_46_fromList_39_,[oldbase]) | |
when 0 | |
$i_ret = $i_valstack[$i_valstack_base + 2] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Prelude_46_Classes_46_intToBool = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
if $i_valstack[$i_valstack_base] == 0 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
else | |
$i_ret = $i_CON_1 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Main_46_main_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base] = $i_ret | |
$i_valstack[$i_valstack_base + 1] = "\n" | |
$i_valstack[$i_valstack_base] = $i_valstack[$i_valstack_base] + $i_valstack[$i_valstack_base + 1] | |
$i_ret = I_CON.new(65615,[$i_valstack[$i_valstack_base]],$_idris__123_APPLY0_125__65615,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Main_46_main = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 2 | |
$i_valstack[$i_valstack_base] = "foooobaaaarbaaazzzzz" | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Main_46_main_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Main_46_compressString,[myoldbase]) | |
end | |
$_idris_Prelude_46_Bool_46_not = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
case $i_valstack[$i_valstack_base].tag | |
when 0 | |
$i_ret = $i_CON_1 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
when 1 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Prelude_46_putStr = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
$i_ret = print($i_valstack[$i_valstack_base]) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_really_95_believe_95_me = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
$i_ret = $i_valstack[$i_valstack_base + 2] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Prelude_46_Vect_46_replicate_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 2],$i_valstack[$i_valstack_base + 4]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Prelude_46_Vect_46_replicate = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 2 | |
if $i_valstack[$i_valstack_base + 1] == 0 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
else | |
$i_valstack[$i_valstack_base + 3] = 1 | |
$i_valstack[$i_valstack_base + 3] = $i_valstack[$i_valstack_base + 1] - $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_base + 4] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 3 | |
i_CALL($_idris_Prelude_46_Vect_46_replicate_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46_replicate,[myoldbase]) | |
end | |
end | |
$_idris_Prelude_46_Vect_46_reverse = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 8 | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = nil | |
$i_valstack[$i_valstack_base + 5] = nil | |
$i_valstack[$i_valstack_base + 6] = nil | |
$i_valstack[$i_valstack_base + 7] = nil | |
$i_valstack[$i_valstack_base + 8] = nil | |
$i_valstack[$i_valstack_base + 9] = $i_CON_0 | |
$i_valstack[$i_valstack_base + 10] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 5] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 5] = $i_valstack[$i_valstack_base + 8] | |
$i_valstack[$i_valstack_top + 6] = $i_valstack[$i_valstack_base + 9] | |
$i_valstack[$i_valstack_top + 7] = $i_valstack[$i_valstack_base + 10] | |
$i_valstack[$i_valstack_top + 8] = $i_valstack[$i_valstack_base + 2] | |
i_SLIDE(9) | |
$i_valstack_top = $i_valstack_base + 9 | |
i_CALL($_idris_Prelude_46_Vect_46_reverse_58_reverse_39__58_0,[oldbase]) | |
end | |
$_idris_Prelude_46_Vect_46_reverse_39__95_lemma_95_1 = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
$i_ret = $i_valstack[$i_valstack_base + 7] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris_Main_46_rle_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 6] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 5] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 6] | |
i_SLIDE(4) | |
$i_valstack_top = $i_valstack_base + 4 | |
i_CALL($_idris__123_Main_46_rle17_125_,[oldbase]) | |
end | |
$_idris_Main_46_rle = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 5 | |
case $i_valstack[$i_valstack_base + 1].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 1],2,2) | |
$i_valstack[$i_valstack_base + 4] = nil | |
$i_valstack[$i_valstack_base + 5] = nil | |
$i_valstack[$i_valstack_base + 6] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Main_46_rle_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Main_46_rle,[myoldbase]) | |
when 0 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_run_95__95_IO = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
$i_valstack[$i_valstack_base + 1] = $i_CON_0 | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 1] | |
i_SLIDE(2) | |
$i_valstack_top = $i_valstack_base + 2 | |
i_CALL($_idris__123_APPLY0_125_,[oldbase]) | |
end | |
$_idris_Prelude_46_Strings_46_unpack_3 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 1] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 2] | |
i_SLIDE(2) | |
$i_valstack_top = $i_valstack_base + 2 | |
i_CALL($_idris__123_Prelude_46_Strings_46_unpack27_125_,[oldbase]) | |
end | |
$_idris_Prelude_46_Strings_46_unpack_2 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris_Prelude_46_Strings_46_unpack_3,[oldbase,myoldbase]) | |
i_CALL($_idris__123_Prelude_46_Strings_46_strM25_125_,[myoldbase]) | |
end | |
$_idris_Prelude_46_Strings_46_unpack_1 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Prelude_46_Strings_46_unpack_2,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Either_46_choose,[myoldbase]) | |
end | |
$_idris_Prelude_46_Strings_46_unpack_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Prelude_46_Strings_46_unpack_1,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Bool_46_not,[myoldbase]) | |
end | |
$_idris_Prelude_46_Strings_46_unpack = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 2 | |
$i_valstack[$i_valstack_base + 1] = nil | |
$i_valstack[$i_valstack_base + 2] = "" | |
$i_valstack[$i_valstack_base + 2] = ($i_valstack[$i_valstack_base] == $i_valstack[$i_valstack_base + 2])?(1):(0) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Prelude_46_Strings_46_unpack_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Classes_46_intToBool,[myoldbase]) | |
end | |
$_idris__123_APPLY0_125__65615 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_valstack[$i_valstack_base].args[0] | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 1] | |
i_SLIDE(2) | |
$i_valstack_top = $i_valstack_base + 2 | |
i_CALL($_idris_Prelude_46_putStr,[oldbase]) | |
end | |
$_idris__123_APPLY0_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
if $i_valstack[$i_valstack_base].instance_of?(I_CON) && $i_valstack[$i_valstack_base].app | |
$i_valstack[$i_valstack_base].app.call(oldbase,myoldbase) | |
else | |
$i_ret = nil | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris__123_EVAL0_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
if $i_valstack[$i_valstack_base].instance_of?(I_CON) && $i_valstack[$i_valstack_base].ev | |
$i_valstack[$i_valstack_base].ev.call(oldbase,myoldbase) | |
else | |
$i_ret = $i_valstack[$i_valstack_base] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris__123_runMain0_125__1 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
$i_valstack[$i_valstack_base] = $i_valstack[$i_valstack_top] | |
$i_valstack_top = $i_valstack_base + 1 | |
i_CALL($_idris__123_EVAL0_125_,[oldbase]) | |
end | |
$_idris__123_runMain0_125__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris__123_runMain0_125__1,[oldbase,myoldbase]) | |
i_CALL($_idris_run_95__95_IO,[myoldbase]) | |
end | |
$_idris__123_runMain0_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
i_CALL($_idris__123_runMain0_125__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Main_46_main,[myoldbase]) | |
end | |
$_idris__123_Main_46_rle17_125__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 7] = $i_ret | |
$i_valstack[$i_valstack_base + 8] = nil | |
$i_valstack[$i_valstack_base + 9] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 1] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 8] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 5] | |
$i_valstack[$i_valstack_top + 5] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 6] = $i_valstack[$i_valstack_base + 9] | |
i_SLIDE(7) | |
$i_valstack_top = $i_valstack_base + 7 | |
i_CALL($_idris__123__123_Main_46_rle17_125_18_125_,[oldbase]) | |
end | |
$_idris__123_Main_46_rle17_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 6 | |
case $i_valstack[$i_valstack_base + 3].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 3],4,3) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 1] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 6] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris__123_Main_46_rle17_125__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Decidable_46_Equality_46__64_Decidable_46_Equality_46_DecEq_36_Char_58__33_decEq_58_0,[myoldbase]) | |
when 0 | |
$i_valstack[$i_valstack_base + 4] = $i_CON_0 | |
$i_valstack[$i_valstack_base + 5] = 0 | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 4],$i_valstack[$i_valstack_base + 5],$i_valstack[$i_valstack_base + 1]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris__123__123_Main_46_rle17_125_18_125__1 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 7] = $i_ret | |
$i_valstack[$i_valstack_base + 7] = I_CON.new(1,[$i_valstack[$i_valstack_base + 1],$i_valstack[$i_valstack_base + 7]],nil,nil) | |
$i_valstack[$i_valstack_base + 8] = 0 | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 7],$i_valstack[$i_valstack_base + 8],$i_valstack[$i_valstack_base]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris__123__123_Main_46_rle17_125_18_125__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 10] = $i_ret | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 8] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 9] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 10] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 5] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 5 | |
i_CALL($_idris__123__123_Main_46_rle17_125_18_125__1,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46__43__43_,[myoldbase]) | |
end | |
$_idris__123__123_Main_46_rle17_125_18_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 4 | |
case $i_valstack[$i_valstack_base + 2].tag | |
when 1 | |
$i_valstack[$i_valstack_base + 7] = nil | |
$i_valstack[$i_valstack_base + 8] = nil | |
$i_valstack[$i_valstack_base + 9] = nil | |
$i_valstack[$i_valstack_base + 10] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 10] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 4] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 1] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 3 | |
i_CALL($_idris__123__123_Main_46_rle17_125_18_125__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Vect_46_replicate,[myoldbase]) | |
when 0 | |
$i_valstack[$i_valstack_base + 7] = 1 | |
$i_valstack[$i_valstack_base + 7] = $i_valstack[$i_valstack_base + 4] + $i_valstack[$i_valstack_base + 7] | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 5],$i_valstack[$i_valstack_base + 7],$i_valstack[$i_valstack_base + 1]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris__123_Main_46_compress20_125__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 7] = $i_ret | |
$i_valstack[$i_valstack_base + 7] = $i_valstack[$i_valstack_base + 5].concat($i_valstack[$i_valstack_base + 7]) | |
$i_ret = $i_valstack[$i_valstack_base + 6] + $i_valstack[$i_valstack_base + 7] | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris__123_Main_46_compress20_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 5 | |
case $i_valstack[$i_valstack_base + 2].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 2],3,3) | |
$i_valstack[$i_valstack_base + 6] = 1 | |
$i_valstack[$i_valstack_base + 6] = $i_valstack[$i_valstack_base + 4] + $i_valstack[$i_valstack_base + 6] | |
$i_valstack[$i_valstack_base + 6] = $i_valstack[$i_valstack_base + 6].to_s() | |
$i_valstack[$i_valstack_base + 7] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 7] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 2 | |
i_CALL($_idris__123_Main_46_compress20_125__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Main_46_compress,[myoldbase]) | |
when 0 | |
$i_ret = "" | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris__123_Prelude_46_Strings_46_strM25_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 4 | |
case $i_valstack[$i_valstack_base + 1].tag | |
when 0 | |
$i_valstack[$i_valstack_base + 2] = nil | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = $i_valstack[$i_valstack_base][0] | |
$i_valstack[$i_valstack_base + 5] = $i_valstack[$i_valstack_base].slice(1,$i_valstack[$i_valstack_base].length - 1) | |
$i_valstack[$i_valstack_base + 4] = I_CON.new(1,[$i_valstack[$i_valstack_base + 4],$i_valstack[$i_valstack_base + 5]],nil,nil) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 4] | |
i_SLIDE(3) | |
$i_valstack_top = $i_valstack_base + 3 | |
i_CALL($_idris_really_95_believe_95_me,[oldbase]) | |
when 1 | |
$i_valstack[$i_valstack_base + 2] = nil | |
$i_valstack[$i_valstack_base + 3] = nil | |
$i_valstack[$i_valstack_base + 4] = $i_CON_0 | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 3] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 4] | |
i_SLIDE(3) | |
$i_valstack_top = $i_valstack_base + 3 | |
i_CALL($_idris_really_95_believe_95_me,[oldbase]) | |
end | |
end | |
$_idris__123_Prelude_46_Strings_46_unpack27_125__0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 4] = $i_ret | |
$i_ret = I_CON.new(1,[$i_valstack[$i_valstack_base + 2],$i_valstack[$i_valstack_base + 4]],nil,nil) | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
$_idris__123_Prelude_46_Strings_46_unpack27_125_ = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 3 | |
case $i_valstack[$i_valstack_base + 1].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 1],2,2) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 3] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris__123_Prelude_46_Strings_46_unpack27_125__0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Strings_46_unpack,[myoldbase]) | |
when 0 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Prelude_46_Vect_46_reverse_58_reverse_39__58_0 = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 10 | |
case $i_valstack[$i_valstack_base + 8].tag | |
when 1 | |
i_PROJECT($i_valstack[$i_valstack_base + 8],9,2) | |
$i_valstack[$i_valstack_base + 11] = nil | |
$i_valstack[$i_valstack_base + 12] = nil | |
$i_valstack[$i_valstack_base + 13] = nil | |
$i_valstack[$i_valstack_base + 14] = nil | |
$i_valstack[$i_valstack_base + 15] = nil | |
$i_valstack[$i_valstack_base + 16] = nil | |
$i_valstack[$i_valstack_base + 17] = I_CON.new(1,[$i_valstack[$i_valstack_base + 9],$i_valstack[$i_valstack_base + 6]],nil,nil) | |
$i_valstack[$i_valstack_base + 18] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 11] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 12] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 13] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 14] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 15] | |
$i_valstack[$i_valstack_top + 5] = $i_valstack[$i_valstack_base + 16] | |
$i_valstack[$i_valstack_top + 6] = $i_valstack[$i_valstack_base + 17] | |
$i_valstack[$i_valstack_top + 7] = $i_valstack[$i_valstack_base + 18] | |
$i_valstack[$i_valstack_top + 8] = $i_valstack[$i_valstack_base + 10] | |
i_SLIDE(9) | |
$i_valstack_top = $i_valstack_base + 9 | |
i_CALL($_idris_Prelude_46_Vect_46_reverse_58_reverse_39__58_0,[oldbase]) | |
when 0 | |
$i_valstack[$i_valstack_base + 9] = nil | |
$i_valstack[$i_valstack_base + 10] = nil | |
$i_valstack[$i_valstack_base + 11] = nil | |
$i_valstack[$i_valstack_base + 12] = nil | |
$i_valstack[$i_valstack_base + 13] = nil | |
$i_valstack[$i_valstack_base + 14] = nil | |
$i_valstack[$i_valstack_base + 15] = nil | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 9] | |
$i_valstack[$i_valstack_top + 1] = $i_valstack[$i_valstack_base + 10] | |
$i_valstack[$i_valstack_top + 2] = $i_valstack[$i_valstack_base + 11] | |
$i_valstack[$i_valstack_top + 3] = $i_valstack[$i_valstack_base + 12] | |
$i_valstack[$i_valstack_top + 4] = $i_valstack[$i_valstack_base + 13] | |
$i_valstack[$i_valstack_top + 5] = $i_valstack[$i_valstack_base + 14] | |
$i_valstack[$i_valstack_top + 6] = $i_valstack[$i_valstack_base + 15] | |
$i_valstack[$i_valstack_top + 7] = $i_valstack[$i_valstack_base + 6] | |
i_SLIDE(8) | |
$i_valstack_top = $i_valstack_base + 8 | |
i_CALL($_idris_Prelude_46_Vect_46_reverse_39__95_lemma_95_1,[oldbase]) | |
end | |
end | |
$_idris_Decidable_46_Equality_46__64_Decidable_46_Equality_46_DecEq_36_Char_58__33_decEq_58_0_0 = Proc.new do |oldbase,myoldbase| | |
$i_valstack[$i_valstack_base + 2] = $i_ret | |
case $i_valstack[$i_valstack_base + 2].tag | |
when 0 | |
$i_ret = $i_CON_1 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
when 1 | |
$i_ret = $i_CON_0 | |
$i_valstack_top = $i_valstack_base | |
$i_valstack_base = oldbase | |
end | |
end | |
$_idris_Decidable_46_Equality_46__64_Decidable_46_Equality_46_DecEq_36_Char_58__33_decEq_58_0 = Proc.new do |oldbase| | |
myoldbase = 0 | |
$i_valstack_top += 1 | |
$i_valstack[$i_valstack_base + 2] = ($i_valstack[$i_valstack_base] == $i_valstack[$i_valstack_base + 1])?(1):(0) | |
$i_valstack[$i_valstack_top] = $i_valstack[$i_valstack_base + 2] | |
myoldbase = $i_valstack_base | |
$i_valstack_base = $i_valstack_top | |
$i_valstack_top += 1 | |
i_CALL($_idris_Decidable_46_Equality_46__64_Decidable_46_Equality_46_DecEq_36_Char_58__33_decEq_58_0_0,[oldbase,myoldbase]) | |
i_CALL($_idris_Prelude_46_Classes_46_intToBool,[myoldbase]) | |
end | |
$i_CON_0 = I_CON.new(0,[],nil,nil) | |
$i_CON_1 = I_CON.new(1,[],nil,nil) | |
main = Proc.new do || | |
vm = I_VM.new() | |
i_SCHED(vm) | |
$_idris__123_runMain0_125_.call(0) | |
while $i_callstack.length > 0 | |
func = $i_callstack.pop() | |
args = $i_callstack.pop() | |
func.call(*args) | |
end | |
end | |
main.call() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment