// this script was compiled with wurst 1.8.1.0-jenkins-Wurst-1366 globals string array test_s integer test_s_max=0 integer array FoldClosure_nextFree integer FoldClosure_firstFree=0 integer FoldClosure_maxIndex=0 integer array FoldClosure_typeId integer array LinkedList_nextFree integer LinkedList_firstFree=0 integer LinkedList_maxIndex=0 integer array LinkedList_typeId integer array LinkedList_x endglobals native testSuccess takes nothing returns nothing function initGlobals takes nothing returns nothing endfunction function error takes string msg returns nothing call BJDebugMsg(msg + "\n" + "") endfunction function run_wrapper takes integer this, integer t, integer q returns integer local string b = test_s[q] + I2S(t) + "," set test_s_max = test_s_max + 1 set test_s[test_s_max] = b return test_s_max endfunction function dispatch_LinkedList_test_LinkedList_foldl takes integer this, integer startValue, integer predicate returns integer local integer t if LinkedList_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling LinkedList.foldl") else call error("Called LinkedList.foldl on invalid object.") endif endif set t = LinkedList_x[this] if FoldClosure_typeId[predicate] == 0 then if predicate == 0 then call error("Nullpointer exception when calling FoldClosure.run") else call error("Called FoldClosure.run on invalid object.") endif endif set startValue = run_wrapper(predicate, t, startValue) return startValue endfunction function LinkedList_toString takes integer this returns string local integer temp local integer this_1 set test_s_max = test_s_max + 1 set test_s[test_s_max] = "[" set temp = test_s_max if FoldClosure_firstFree == 0 then if FoldClosure_maxIndex < 32768 then set FoldClosure_maxIndex = FoldClosure_maxIndex + 1 set this_1 = FoldClosure_maxIndex set FoldClosure_typeId[this_1] = 2 else call error("Out of memory: Could not create FoldClosure_foldl_LinkedList_test.") set this_1 = 0 endif else set FoldClosure_firstFree = FoldClosure_firstFree - 1 set this_1 = FoldClosure_nextFree[FoldClosure_firstFree] set FoldClosure_typeId[this_1] = 2 endif return test_s[dispatch_LinkedList_test_LinkedList_foldl(this, temp, this_1)] + "]" endfunction function new_LinkedList takes nothing returns integer local integer this if LinkedList_firstFree == 0 then if LinkedList_maxIndex < 32768 then set LinkedList_maxIndex = LinkedList_maxIndex + 1 set this = LinkedList_maxIndex set LinkedList_typeId[this] = 3 else call error("Out of memory: Could not create LinkedList.") set this = 0 endif else set LinkedList_firstFree = LinkedList_firstFree - 1 set this = LinkedList_nextFree[LinkedList_firstFree] set LinkedList_typeId[this] = 3 endif return this endfunction function init_test takes nothing returns nothing local integer x set test_s_max = -1 set x = new_LinkedList() set LinkedList_x[x] = 5 if LinkedList_typeId[x] == 0 then if x == 0 then call error("Nullpointer exception when calling LinkedList.toString") else call error("Called LinkedList.toString on invalid object.") endif endif if LinkedList_toString(x) == "[5,]" then call testSuccess() endif endfunction function main takes nothing returns nothing call initGlobals() call init_test() endfunction function config takes nothing returns nothing endfunction