Current section
Files
Jump to
Current section
Files
src/aeb_fate_pp.erl
%%%-------------------------------------------------------------------
%%% @copyright (C) 2019, Aeternity Anstalt
%%%
%%% === === N O T E : This file is generated do not edit. === ===
%%%
%%% Source is in aeb_fate_generate_ops.erl
%%% @doc
%%% Provide pretty printing functuions for Fate instructions.
%%% @end
%%%-------------------------------------------------------------------
-module(aeb_fate_pp).
-export([format_op/2]).
format_arg(li, {immediate, LI}) ->
aeb_fate_data:format(LI);
format_arg(_, {immediate, I}) ->
aeb_fate_data:format(I);
format_arg(a, {arg, N}) -> io_lib:format("arg~p", [N]);
format_arg(a, {var, N}) when N < 0 -> io_lib:format("store~p", [-N]);
format_arg(a, {var, N}) -> io_lib:format("var~p", [N]);
format_arg(a, {stack, 0}) -> "a".
lookup(Name, Symbols) ->
maps:get(Name, Symbols, io_lib:format("~p",[Name])).
format_op('RETURN', _) -> ["RETURN"];
format_op({'RETURNR', Arg0}, _) ->
["RETURNR ", format_arg(a, Arg0)];
format_op({'CALL', Arg0}, _) ->
["CALL ", format_arg(a, Arg0)];
format_op({'CALL_R', {immediate, Contract}, {immediate, Function}, ArgType, RetType, Value}, Symbols) ->
["CALL_R ", lookup(Contract, Symbols), ".", lookup(Function, Symbols), " ", format_arg(a, ArgType), " ", format_arg(a, RetType), " ", format_arg(a, Value)];
format_op({'CALL_R', Contract, {immediate, Function}, ArgType, RetType, Value}, Symbols) ->
["CALL_R ", format_arg(a, Contract), ".", lookup(Function, Symbols), " ", format_arg(a, ArgType), " ", format_arg(a, RetType), " ", format_arg(a, Value)];
format_op({'CALL_T', Arg0}, _) ->
["CALL_T ", format_arg(a, Arg0)];
format_op({'CALL_GR', {immediate, Contract}, {immediate, Function}, ArgType, RetType, Value, Gas}, Symbols) ->
["CALL_GR ", lookup(Contract, Symbols), ".", lookup(Function, Symbols), " ", format_arg(a, ArgType), " ", format_arg(a, RetType), " ", format_arg(a, Value), " ", format_arg(a, Gas)];
format_op({'CALL_GR', Contract, {immediate, Function}, ArgType, RetType, Value, Gas}, Symbols) ->
["CALL_GR ", format_arg(a, Contract), ".", lookup(Function, Symbols), " ", format_arg(a, ArgType), " ", format_arg(a, RetType), " ", format_arg(a, Value), " ", format_arg(a, Gas)];
format_op({'JUMP', Arg0}, _) ->
["JUMP ", format_arg(ii, Arg0)];
format_op({'JUMPIF', Arg0, Arg1}, _) ->
["JUMPIF ", format_arg(a, Arg0), " ", format_arg(ii, Arg1)];
format_op({'SWITCH_V2', Arg0, Arg1, Arg2}, _) ->
["SWITCH_V2 ", format_arg(a, Arg0), " ", format_arg(ii, Arg1)," ", format_arg(ii, Arg2)];
format_op({'SWITCH_V3', Arg0, Arg1, Arg2, Arg3}, _) ->
["SWITCH_V3 ", format_arg(a, Arg0), " ", format_arg(ii, Arg1)," ", format_arg(ii, Arg2)," ", format_arg(ii, Arg3)];
format_op({'SWITCH_VN', Arg0, Arg1}, _) ->
["SWITCH_VN ", format_arg(a, Arg0), " ", format_arg(li, Arg1)];
format_op({'CALL_VALUE', Arg0}, _) ->
["CALL_VALUE ", format_arg(a, Arg0)];
format_op({'PUSH', Arg0}, _) ->
["PUSH ", format_arg(a, Arg0)];
format_op('DUPA', _) -> ["DUPA"];
format_op({'DUP', Arg0}, _) ->
["DUP ", format_arg(a, Arg0)];
format_op({'POP', Arg0}, _) ->
["POP ", format_arg(a, Arg0)];
format_op('INCA', _) -> ["INCA"];
format_op({'INC', Arg0}, _) ->
["INC ", format_arg(a, Arg0)];
format_op('DECA', _) -> ["DECA"];
format_op({'DEC', Arg0}, _) ->
["DEC ", format_arg(a, Arg0)];
format_op({'ADD', Arg0, Arg1, Arg2}, _) ->
["ADD ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'SUB', Arg0, Arg1, Arg2}, _) ->
["SUB ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'MUL', Arg0, Arg1, Arg2}, _) ->
["MUL ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'DIV', Arg0, Arg1, Arg2}, _) ->
["DIV ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'MOD', Arg0, Arg1, Arg2}, _) ->
["MOD ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'POW', Arg0, Arg1, Arg2}, _) ->
["POW ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'STORE', Arg0, Arg1}, _) ->
["STORE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'SHA3', Arg0, Arg1}, _) ->
["SHA3 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'SHA256', Arg0, Arg1}, _) ->
["SHA256 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BLAKE2B', Arg0, Arg1}, _) ->
["BLAKE2B ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'LT', Arg0, Arg1, Arg2}, _) ->
["LT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'GT', Arg0, Arg1, Arg2}, _) ->
["GT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'EQ', Arg0, Arg1, Arg2}, _) ->
["EQ ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'ELT', Arg0, Arg1, Arg2}, _) ->
["ELT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'EGT', Arg0, Arg1, Arg2}, _) ->
["EGT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'NEQ', Arg0, Arg1, Arg2}, _) ->
["NEQ ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'AND', Arg0, Arg1, Arg2}, _) ->
["AND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'OR', Arg0, Arg1, Arg2}, _) ->
["OR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'NOT', Arg0, Arg1}, _) ->
["NOT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'TUPLE', Arg0, Arg1}, _) ->
["TUPLE ", format_arg(a, Arg0), " ", format_arg(ii, Arg1)];
format_op({'ELEMENT', Arg0, Arg1, Arg2}, _) ->
["ELEMENT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'SETELEMENT', Arg0, Arg1, Arg2, Arg3}, _) ->
["SETELEMENT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'MAP_EMPTY', Arg0}, _) ->
["MAP_EMPTY ", format_arg(a, Arg0)];
format_op({'MAP_LOOKUP', Arg0, Arg1, Arg2}, _) ->
["MAP_LOOKUP ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'MAP_LOOKUPD', Arg0, Arg1, Arg2, Arg3}, _) ->
["MAP_LOOKUPD ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'MAP_UPDATE', Arg0, Arg1, Arg2, Arg3}, _) ->
["MAP_UPDATE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'MAP_DELETE', Arg0, Arg1, Arg2}, _) ->
["MAP_DELETE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'MAP_MEMBER', Arg0, Arg1, Arg2}, _) ->
["MAP_MEMBER ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'MAP_FROM_LIST', Arg0, Arg1}, _) ->
["MAP_FROM_LIST ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'MAP_SIZE', Arg0, Arg1}, _) ->
["MAP_SIZE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'MAP_TO_LIST', Arg0, Arg1}, _) ->
["MAP_TO_LIST ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'IS_NIL', Arg0, Arg1}, _) ->
["IS_NIL ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'CONS', Arg0, Arg1, Arg2}, _) ->
["CONS ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'HD', Arg0, Arg1}, _) ->
["HD ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'TL', Arg0, Arg1}, _) ->
["TL ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'LENGTH', Arg0, Arg1}, _) ->
["LENGTH ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'NIL', Arg0}, _) ->
["NIL ", format_arg(a, Arg0)];
format_op({'APPEND', Arg0, Arg1, Arg2}, _) ->
["APPEND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'STR_JOIN', Arg0, Arg1, Arg2}, _) ->
["STR_JOIN ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'INT_TO_STR', Arg0, Arg1}, _) ->
["INT_TO_STR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'ADDR_TO_STR', Arg0, Arg1}, _) ->
["ADDR_TO_STR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'STR_REVERSE', Arg0, Arg1}, _) ->
["STR_REVERSE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'STR_LENGTH', Arg0, Arg1}, _) ->
["STR_LENGTH ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BYTES_TO_INT', Arg0, Arg1}, _) ->
["BYTES_TO_INT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BYTES_TO_STR', Arg0, Arg1}, _) ->
["BYTES_TO_STR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BYTES_CONCAT', Arg0, Arg1, Arg2}, _) ->
["BYTES_CONCAT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BYTES_SPLIT', Arg0, Arg1, Arg2}, _) ->
["BYTES_SPLIT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'INT_TO_ADDR', Arg0, Arg1}, _) ->
["INT_TO_ADDR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'VARIANT', Arg0, Arg1, Arg2, Arg3}, _) ->
["VARIANT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'VARIANT_TEST', Arg0, Arg1, Arg2}, _) ->
["VARIANT_TEST ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'VARIANT_ELEMENT', Arg0, Arg1, Arg2}, _) ->
["VARIANT_ELEMENT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op('BITS_NONEA', _) -> ["BITS_NONEA"];
format_op({'BITS_NONE', Arg0}, _) ->
["BITS_NONE ", format_arg(a, Arg0)];
format_op('BITS_ALLA', _) -> ["BITS_ALLA"];
format_op({'BITS_ALL', Arg0}, _) ->
["BITS_ALL ", format_arg(a, Arg0)];
format_op({'BITS_ALL_N', Arg0, Arg1}, _) ->
["BITS_ALL_N ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BITS_SET', Arg0, Arg1, Arg2}, _) ->
["BITS_SET ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BITS_CLEAR', Arg0, Arg1, Arg2}, _) ->
["BITS_CLEAR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BITS_TEST', Arg0, Arg1, Arg2}, _) ->
["BITS_TEST ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BITS_SUM', Arg0, Arg1}, _) ->
["BITS_SUM ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BITS_OR', Arg0, Arg1, Arg2}, _) ->
["BITS_OR ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BITS_AND', Arg0, Arg1, Arg2}, _) ->
["BITS_AND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BITS_DIFF', Arg0, Arg1, Arg2}, _) ->
["BITS_DIFF ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BALANCE', Arg0}, _) ->
["BALANCE ", format_arg(a, Arg0)];
format_op({'ORIGIN', Arg0}, _) ->
["ORIGIN ", format_arg(a, Arg0)];
format_op({'CALLER', Arg0}, _) ->
["CALLER ", format_arg(a, Arg0)];
format_op({'BLOCKHASH', Arg0, Arg1}, _) ->
["BLOCKHASH ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'BENEFICIARY', Arg0}, _) ->
["BENEFICIARY ", format_arg(a, Arg0)];
format_op({'TIMESTAMP', Arg0}, _) ->
["TIMESTAMP ", format_arg(a, Arg0)];
format_op({'GENERATION', Arg0}, _) ->
["GENERATION ", format_arg(a, Arg0)];
format_op({'MICROBLOCK', Arg0}, _) ->
["MICROBLOCK ", format_arg(a, Arg0)];
format_op({'DIFFICULTY', Arg0}, _) ->
["DIFFICULTY ", format_arg(a, Arg0)];
format_op({'GASLIMIT', Arg0}, _) ->
["GASLIMIT ", format_arg(a, Arg0)];
format_op({'GAS', Arg0}, _) ->
["GAS ", format_arg(a, Arg0)];
format_op({'ADDRESS', Arg0}, _) ->
["ADDRESS ", format_arg(a, Arg0)];
format_op({'GASPRICE', Arg0}, _) ->
["GASPRICE ", format_arg(a, Arg0)];
format_op({'LOG0', Arg0}, _) ->
["LOG0 ", format_arg(a, Arg0)];
format_op({'LOG1', Arg0, Arg1}, _) ->
["LOG1 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'LOG2', Arg0, Arg1, Arg2}, _) ->
["LOG2 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'LOG3', Arg0, Arg1, Arg2, Arg3}, _) ->
["LOG3 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'LOG4', Arg0, Arg1, Arg2, Arg3, Arg4}, _) ->
["LOG4 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)];
format_op({'SPEND', Arg0, Arg1}, _) ->
["SPEND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'ORACLE_REGISTER', Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6}, _) ->
["ORACLE_REGISTER ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)," ", format_arg(a, Arg5)," ", format_arg(a, Arg6)];
format_op({'ORACLE_QUERY', Arg0, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7}, _) ->
["ORACLE_QUERY ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)," ", format_arg(a, Arg5)," ", format_arg(a, Arg6)," ", format_arg(a, Arg7)];
format_op({'ORACLE_RESPOND', Arg0, Arg1, Arg2, Arg3, Arg4, Arg5}, _) ->
["ORACLE_RESPOND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)," ", format_arg(a, Arg5)];
format_op({'ORACLE_EXTEND', Arg0, Arg1, Arg2}, _) ->
["ORACLE_EXTEND ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'ORACLE_GET_ANSWER', Arg0, Arg1, Arg2, Arg3, Arg4}, _) ->
["ORACLE_GET_ANSWER ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)];
format_op({'ORACLE_GET_QUESTION', Arg0, Arg1, Arg2, Arg3, Arg4}, _) ->
["ORACLE_GET_QUESTION ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)];
format_op({'ORACLE_QUERY_FEE', Arg0, Arg1}, _) ->
["ORACLE_QUERY_FEE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'AENS_RESOLVE', Arg0, Arg1, Arg2, Arg3}, _) ->
["AENS_RESOLVE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'AENS_PRECLAIM', Arg0, Arg1, Arg2}, _) ->
["AENS_PRECLAIM ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'AENS_CLAIM', Arg0, Arg1, Arg2, Arg3, Arg4}, _) ->
["AENS_CLAIM ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)];
format_op('AENS_UPDATE', _) -> ["AENS_UPDATE"];
format_op({'AENS_TRANSFER', Arg0, Arg1, Arg2, Arg3}, _) ->
["AENS_TRANSFER ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'AENS_REVOKE', Arg0, Arg1, Arg2}, _) ->
["AENS_REVOKE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op({'BALANCE_OTHER', Arg0, Arg1}, _) ->
["BALANCE_OTHER ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'VERIFY_SIG', Arg0, Arg1, Arg2, Arg3}, _) ->
["VERIFY_SIG ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'VERIFY_SIG_SECP256K1', Arg0, Arg1, Arg2, Arg3}, _) ->
["VERIFY_SIG_SECP256K1 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'CONTRACT_TO_ADDRESS', Arg0, Arg1}, _) ->
["CONTRACT_TO_ADDRESS ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'AUTH_TX_HASH', Arg0}, _) ->
["AUTH_TX_HASH ", format_arg(a, Arg0)];
format_op({'ORACLE_CHECK', Arg0, Arg1, Arg2, Arg3}, _) ->
["ORACLE_CHECK ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'ORACLE_CHECK_QUERY', Arg0, Arg1, Arg2, Arg3, Arg4}, _) ->
["ORACLE_CHECK_QUERY ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)," ", format_arg(a, Arg4)];
format_op({'IS_ORACLE', Arg0, Arg1}, _) ->
["IS_ORACLE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'IS_CONTRACT', Arg0, Arg1}, _) ->
["IS_CONTRACT ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'IS_PAYABLE', Arg0, Arg1}, _) ->
["IS_PAYABLE ", format_arg(a, Arg0), " ", format_arg(a, Arg1)];
format_op({'CREATOR', Arg0}, _) ->
["CREATOR ", format_arg(a, Arg0)];
format_op({'ECVERIFY_SECP256K1', Arg0, Arg1, Arg2, Arg3}, _) ->
["ECVERIFY_SECP256K1 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)," ", format_arg(a, Arg3)];
format_op({'ECRECOVER_SECP256K1', Arg0, Arg1, Arg2}, _) ->
["ECRECOVER_SECP256K1 ", format_arg(a, Arg0), " ", format_arg(a, Arg1)," ", format_arg(a, Arg2)];
format_op('DEACTIVATE', _) -> ["DEACTIVATE"];
format_op({'ABORT', Arg0}, _) ->
["ABORT ", format_arg(a, Arg0)];
format_op({'EXIT', Arg0}, _) ->
["EXIT ", format_arg(a, Arg0)];
format_op('NOP', _) -> ["NOP"];
format_op(Op, _Symbols) -> io_lib:format(";; Bad Op: ~w\n", [Op]).