2 stratego comment * Sample code from Stratego XT Manual
6 stratego code InlineF :
7 stratego code |[ let f(xs) = e in e'[f(es)] ]| ->
8 stratego code |[ let f(xs) = e in e'[e[es/xs]] ]|
10 stratego code InlineV :
11 stratego code |[ let x = e in e'[x] ]| -> |[ let x = e in e'[e] ]|
14 stratego code |[ let x = e in e' ]| -> |[ e' ]|
15 stratego code where <not(in)> (x,e')
17 stratego code Extract(f,xs) :
18 stratego code |[ e ]| -> |[ let f(xs) = e in f(xs) ]|
21 stratego code |[ let x = e1 in let f(xs) = e2 in e3 ]| ->
22 stratego code |[ let f(xs) = e2 in let x = e1 in e3 ]|
23 stratego code where <not(in)> (x, <free-vars> e2)
25 stratego comment // better watch those apostrophes!