diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux.lux | 148 |
1 files changed, 75 insertions, 73 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux index 3e373be35..c65384392 100644 --- a/stdlib/source/lux.lux +++ b/stdlib/source/lux.lux @@ -3096,8 +3096,8 @@ "(macro: #export (name-of tokens)" ..new-line " (case tokens" ..new-line " (^template [<tag>]" ..new-line - " (^ (list [_ (<tag> [prefix name])]))" ..new-line - " (return (list (` [(~ (text$ prefix)) (~ (text$ name))]))))" ..new-line + " [(^ (list [_ (<tag> [prefix name])]))" ..new-line + " (return (list (` [(~ (text$ prefix)) (~ (text$ name))])))])" ..new-line " ([#Identifier] [#Tag])" __paragraph " _" ..new-line @@ -4773,23 +4773,23 @@ " (#.Primitive name (list@map (beta-reduce env) params))" __paragraph " (^template [<tag>]" ..new-line - " (<tag> left right)" ..new-line - " (<tag> (beta-reduce env left) (beta-reduce env right)))" ..new-line + " [(<tag> left right)" ..new-line + " (<tag> (beta-reduce env left) (beta-reduce env right))])" ..new-line " ([#.Sum] [#.Product])" __paragraph " (^template [<tag>]" ..new-line - " (<tag> left right)" ..new-line - " (<tag> (beta-reduce env left) (beta-reduce env right)))" ..new-line + " [(<tag> left right)" ..new-line + " (<tag> (beta-reduce env left) (beta-reduce env right))])" ..new-line " ([#.Function] [#.Apply])" __paragraph " (^template [<tag>]" ..new-line - " (<tag> old-env def)" ..new-line + " [(<tag> old-env def)" ..new-line " (case old-env" ..new-line " #.Nil" ..new-line " (<tag> env def)" __paragraph " _" ..new-line - " type))" ..new-line + " type)])" ..new-line " ([#.UnivQ] [#.ExQ])" __paragraph " (#.Parameter idx)" ..new-line @@ -4799,7 +4799,8 @@ " type" ..new-line " ))"))} (case tokens - (^ (list& [_ (#Form (list& [_ (#Tuple bindings)] templates))] + (^ (list& [_ (#Form (list [_ (#Tuple bindings)] + [_ (#Tuple templates)]))] [_ (#Form data)] branches)) (case (: (Maybe (List Code)) @@ -4829,8 +4830,8 @@ (-> Code Nat) (case code (^template [<tag>] - [[_ _ column] (<tag> _)] - column) + [[[_ _ column] (<tag> _)] + column]) ([#Bit] [#Nat] [#Int] @@ -4841,8 +4842,8 @@ [#Tag]) (^template [<tag>] - [[_ _ column] (<tag> parts)] - (list@fold n/min column (list@map find-baseline-column parts))) + [[[_ _ column] (<tag> parts)] + (list@fold n/min column (list@map find-baseline-column parts))]) ([#Form] [#Tuple]) @@ -4913,11 +4914,11 @@ (-> Location Nat Code [Location Text]) (case example (^template [<tag> <encode>] - [new-location (<tag> value)] - (let [as-text (<encode> value)] - [(update-location new-location as-text) - (text@compose (location-padding baseline prev-location new-location) - as-text)])) + [[new-location (<tag> value)] + (let [as-text (<encode> value)] + [(update-location new-location as-text) + (text@compose (location-padding baseline prev-location new-location) + as-text)])]) ([#Bit bit@encode] [#Nat nat@encode] [#Int int@encode] @@ -4927,17 +4928,17 @@ [#Tag tag@encode]) (^template [<tag> <open> <close> <prep>] - [group-location (<tag> parts)] - (let [[group-location' parts-text] (list@fold (function (_ part [last-location text-accum]) - (let [[part-location part-text] (doc-example->Text last-location baseline part)] - [part-location (text@compose text-accum part-text)])) - [(delim-update-location group-location) ""] - (<prep> parts))] - [(delim-update-location group-location') - ($_ text@compose (location-padding baseline prev-location group-location) - <open> - parts-text - <close>)])) + [[group-location (<tag> parts)] + (let [[group-location' parts-text] (list@fold (function (_ part [last-location text-accum]) + (let [[part-location part-text] (doc-example->Text last-location baseline part)] + [part-location (text@compose text-accum part-text)])) + [(delim-update-location group-location) ""] + (<prep> parts))] + [(delim-update-location group-location') + ($_ text@compose (location-padding baseline prev-location group-location) + <open> + parts-text + <close>)])]) ([#Form "(" ")" ..function@identity] [#Tuple "[" "]" ..function@identity] [#Record "{" "}" rejoin-all-pairs]) @@ -5004,21 +5005,21 @@ (` (#.Primitive (~ (text$ name)) (~ (untemplate-list (list@map type-to-code params))))) (^template [<tag>] - (<tag> left right) - (` (<tag> (~ (type-to-code left)) (~ (type-to-code right))))) + [(<tag> left right) + (` (<tag> (~ (type-to-code left)) (~ (type-to-code right))))]) ([#.Sum] [#.Product] [#.Function] [#.Apply]) (^template [<tag>] - (<tag> id) - (` (<tag> (~ (nat$ id))))) + [(<tag> id) + (` (<tag> (~ (nat$ id))))]) ([#.Parameter] [#.Var] [#.Ex]) (^template [<tag>] - (<tag> env type) - (let [env' (untemplate-list (list@map type-to-code env))] - (` (<tag> (~ env') (~ (type-to-code type)))))) + [(<tag> env type) + (let [env' (untemplate-list (list@map type-to-code env))] + (` (<tag> (~ env') (~ (type-to-code type)))))]) ([#.UnivQ] [#.ExQ]) (#Named [module name] anonymous) @@ -5077,7 +5078,8 @@ (function (_ _) (gensym ""))) inits)] (return (list (` (let [(~+ (interleave aliases inits))] - (.loop [(~+ (interleave vars aliases))] + (.loop (~ name) + [(~+ (interleave vars aliases))] (~ body))))))))) #.None @@ -5137,10 +5139,10 @@ (#Some (list target))) (^template [<tag>] - [location (<tag> elems)] - (do maybe-monad - [placements (monad@map maybe-monad (place-tokens label tokens) elems)] - (wrap (list [location (<tag> (list@join placements))])))) + [[location (<tag> elems)] + (do maybe-monad + [placements (monad@map maybe-monad (place-tokens label tokens) elems)] + (wrap (list [location (<tag> (list@join placements))])))]) ([#Tuple] [#Form]) @@ -5215,8 +5217,8 @@ (-> Type Type) (case type (^template [<name>] - (#Named ["lux" <name>] _) - type) + [(#Named ["lux" <name>] _) + type]) (["Bit"] ["Nat"] ["Int"] @@ -5237,8 +5239,8 @@ #let [[type value] type+value]] (case (flatten-alias type) (^template [<name> <type> <wrapper>] - (#Named ["lux" <name>] _) - (wrap (<wrapper> (:coerce <type> value)))) + [(#Named ["lux" <name>] _) + (wrap (<wrapper> (:coerce <type> value)))]) (["Bit" Bit bit$] ["Nat" Nat nat$] ["Int" Int int$] @@ -5260,10 +5262,10 @@ (anti-quote-def [def-prefix def-name])) (^template [<tag>] - [meta (<tag> parts)] - (do meta-monad - [=parts (monad@map meta-monad anti-quote parts)] - (wrap [meta (<tag> =parts)]))) + [[meta (<tag> parts)] + (do meta-monad + [=parts (monad@map meta-monad anti-quote parts)] + (wrap [meta (<tag> =parts)]))]) ([#Form] [#Tuple]) @@ -5401,8 +5403,8 @@ ["lux" "doc"])} (case tokens (^template [<tag>] - (^ (list [_ (<tag> [prefix name])])) - (return (list (` [(~ (text$ prefix)) (~ (text$ name))])))) + [(^ (list [_ (<tag> [prefix name])])) + (return (list (` [(~ (text$ prefix)) (~ (text$ name))])))]) ([#Identifier] [#Tag]) _ @@ -5733,11 +5735,11 @@ (wrap [(list [g!expansion expansion]) g!expansion])) (^template [<tag>] - [ann (<tag> parts)] - (do meta-monad - [=parts (monad@map meta-monad label-code parts)] - (wrap [(list@fold list@compose (list) (list@map left =parts)) - [ann (<tag> (list@map right =parts))]]))) + [[ann (<tag> parts)] + (do meta-monad + [=parts (monad@map meta-monad label-code parts)] + (wrap [(list@fold list@compose (list) (list@map left =parts)) + [ann (<tag> (list@map right =parts))]]))]) ([#Form] [#Tuple]) [ann (#Record kvs)] @@ -5789,10 +5791,10 @@ (-> Code (Meta Code)) (case pattern (^template [<tag> <name> <gen>] - [_ (<tag> value)] - (do meta-monad - [g!meta (gensym "g!meta")] - (wrap (` [(~ g!meta) (<tag> (~ (<gen> value)))])))) + [[_ (<tag> value)] + (do meta-monad + [g!meta (gensym "g!meta")] + (wrap (` [(~ g!meta) (<tag> (~ (<gen> value)))])))]) ([#Bit "Bit" bit$] [#Nat "Nat" nat$] [#Int "Int" int$] @@ -5821,20 +5823,20 @@ (fail "Cannot use (~+) inside of ^code unless it is the last element in a form or a tuple.") (^template [<tag>] - [_ (<tag> elems)] - (case (list@reverse elems) - (#Cons [_ (#Form (#Cons [[_ (#Identifier ["" "~+"])] (#Cons [spliced #Nil])]))] - inits) - (do meta-monad - [=inits (monad@map meta-monad untemplate-pattern (list@reverse inits)) - g!meta (gensym "g!meta")] - (wrap (` [(~ g!meta) (<tag> (~ (untemplate-list& spliced =inits)))]))) + [[_ (<tag> elems)] + (case (list@reverse elems) + (#Cons [_ (#Form (#Cons [[_ (#Identifier ["" "~+"])] (#Cons [spliced #Nil])]))] + inits) + (do meta-monad + [=inits (monad@map meta-monad untemplate-pattern (list@reverse inits)) + g!meta (gensym "g!meta")] + (wrap (` [(~ g!meta) (<tag> (~ (untemplate-list& spliced =inits)))]))) - _ - (do meta-monad - [=elems (monad@map meta-monad untemplate-pattern elems) - g!meta (gensym "g!meta")] - (wrap (` [(~ g!meta) (<tag> (~ (untemplate-list =elems)))]))))) + _ + (do meta-monad + [=elems (monad@map meta-monad untemplate-pattern elems) + g!meta (gensym "g!meta")] + (wrap (` [(~ g!meta) (<tag> (~ (untemplate-list =elems)))]))))]) ([#Tuple] [#Form]) )) |