Skip to content

Instantly share code, notes, and snippets.

@EduardoRFS
Created December 10, 2020 03:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EduardoRFS/0cba79cdddfaa98b6e16a52b3aa5689e to your computer and use it in GitHub Desktop.
Save EduardoRFS/0cba79cdddfaa98b6e16a52b3aa5689e to your computer and use it in GitHub Desktop.
type 'a input =
| Input of 'a
open Tezos_protocol_environment_alpha.Environment
open Pervasives
open Tezos_raw_protocol_alpha.Script_typed_ir
open Tezos_raw_protocol_alpha.Alpha_context
module Script_ir_translator = Tezos_raw_protocol_alpha.Script_ir_translator
let tz_compiled_0 (Input (stack, v_0)) =
let stack = (v_0, stack) in
let stack = let (vi, (vo, rest)) = stack in (vo, (vi, rest)) in
let stack = let ((a, _), rest) = stack in (a, rest) in
let stack = let (a, (b, rest)) = stack in ((a, b), rest) in
let (v, rest) = stack in ((L v), rest)
let tz_compiled_1 (Input (stack, (v_1, v_2, v_3))) =
let stack = let (v, rest) = stack in (v, (v, rest)) in
let stack = let ((a, _), rest) = stack in (a, rest) in
let stack = let (vi, (vo, rest)) = stack in (vo, (vi, rest)) in
let stack = let ((_, b), rest) = stack in (b, rest) in
let stack = (v_1, stack) in
let stack = let (a0, (a1, (a2, rest))) = stack in (a2, (a0, (a1, rest))) in
let stack = let (v, rest) = stack in (v, (v, rest)) in
let stack =
let (i0, (i1, (i2, (i3, rest)))) = stack in (i1, (i2, (i3, (i0, rest)))) in
let stack =
let (a, (b, stack)) = stack in
((Script_int.of_int @@ (Script_ir_translator.compare_comparable v_2 a b)),
stack) in
let stack =
let (cmpres, rest) = stack in
let cmpres = Script_int.compare cmpres Script_int.zero in
let cmpres = let open Compare.Int in cmpres > 0 in (cmpres, rest) in
let stack =
let (value, stack) = stack in
if value
then
let stack = let (vi, (vo, rest)) = stack in (vo, (vi, rest)) in
let stack = let (v, rest) = stack in (v, (v, rest)) in
let stack =
let (i0, (i1, (i2, rest))) = stack in (i1, (i2, (i0, rest))) in
let stack = let (vi, (vo, rest)) = stack in (vo, (vi, rest)) in
let stack = let (x, (y, rest)) = stack in ((Script_int.mul x y), rest) in
let stack = (v_3, stack) in
let stack =
let (a0, (a1, (a2, rest))) = stack in (a2, (a0, (a1, rest))) in
let stack = let (x, (y, rest)) = stack in ((Script_int.sub x y), rest) in
let stack = let (a, (b, rest)) = stack in ((a, b), rest) in
let stack = let (v, rest) = stack in ((L v), rest) in
let stack = stack in stack
else
(let stack = let (vi, (vo, rest)) = stack in (vo, (vi, rest)) in
let stack = let (_, rest) = stack in rest in
let stack = let (v, rest) = stack in ((R v), rest) in
let stack = stack in stack) in
let stack = stack in stack
let tz_compiled_2 (Input (stack, ())) =
let stack = ({ elements = []; length = 0 }, stack) in
let stack = let (a, (b, rest)) = stack in ((a, b), rest) in
let stack = stack in stack
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment