aboutsummaryrefslogtreecommitdiffstats
path: root/Godeps/_workspace/src/github.com/ethereum/serpent-go/serpent/examples/peano.se
blob: 979854444c039adbc3187b9353a720ee077855e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
macro padd($x, psuc($y)):
    psuc(padd($x, $y))
  
macro padd($x, z()):
    $x
  
macro dec(psuc($x)):
    dec($x) + 1
  
macro dec(z()):
    0
  
macro pmul($x, z()):
    z()
  
macro pmul($x, psuc($y)):
    padd(pmul($x, $y), $x)
  
macro pexp($x, z()):
    one()
  
macro pexp($x, psuc($y)):
    pmul($x, pexp($x, $y))
  
macro fac(z()):
    one()
  
macro fac(psuc($x)):
    pmul(psuc($x), fac($x))
  
macro one():
    psuc(z())
  
macro two():
    psuc(psuc(z()))
  
macro three():
    psuc(psuc(psuc(z())))
  
macro five():
    padd(three(), two())
  
return([dec(pmul(three(), pmul(three(), three()))), dec(fac(five()))], 2)