aboutsummaryrefslogtreecommitdiff
path: root/lux-jvm/source/luxc/lang
diff options
context:
space:
mode:
authorEduardo Julian2021-09-03 21:51:30 -0400
committerEduardo Julian2021-09-03 21:51:30 -0400
commit891b1cfc82322f8017f0a4f6b707d6fe52024545 (patch)
tree957429c0a2ad850b3570492deabe054fb2ace63e /lux-jvm/source/luxc/lang
parente76add6e6f904677f5c09bb2a66dce283f1b848a (diff)
Unified tuple and record syntax.
Diffstat (limited to 'lux-jvm/source/luxc/lang')
-rw-r--r--lux-jvm/source/luxc/lang/directive/jvm.lux8
-rw-r--r--lux-jvm/source/luxc/lang/host/jvm.lux32
2 files changed, 23 insertions, 17 deletions
diff --git a/lux-jvm/source/luxc/lang/directive/jvm.lux b/lux-jvm/source/luxc/lang/directive/jvm.lux
index 22715276b..8be0777a8 100644
--- a/lux-jvm/source/luxc/lang/directive/jvm.lux
+++ b/lux-jvm/source/luxc/lang/directive/jvm.lux
@@ -619,12 +619,12 @@
(type: Method_Declaration
(Record
- {#name Text
+ [#name Text
#annotations (List Annotation)
#type_variables (List (Type Var))
#exceptions (List (Type Class))
#arguments (List (Type Value))
- #return (Type Value)}))
+ #return (Type Value)]))
(def: method_declaration
(Parser Method_Declaration)
@@ -819,9 +819,9 @@
(def: (constraint tv)
(-> (Type Var) Constraint)
- {#/type.name (parser.name tv)
+ [#/type.name (parser.name tv)
#/type.super_class java/lang/Object
- #/type.super_interfaces (list)})
+ #/type.super_interfaces (list)])
(def: visibility
(-> ffi.Privacy jvm.Visibility)
diff --git a/lux-jvm/source/luxc/lang/host/jvm.lux b/lux-jvm/source/luxc/lang/host/jvm.lux
index df9575ef4..44cc680eb 100644
--- a/lux-jvm/source/luxc/lang/host/jvm.lux
+++ b/lux-jvm/source/luxc/lang/host/jvm.lux
@@ -10,7 +10,7 @@
[data
[binary (#+ Binary)]
[collection
- ["." list ("#/." functor)]]]
+ ["." list ("#\." monad)]]]
[macro
["." code]
[syntax (#+ syntax:)]]
@@ -96,10 +96,10 @@
options (<code>.tuple (<>.many <code>.local_identifier))])
(let [g!type (code.local_identifier type)
g!none (code.local_identifier none)
- g!tags+ (list/each code.local_tag options)
+ g!tags+ (list\each code.local_tag options)
g!_left (code.local_identifier "_left")
g!_right (code.local_identifier "_right")
- g!options+ (list/each (function (_ option)
+ g!options+ (list\each (function (_ option)
(` (def: .public (~ (code.local_identifier option))
(~ g!type)
(|> (~ g!none)
@@ -107,22 +107,28 @@
options)]
(in (list& (` (type: .public (~ g!type)
(.Record
- (~ (code.record (list/each (function (_ tag)
- [tag (` .Bit)])
- g!tags+))))))
+ (~ (|> g!tags+
+ (list\each (function (_ tag)
+ (list tag (` .Bit))))
+ list\conjoint
+ code.tuple)))))
(` (def: .public (~ g!none)
(~ g!type)
- (~ (code.record (list/each (function (_ tag)
- [tag (` #0)])
- g!tags+)))))
+ (~ (|> g!tags+
+ (list\each (function (_ tag)
+ (list tag (` #0))))
+ list\conjoint
+ code.tuple))))
(` (def: .public ((~ (code.local_identifier ++)) (~ g!_left) (~ g!_right))
(-> (~ g!type) (~ g!type) (~ g!type))
- (~ (code.record (list/each (function (_ tag)
- [tag (` (or (value@ (~ tag) (~ g!_left))
- (value@ (~ tag) (~ g!_right))))])
- g!tags+)))))
+ (~ (|> g!tags+
+ (list\each (function (_ tag)
+ (list tag (` (or (value@ (~ tag) (~ g!_left))
+ (value@ (~ tag) (~ g!_right)))))))
+ list\conjoint
+ code.tuple))))
g!options+))))