From e24c8cd21ba23f32bfd33dbff4cca55a66097f9d Mon Sep 17 00:00:00 2001 From: Dan Volkov Date: Thu, 29 Sep 2022 22:20:59 +0400 Subject: Add fift language (#2249) --- tests/examplefiles/fift/new-wallet-v3.fif | 44 +++ tests/examplefiles/fift/new-wallet-v3.fif.output | 435 +++++++++++++++++++++++ 2 files changed, 479 insertions(+) create mode 100644 tests/examplefiles/fift/new-wallet-v3.fif create mode 100644 tests/examplefiles/fift/new-wallet-v3.fif.output (limited to 'tests/examplefiles') diff --git a/tests/examplefiles/fift/new-wallet-v3.fif b/tests/examplefiles/fift/new-wallet-v3.fif new file mode 100644 index 00000000..af1f94d8 --- /dev/null +++ b/tests/examplefiles/fift/new-wallet-v3.fif @@ -0,0 +1,44 @@ +"TonUtil.fif" include +"Asm\".fif" include + +0x01 0xaC 0b0001 b{0101} x{eBac0c} B{eBaC0C} + +{ ."usage: " $0 type ." []" cr + ."Creates a new advanced wallet with unique 32-bit identifier in specified workchain, with private key saved to or loaded from .pk" cr + ."('new-wallet.pk' by default)" cr 1 halt +} : usage +$# 2- -2 and ' usage if + +3 :$1..n +$1 parse-workchain-id =: wc // set workchain id from command line argument +$2 parse-int =: subwallet-id +$3 "new-wallet" replace-if-null =: file-base + +."Creating new advanced v3 wallet in workchain " wc . cr +."with unique wallet id " subwallet-id . cr + +// Create new advanced wallet; code adapted from `auto/wallet3-code.fif` +"wallet-v3-code.fif" include +// >libref +// code + // data +null // no libraries + // create StateInit +dup ."StateInit: " +dup ."signing message: " +dup ."External message for initialization is " B dup Bx. cr +file-base +"-query.boc" tuck B>file +."(Saved wallet creating query to file " type .")" cr diff --git a/tests/examplefiles/fift/new-wallet-v3.fif.output b/tests/examplefiles/fift/new-wallet-v3.fif.output new file mode 100644 index 00000000..2d8f5f9b --- /dev/null +++ b/tests/examplefiles/fift/new-wallet-v3.fif.output @@ -0,0 +1,435 @@ +'"' Literal.String +'TonUtil.fif' Literal.String +'"' Literal.String +' ' Text.Whitespace +'include' Name +'\n' Text.Whitespace + +'"' Literal.String +'Asm' Literal.String +'\\"' Literal.String.Escape +'.fif' Literal.String +'"' Literal.String +' ' Text.Whitespace +'include' Name +'\n\n' Text.Whitespace + +'0x01' Literal.Number.Hex +' ' Text.Whitespace +'0xaC' Literal.Number.Hex +' ' Text.Whitespace +'0b0001' Literal.Number.Bin +' ' Text.Whitespace +'b{0101}' Literal +' ' Text.Whitespace +'x{eBac0c}' Literal +' ' Text.Whitespace +'B{eBaC0C}' Literal +'\n\n' Text.Whitespace + +'{' Name +' ' Text.Whitespace +'."' Literal.String +'usage: ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'$0' Name +' ' Text.Whitespace +'type' Name +' ' Text.Whitespace +'."' Literal.String +' []' Literal.String +'"' Literal.String +' ' Text.Whitespace +'cr' Name +'\n ' Text.Whitespace +'."' Literal.String +'Creates a new advanced wallet with unique 32-bit identifier in specified workchain, with private key saved to or loaded from .pk' Literal.String +'"' Literal.String +' ' Text.Whitespace +'cr' Name +'\n ' Text.Whitespace +'."' Literal.String +"('new-wallet.pk' by default)" Literal.String +'"' Literal.String +' ' Text.Whitespace +'cr' Name +' ' Text.Whitespace +'1' Literal.Number.Decimal +' ' Text.Whitespace +'halt' Name +'\n' Text.Whitespace + +'}' Name +' ' Text.Whitespace +':' Name +' ' Text.Whitespace +'usage' Name +'\n' Text.Whitespace + +'$#' Name +' ' Text.Whitespace +'2' Literal.Number.Decimal +'-' Name +' ' Text.Whitespace +'-2' Literal.Number.Decimal +' ' Text.Whitespace +'and' Name +' ' Text.Whitespace +"'" Name +' ' Text.Whitespace +'usage' Name +' ' Text.Whitespace +'if' Name +'\n\n' Text.Whitespace + +'3' Literal.Number.Decimal +' ' Text.Whitespace +':$1..n' Name +'\n' Text.Whitespace + +'$1' Name +' ' Text.Whitespace +'parse-workchain-id' Name +' ' Text.Whitespace +'=:' Name +' ' Text.Whitespace +'wc' Name +' ' Text.Whitespace +'// set workchain id from command line argument' Comment.Singleline +'\n' Text.Whitespace + +'$2' Name +' ' Text.Whitespace +'parse-int' Name +' ' Text.Whitespace +'=:' Name +' ' Text.Whitespace +'subwallet-id' Name +'\n' Text.Whitespace + +'$3' Name +' ' Text.Whitespace +'"' Literal.String +'new-wallet' Literal.String +'"' Literal.String +' ' Text.Whitespace +'replace-if-null' Name +' ' Text.Whitespace +'=:' Name +' ' Text.Whitespace +'file-base' Name +'\n\n' Text.Whitespace + +'."' Literal.String +'Creating new advanced v3 wallet in workchain ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'wc' Name +' ' Text.Whitespace +'.' Name +' ' Text.Whitespace +'cr' Name +'\n' Text.Whitespace + +'."' Literal.String +'with unique wallet id ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'subwallet-id' Name +' ' Text.Whitespace +'.' Name +' ' Text.Whitespace +'cr' Name +'\n\n' Text.Whitespace + +'// Create new advanced wallet; code adapted from `auto/wallet3-code.fif`' Comment.Singleline +'\n' Text.Whitespace + +'"' Literal.String +'wallet-v3-code.fif' Literal.String +'"' Literal.String +' ' Text.Whitespace +'include' Name +'\n' Text.Whitespace + +'// >libref' Comment.Singleline +'\n' Text.Whitespace + +'// code' Comment.Singleline +'\n' Text.Whitespace + +'' Name +' ' Text.Whitespace +'// data' Comment.Singleline +'\n' Text.Whitespace + +'null' Name +' ' Text.Whitespace +'// no libraries' Comment.Singleline +'\n' Text.Whitespace + +'' Name +' ' Text.Whitespace +'// create StateInit' Comment.Singleline +'\n' Text.Whitespace + +'dup' Name +' ' Text.Whitespace +'."' Literal.String +'StateInit: ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'' Name +'\n' Text.Whitespace + +'dup' Name +' ' Text.Whitespace +'."' Literal.String +'signing message: ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'' Name +'\n' Text.Whitespace + +'dup' Name +' ' Text.Whitespace +'."' Literal.String +'External message for initialization is ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'B' Name +' ' Text.Whitespace +'dup' Name +' ' Text.Whitespace +'Bx.' Name +' ' Text.Whitespace +'cr' Name +'\n' Text.Whitespace + +'file-base' Name +' ' Text.Whitespace +'+"' Literal.String +'-query.boc' Literal.String +'"' Literal.String +' ' Text.Whitespace +'tuck' Name +' ' Text.Whitespace +'B>file' Name +'\n' Text.Whitespace + +'."' Literal.String +'(Saved wallet creating query to file ' Literal.String +'"' Literal.String +' ' Text.Whitespace +'type' Name +' ' Text.Whitespace +'."' Literal.String +')' Literal.String +'"' Literal.String +' ' Text.Whitespace +'cr' Name +'\n' Text.Whitespace -- cgit v1.2.1