/* TEMPO Version 1.191, 03/11/98, Copyright (c) IRISA/INRIA-Universite de Rennes */ /* call signature of entry point interpret: binding times of formals: sp D binding times of read non_locals: prg_size S, mem D, inst.val S, stack D, inst.opcode S */ struct inst { int opcode; int val; }; extern int mem[]; extern int stack[]; extern int printf(); extern int exit(); extern void _Ginterpret_1_0_0(int); extern void _Ginterpret_1_0_0/*0*/(int sp) /* binding times of formals: sp D binding times of written non_locals: mem D, stack D residual non-locals top: mem, stack eval non-locals top: inst.opcode, inst.val, prg_size evaluation time of body: D evaluation times of pairings: D */ { sp = sp + 1; stack[sp] = 1; { int spinterpret285; spinterpret285 = sp + 1; stack[spinterpret285] = 0; { int spinterpret286; spinterpret286 = spinterpret285; mem[stack[spinterpret286]] = stack[spinterpret286 - 1]; spinterpret286 = spinterpret286 - 2; { int spinterpret287; spinterpret287 = spinterpret286 + 1; stack[spinterpret287] = 1; { int spinterpret288; spinterpret288 = spinterpret287; stack[spinterpret288] = mem[stack[spinterpret288]]; { int spinterpret289; spinterpret289 = spinterpret288 + 1; stack[spinterpret289] = 0; { int spinterpret290; spinterpret290 = spinterpret289; stack[spinterpret290 - 1] = stack[spinterpret290] == stack[spinterpret290 - 1]; spinterpret290 = spinterpret290 - 1; { int spinterpret291; spinterpret291 = spinterpret290 + 1; stack[spinterpret291] = 24; { int spinterpret292; spinterpret292 = spinterpret291; if (stack[spinterpret292]) { spinterpret292 = spinterpret292 - 1; { int spinterpret293; spinterpret293 = spinterpret292; } } else { spinterpret292 = spinterpret292 - 1; { int spinterpret294; spinterpret294 = spinterpret292 + 1; stack[spinterpret294] = 0; { int spinterpret295; spinterpret295 = spinterpret294; stack[spinterpret295] = mem[stack[spinterpret295]]; { int spinterpret296; spinterpret296 = spinterpret295 + 1; stack[spinterpret296] = 1; { int spinterpret297; spinterpret297 = spinterpret296; stack[spinterpret297] = mem[stack[spinterpret297]]; { int spinterpret298; spinterpret298 = spinterpret297; stack[spinterpret298 - 1] = stack[spinterpret298] * stack[spinterpret298 - 1]; spinterpret298 = spinterpret298 - 1; { int spinterpret299; spinterpret299 = spinterpret298 + 1; stack[spinterpret299] = 0; { int spinterpret300; spinterpret300 = spinterpret299; mem[stack[spinterpret300]] = stack[spinterpret300 - 1]; spinterpret300 = spinterpret300 - 2; { int spinterpret301; spinterpret301 = spinterpret300 + 1; stack[spinterpret301] = 1; { int spinterpret302; spinterpret302 = spinterpret301; stack[spinterpret302] = mem[stack[spinterpret302]]; { int spinterpret303; spinterpret303 = spinterpret302 + 1; stack[spinterpret303] = 1; { int spinterpret304; spinterpret304 = spinterpret303; stack[spinterpret304 - 1] = stack[spinterpret304 - 1] - stack[spinterpret304]; spinterpret304 = spinterpret304 - 1; { int spinterpret305; spinterpret305 = spinterpret304 + 1; stack[spinterpret305] = 1; { int spinterpret306; spinterpret306 = spinterpret305; mem[stack[spinterpret306]] = stack[spinterpret306 - 1]; spinterpret306 = spinterpret306 - 2; { int spinterpret307; spinterpret307 = spinterpret306 + 1; stack[spinterpret307] = 3; { int spinterpret308; spinterpret308 = spinterpret307; { int spinterpret309; spinterpret309 = spinterpret308; } } } } } } } } } } } } } } } } } } } } } } } } } return; }