blob: a1235130d707683d5f004233a4cf023031499a8b (
plain)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
(.module:
[library
[lux "*"
[abstract
[monad {"+" [do]}]]
[control
["[0]" exception {"+" [exception:]}]]
[target
["_" python]]]]
["[0]" / "_"
[runtime {"+" [Phase]}]
["[1][0]" primitive]
["[1][0]" structure]
["[1][0]" reference]
["[1][0]" function]
["[1][0]" case]
["[1][0]" loop]
["/[1]" // "_"
["[1][0]" reference]
["/[1]" // "_"
["[1][0]" extension
[generation
[python
["[1]/[0]" common]]]]
["/[1]" // "_"
[analysis {"+" []}]
["[1][0]" synthesis]
["//[1]" /// "_"
["[1][0]" phase ("[1]#[0]" monad)]
[reference {"+" []}
[variable {"+" []}]]]]]]])
(exception: .public cannot_recur_as_an_expression)
(def: .public (expression archive synthesis)
Phase
(case synthesis
(^template [<tag> <generator>]
[(^ (<tag> value))
(//////phase#in (<generator> value))])
([////synthesis.bit /primitive.bit]
[////synthesis.i64 /primitive.i64]
[////synthesis.f64 /primitive.f64]
[////synthesis.text /primitive.text])
(^ (////synthesis.variant variantS))
(/structure.variant expression archive variantS)
(^ (////synthesis.tuple members))
(/structure.tuple expression archive members)
{////synthesis.#Reference value}
(//reference.reference /reference.system archive value)
(^ (////synthesis.branch/case case))
(/case.case ///extension/common.statement expression archive case)
(^ (////synthesis.branch/let let))
(/case.let expression archive let)
(^ (////synthesis.branch/if if))
(/case.if expression archive if)
(^ (////synthesis.branch/get get))
(/case.get expression archive get)
(^ (////synthesis.loop/scope scope))
(/loop.scope ///extension/common.statement expression archive scope)
(^ (////synthesis.loop/recur updates))
(//////phase.except ..cannot_recur_as_an_expression [])
(^ (////synthesis.function/abstraction abstraction))
(/function.function ///extension/common.statement expression archive abstraction)
(^ (////synthesis.function/apply application))
(/function.apply expression archive application)
{////synthesis.#Extension extension}
(///extension.apply archive expression extension)))
(def: .public generate
Phase
..expression)
|