Michelson: RENAME macro
This commit is contained in:
parent
22bdea00c2
commit
68dcae1a11
@ -487,6 +487,15 @@ let expand_if_right = function
|
|||||||
error (Unexpected_macro_annotation "IF_RIGHT")
|
error (Unexpected_macro_annotation "IF_RIGHT")
|
||||||
| _ -> ok @@ None
|
| _ -> ok @@ None
|
||||||
|
|
||||||
|
let expand_rename = function
|
||||||
|
| Prim (loc, "RENAME", [], annot) ->
|
||||||
|
ok @@ Some (Seq (loc, [
|
||||||
|
Prim (loc, "DUP", [], annot) ;
|
||||||
|
Prim (loc, "SWAP", [], []) ;
|
||||||
|
Prim (loc, "DROP", [], []) ;
|
||||||
|
]))
|
||||||
|
| _ -> ok @@ None
|
||||||
|
|
||||||
let expand original =
|
let expand original =
|
||||||
let rec try_expansions = function
|
let rec try_expansions = function
|
||||||
| [] -> ok @@ original
|
| [] -> ok @@ original
|
||||||
@ -505,7 +514,9 @@ let expand original =
|
|||||||
expand_compare ;
|
expand_compare ;
|
||||||
expand_asserts ;
|
expand_asserts ;
|
||||||
expand_if_some ;
|
expand_if_some ;
|
||||||
expand_if_right ]
|
expand_if_right ;
|
||||||
|
expand_rename ;
|
||||||
|
]
|
||||||
|
|
||||||
let expand_rec expr =
|
let expand_rec expr =
|
||||||
let rec error_map (expanded, errors) f = function
|
let rec error_map (expanded, errors) f = function
|
||||||
@ -842,6 +853,15 @@ let unexpand_if_right = function
|
|||||||
Some (Prim (loc, "IF_RIGHT", [ right ; left ], []))
|
Some (Prim (loc, "IF_RIGHT", [ right ; left ], []))
|
||||||
| _ -> None
|
| _ -> None
|
||||||
|
|
||||||
|
let unexpand_rename = function
|
||||||
|
| Seq (loc, [
|
||||||
|
Prim (_, "DUP", [], annot) ;
|
||||||
|
Prim (_, "SWAP", [], []) ;
|
||||||
|
Prim (_, "DROP", [], []) ;
|
||||||
|
]) ->
|
||||||
|
Some (Prim (loc, "RENAME", [], annot))
|
||||||
|
| _ -> None
|
||||||
|
|
||||||
let unexpand original =
|
let unexpand original =
|
||||||
let try_unexpansions unexpanders =
|
let try_unexpansions unexpanders =
|
||||||
match
|
match
|
||||||
@ -864,7 +884,8 @@ let unexpand original =
|
|||||||
unexpand_duuuuup ;
|
unexpand_duuuuup ;
|
||||||
unexpand_compare ;
|
unexpand_compare ;
|
||||||
unexpand_if_some ;
|
unexpand_if_some ;
|
||||||
unexpand_if_right ]
|
unexpand_if_right ;
|
||||||
|
unexpand_rename ]
|
||||||
|
|
||||||
let rec unexpand_rec expr =
|
let rec unexpand_rec expr =
|
||||||
match unexpand expr with
|
match unexpand expr with
|
||||||
|
Loading…
Reference in New Issue
Block a user