aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/init.lux
blob: 80968d7cdcc898fe4954421975263a8effa4e5aa (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
(.module:
  lux
  [//]
  (// [".L" extension]
      (translation (jvm [".T" common]))))

(def: #export (cursor file)
  (-> Text Cursor)
  [file +1 +0])

(def: #export (source file code)
  (-> Text Text Source)
  [(cursor file) +0 code])

(def: dummy-source
  Source
  [.dummy-cursor +0 ""])

(def: #export type-context
  Type-Context
  {#.ex-counter +0
   #.var-counter +0
   #.var-bindings (list)})

(def: #export info
  Info
  {#.target  (for {"JVM" "JVM"
                   "JS" "JS"})
   #.version //.version
   #.mode    #.Build})

(def: #export (compiler host)
  (-> commonT.Host Compiler)
  {#.info            ..info
   #.source          dummy-source
   #.cursor          .dummy-cursor
   #.current-module  #.None
   #.modules         (list)
   #.scopes          (list)
   #.type-context    ..type-context
   #.expected        #.None
   #.seed            +0
   #.scope-type-vars (list)
   #.extensions      (:! Void extensionL.fresh)
   #.host            (:! Void host)})