From b6019eb81bd90ac571ec9365a8d727a6957d33a7 Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Tue, 7 May 2019 11:16:05 +0200 Subject: [PATCH 1/2] Fix object parsing --- src/aeb_fate_asm.erl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/aeb_fate_asm.erl b/src/aeb_fate_asm.erl index c584410..96c459e 100644 --- a/src/aeb_fate_asm.erl +++ b/src/aeb_fate_asm.erl @@ -906,15 +906,15 @@ parse_value([{start_variant,_line}|_] = Tokens) -> {Variant, Rest}; parse_value([{string,_line, String} | Rest]) -> {aeb_fate_data:make_string(String), Rest}; -parse_value([{address,_line, {address, Address}} | Rest]) -> +parse_value([{object,_line, {address, Address}} | Rest]) -> {aeb_fate_data:make_address(Address), Rest}; -parse_value([{address,_line, {contract, Address}} | Rest]) -> +parse_value([{object,_line, {contract, Address}} | Rest]) -> {aeb_fate_data:make_contract(Address), Rest}; -parse_value([{address,_line, {oracle, Address}} | Rest]) -> +parse_value([{object,_line, {oracle, Address}} | Rest]) -> {aeb_fate_data:make_oracle(Address), Rest}; -parse_value([{address,_line, {name, Address}} | Rest]) -> +parse_value([{object,_line, {name, Address}} | Rest]) -> {aeb_fate_data:make_name(Address), Rest}; -parse_value([{address,_line, {channel, Address}} | Rest]) -> +parse_value([{object,_line, {channel, Address}} | Rest]) -> {aeb_fate_data:make_channel(Address), Rest}; parse_value([{hash,_line, Hash} | Rest]) -> {aeb_fate_data:make_hash(Hash), Rest}; From 3ed0fcbe05911a0bc7330c4963c21b44454f83ac Mon Sep 17 00:00:00 2001 From: Tobias Lindahl Date: Tue, 7 May 2019 11:28:54 +0200 Subject: [PATCH 2/2] Add test for parsing immediate objects --- test/asm_code/immediates.fate | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/test/asm_code/immediates.fate b/test/asm_code/immediates.fate index 267297c..558e1b6 100644 --- a/test/asm_code/immediates.fate +++ b/test/asm_code/immediates.fate @@ -68,6 +68,18 @@ FUNCTION tuple() : {tuple, [integer, boolean, string, {tuple, [integer, integer] FUNCTION address() : address RETURNR @ak_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv +FUNCTION oracle() : oracle + RETURNR @ok_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + +FUNCTION contract() : contract + RETURNR @ct_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + +FUNCTION name() : name + RETURNR @nm_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + +FUNCTION channel() : channel + RETURNR @ch_nv5B93FPzRHrGNmMdTDfGdd5xGZvep3MVSpJqzcQmMp59bBCv + ;; Option(integer) = NONE | SOME(integer) FUNCTION variant_none() : {variant, [{tuple, []}, {tuple, [integer]}]} RETURNR (| [0,1] | 0 | () |)