x
28
parameter (or (nat %divide) (or (unit %double) (nat %replace)));storage (pair (int %nbVotes) (nat %storedValue));code { DUP ; CDR ; SWAP ; CAR ; IF_LEFT { DUP ; PUSH nat 5 ; COMPARE ; LT ; IF {} { PUSH string "WrongCondition: params.divisor > 5" ; FAILWITH } ; SWAP ; DUP ; CAR ; SWAP ; CDR ; DIG 2 ; SWAP ; EDIV ; IF_NONE { PUSH int 26 ; FAILWITH } { CAR } ; SWAP ; PAIR } { IF_LEFT { DROP ; DUP ; CAR ; SWAP ; CDR ; PUSH nat 2 ; MUL ; SWAP ; PAIR } { SWAP ; DUP ; CDR ; SWAP ; CAR ; PUSH int 1 ; ADD ; PAIR ; CAR ; PAIR } } ; NIL operation ; PAIR }