aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/documentation/lux.lux
blob: 987d9cce50a7fb27bad09a02d0c564bdefbdc866 (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
(.module:
  [library
   [lux
    [program (#+ program:)]
    ["$" documentation (#+ documentation:)]
    ["." debug]
    [control
     ["." io]]]]
  [\\library
   ["." /]]
  ["." / #_
   ["#." abstract]
   ["#." control]
   ["#." data]
   ... ["#." debug]
   ... ["#." documentation]
   ... ["#." locale]
   ... ["#." macro
   ...  ["#/." code]]
   ... ["#." math]
   ... ["#." meta]
   ... ["#." program]
   ... ["#." target]
   ... ["#." test]
   ... ["#." time]
   ... ... ["#." tool] ... TODO: Update & expand tests for this
   ... ["#." type]
   ... ["#." world]
   ... ["#." ffi]
   ... ["#." extension]
   ... ["#." target #_
   ...  <target>]
   ])

(documentation: /.:of
  "Generates the type corresponding to a given expression."
  [(let [my_num +123]
     (:of my_num))
   "=>"
   .Int]
  [(:of +123)
   "=>"
   .Int])

(.def: .public documentation
  (.List $.Module)
  ($.module /._
            ""
            [..:of]
            [/abstract.documentation
             /control.documentation
             /data.documentation]))

(program: inputs
  (io.io (debug.log! ($.documentation ..documentation))))