aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library
diff options
context:
space:
mode:
authorEduardo Julian2022-06-14 21:28:23 -0400
committerEduardo Julian2022-06-14 21:28:23 -0400
commitda79da086a028a55130fbbbc5e08ed0ce736ff96 (patch)
tree3cca77c0271a65e29c5d8057d3837db3e330e359 /stdlib/source/library
parent3a81232c2367df2416f62f651259ff9297abc7d4 (diff)
New "parser" hierarchy. [Part 2]
Diffstat (limited to 'stdlib/source/library')
-rw-r--r--stdlib/source/library/lux/control/parser/binary.lux308
-rw-r--r--stdlib/source/library/lux/control/parser/synthesis.lux161
-rw-r--r--stdlib/source/library/lux/data/format/tar.lux8
-rw-r--r--stdlib/source/library/lux/extension.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux72
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/host.lux39
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux278
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/host.lux7
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive.lux10
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/module/descriptor.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/signature.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/import.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/io/archive.lux8
32 files changed, 291 insertions, 777 deletions
diff --git a/stdlib/source/library/lux/control/parser/binary.lux b/stdlib/source/library/lux/control/parser/binary.lux
deleted file mode 100644
index 98d23b610..000000000
--- a/stdlib/source/library/lux/control/parser/binary.lux
+++ /dev/null
@@ -1,308 +0,0 @@
-(.using
- [library
- [lux (.except and or nat int rev list type symbol)
- [ffi (.only)]
- [type (.only sharing)]
- [abstract
- [hash (.only Hash)]
- [monad (.only do)]]
- [control
- ["[0]" try (.only Try)]
- ["[0]" exception (.only exception:)]]
- [data
- ["/" binary
- ["[1]" \\unsafe (.only Binary)]]
- [text
- ["%" \\format (.only format)]
- [encoding
- ["[0]" utf8]]]
- [collection
- ["[0]" list]
- ["[0]" sequence (.only Sequence)]
- ["[0]" set (.only Set)]
- [array
- [\\unsafe (.only)]]]]
- [macro
- ["^" pattern]
- ["[0]" template]]
- [math
- [number
- ["n" nat]
- ["[0]" frac]]]]]
- ["[0]" // (.open: "[1]#[0]" monad)])
-
-(type: .public Offset
- Nat)
-
-(type: .public Parser
- (//.Parser [Offset Binary]))
-
-(exception: .public (binary_was_not_fully_read [binary_length Nat
- bytes_read Nat])
- (exception.report
- "Binary length" (%.nat binary_length)
- "Bytes read" (%.nat bytes_read)))
-
-(with_template [<name> <extension>]
- [(def: <name>
- (template (<name> <parameter> <subject>)
- [(<extension> <parameter> <subject>)]))]
-
- [n#= "lux i64 ="]
- [n#+ "lux i64 +"]
- [n#- "lux i64 -"]
- )
-
-(def: .public (result parser input)
- (All (_ a) (-> (Parser a) Binary (Try a)))
- (case (parser [0 input])
- {try.#Success [[end _] output]}
- (let [length (/.size input)]
- (if (n#= end length)
- {try.#Success output}
- (exception.except ..binary_was_not_fully_read [length end])))
-
- failure
- (as_expected failure)))
-
-(def: .public end?
- (Parser Bit)
- (function (_ (^.let input [offset data]))
- {try.#Success [input (n#= offset (/.size data))]}))
-
-(def: .public offset
- (Parser Offset)
- (function (_ (^.let input [offset data]))
- {try.#Success [input offset]}))
-
-(def: .public remaining
- (Parser Nat)
- (function (_ (^.let input [offset data]))
- {try.#Success [input (n#- offset (/.size data))]}))
-
-(type: .public Size
- Nat)
-
-(def: .public size_8 Size 1)
-(def: .public size_16 Size (n.* 2 size_8))
-(def: .public size_32 Size (n.* 2 size_16))
-(def: .public size_64 Size (n.* 2 size_32))
-
-(exception: .public (range_out_of_bounds [length Nat
- start Nat
- end Nat])
- (exception.report
- "Length" (%.nat length)
- "Range start" (%.nat start)
- "Range end" (%.nat end)))
-
-(with_template [<name> <size> <read>]
- [(def: .public <name>
- (Parser I64)
- (function (_ [start binary])
- (let [end (n#+ <size> start)]
- (if (n.< end (/.size binary))
- (exception.except ..range_out_of_bounds [(/.size binary) start end])
- (|> (<read> start binary)
- [[end binary]]
- {try.#Success})))))]
-
- [bits_8 ..size_8 /.bits_8]
- [bits_16 ..size_16 /.bits_16]
- [bits_32 ..size_32 /.bits_32]
- [bits_64 ..size_64 /.bits_64]
- )
-
-(with_template [<name> <type>]
- [(def: .public <name> (Parser <type>) ..bits_64)]
-
- [nat Nat]
- [int Int]
- [rev Rev]
- )
-
-(def: .public frac
- (Parser Frac)
- (//#each frac.of_bits ..bits_64))
-
-(exception: .public (invalid_tag [range Nat
- byte Nat])
- (exception.report
- "Tag range" (%.nat range)
- "Tag value" (%.nat byte)))
-
-(def: !variant
- (template (!variant <case>+)
- [(do [! //.monad]
- [flag (is (Parser Nat)
- ..bits_8)]
- (with_expansions [<case>+' (template.spliced <case>+)]
- (case flag
- (^.with_template [<number> <tag> <parser>]
- [<number> (`` (at ! each (|>> {(~~ (template.spliced <tag>))}) <parser>))])
- (<case>+')
-
- _ (//.lifted (exception.except ..invalid_tag [(template.amount [<case>+]) flag])))))]))
-
-(def: .public (or left right)
- (All (_ l r) (-> (Parser l) (Parser r) (Parser (Or l r))))
- (!variant [[0 [.#Left] left]
- [1 [.#Right] right]]))
-
-(def: .public (rec body)
- (All (_ a) (-> (-> (Parser a) (Parser a)) (Parser a)))
- (function (_ input)
- (let [parser (body (rec body))]
- (parser input))))
-
-(def: .public any
- (Parser Any)
- (//#in []))
-
-(exception: .public (not_a_bit [value Nat])
- (exception.report
- "Expected values" "either 0 or 1"
- "Actual value" (%.nat value)))
-
-(def: .public bit
- (Parser Bit)
- (do //.monad
- [value (is (Parser Nat)
- ..bits_8)]
- (case value
- 0 (in #0)
- 1 (in #1)
- _ (//.lifted (exception.except ..not_a_bit [value])))))
-
-(def: .public (segment size)
- (-> Nat (Parser Binary))
- (case size
- 0 (//#in (/.empty 0))
- _ (function (_ [start binary])
- (let [end (n#+ size start)]
- (if (n.< end (/.size binary))
- (exception.except ..range_out_of_bounds [(/.size binary) start end])
- (|> binary
- (/.slice start size)
- [[end binary]]
- {try.#Success}))))))
-
-(with_template [<size> <name> <bits>]
- [(`` (def: .public <name>
- (Parser Binary)
- (do //.monad
- [size (//#each (|>> .nat) <bits>)]
- (..segment size))))]
-
- [08 binary_8 ..bits_8]
- [16 binary_16 ..bits_16]
- [32 binary_32 ..bits_32]
- [64 binary_64 ..bits_64]
- )
-
-(with_template [<size> <name> <binary>]
- [(`` (def: .public <name>
- (Parser Text)
- (do //.monad
- [utf8 <binary>]
- (//.lifted (at utf8.codec decoded utf8)))))]
-
- [08 utf8_8 ..binary_8]
- [16 utf8_16 ..binary_16]
- [32 utf8_32 ..binary_32]
- [64 utf8_64 ..binary_64]
- )
-
-(def: .public text ..utf8_64)
-
-(with_template [<size> <name> <bits>]
- [(def: .public (<name> valueP)
- (All (_ v) (-> (Parser v) (Parser (Sequence v))))
- (do //.monad
- [amount (is (Parser Nat)
- <bits>)]
- (loop (again [index 0
- output (sharing [v]
- (Parser v)
- valueP
-
- (Sequence v)
- sequence.empty)])
- (if (n.< amount index)
- (do //.monad
- [value valueP]
- (again (.++ index)
- (sequence.suffix value output)))
- (//#in output)))))]
-
- [08 sequence_8 ..bits_8]
- [16 sequence_16 ..bits_16]
- [32 sequence_32 ..bits_32]
- [64 sequence_64 ..bits_64]
- )
-
-(def: .public maybe
- (All (_ a) (-> (Parser a) (Parser (Maybe a))))
- (..or ..any))
-
-(def: .public (list value)
- (All (_ a) (-> (Parser a) (Parser (List a))))
- (..rec
- (|>> (//.and value)
- (..or ..any))))
-
-(exception: .public set_elements_are_not_unique)
-
-(def: .public (set hash value)
- (All (_ a) (-> (Hash a) (Parser a) (Parser (Set a))))
- (do //.monad
- [raw (..list value)
- .let [output (set.of_list hash raw)]
- _ (//.assertion (exception.error ..set_elements_are_not_unique [])
- (n#= (list.size raw)
- (set.size output)))]
- (in output)))
-
-(def: .public symbol
- (Parser Symbol)
- (//.and ..text ..text))
-
-(def: .public type
- (Parser Type)
- (..rec
- (function (_ type)
- (let [pair (//.and type type)
- indexed ..nat
- quantified (//.and (..list type) type)]
- (!variant [[0 [.#Primitive] (//.and ..text (..list type))]
- [1 [.#Sum] pair]
- [2 [.#Product] pair]
- [3 [.#Function] pair]
- [4 [.#Parameter] indexed]
- [5 [.#Var] indexed]
- [6 [.#Ex] indexed]
- [7 [.#UnivQ] quantified]
- [8 [.#ExQ] quantified]
- [9 [.#Apply] pair]
- [10 [.#Named] (//.and ..symbol type)]])))))
-
-(def: .public location
- (Parser Location)
- (all //.and ..text ..nat ..nat))
-
-(def: .public code
- (Parser Code)
- (..rec
- (function (_ again)
- (let [sequence (..list again)]
- (//.and ..location
- (!variant [[0 [.#Bit] ..bit]
- [1 [.#Nat] ..nat]
- [2 [.#Int] ..int]
- [3 [.#Rev] ..rev]
- [4 [.#Frac] ..frac]
- [5 [.#Text] ..text]
- [6 [.#Symbol] ..symbol]
- [7 [.#Form] sequence]
- [8 [.#Variant] sequence]
- [9 [.#Tuple] sequence]]))))))
diff --git a/stdlib/source/library/lux/control/parser/synthesis.lux b/stdlib/source/library/lux/control/parser/synthesis.lux
deleted file mode 100644
index 9e73bf80c..000000000
--- a/stdlib/source/library/lux/control/parser/synthesis.lux
+++ /dev/null
@@ -1,161 +0,0 @@
-(.using
- [library
- [lux (.except function loop i64 local)
- [abstract
- [monad (.only do)]]
- [control
- ["[0]" try (.only Try)]
- ["[0]" exception (.only exception:)]]
- [data
- ["[0]" bit]
- ["[0]" text (.only)
- ["%" \\format (.only format)]]
- [collection
- ["[0]" list]]]
- [math
- [number
- ["n" nat]
- ["[0]" i64]
- ["[0]" frac]]]
- [meta
- ["[0]" symbol]]
- [tool
- [compiler
- [reference (.only)
- [variable (.only Register)]]
- [arity (.only Arity)]
- [language
- [lux
- [analysis (.only Environment)]
- ["/" synthesis (.only Synthesis Abstraction)]]]]]]]
- ["[0]" //])
-
-(exception: .public (cannot_parse [input (List Synthesis)])
- (exception.report
- "Input" (exception.listing /.%synthesis input)))
-
-(exception: .public (unconsumed_input [input (List Synthesis)])
- (exception.report
- "Input" (exception.listing /.%synthesis input)))
-
-(exception: .public (expected_empty_input [input (List Synthesis)])
- (exception.report
- "Input" (exception.listing /.%synthesis input)))
-
-(exception: .public (wrong_arity [expected Arity
- actual Arity])
- (exception.report
- "Expected" (%.nat expected)
- "Actual" (%.nat actual)))
-
-(exception: .public empty_input)
-
-(type: .public Parser
- (//.Parser (List Synthesis)))
-
-(def: .public (result parser input)
- (All (_ a) (-> (Parser a) (List Synthesis) (Try a)))
- (case (parser input)
- {try.#Failure error}
- {try.#Failure error}
-
- {try.#Success [{.#End} value]}
- {try.#Success value}
-
- {try.#Success [unconsumed _]}
- (exception.except ..unconsumed_input unconsumed)))
-
-(def: .public any
- (Parser Synthesis)
- (.function (_ input)
- (case input
- {.#End}
- (exception.except ..empty_input [])
-
- {.#Item [head tail]}
- {try.#Success [tail head]})))
-
-(def: .public end
- (Parser Any)
- (.function (_ tokens)
- (case tokens
- {.#End} {try.#Success [tokens []]}
- _ (exception.except ..expected_empty_input [tokens]))))
-
-(def: .public end?
- (Parser Bit)
- (.function (_ tokens)
- {try.#Success [tokens (case tokens
- {.#End} true
- _ false)]}))
-
-(with_template [<query> <assertion> <tag> <type> <eq>]
- [(`` (def: .public <query>
- (Parser <type>)
- (.function (_ input)
- (case input
- (pattern (list.partial (<tag> x) input'))
- {try.#Success [input' x]}
-
- _
- (exception.except ..cannot_parse input)))))
-
- (`` (def: .public (<assertion> expected)
- (-> <type> (Parser Any))
- (.function (_ input)
- (case input
- (pattern (list.partial (<tag> actual) input'))
- (if (at <eq> = expected actual)
- {try.#Success [input' []]}
- (exception.except ..cannot_parse input))
-
- _
- (exception.except ..cannot_parse input)))))]
-
- [bit this_bit /.bit Bit bit.equivalence]
- [i64 this_i64 /.i64 I64 i64.equivalence]
- [f64 this_f64 /.f64 Frac frac.equivalence]
- [text this_text /.text Text text.equivalence]
- [local this_local /.variable/local Nat n.equivalence]
- [foreign this_foreign /.variable/foreign Nat n.equivalence]
- [constant this_constant /.constant Symbol symbol.equivalence]
- )
-
-(def: .public (tuple parser)
- (All (_ a) (-> (Parser a) (Parser a)))
- (.function (_ input)
- (case input
- (pattern (list.partial (/.tuple head) tail))
- (do try.monad
- [output (..result parser head)]
- {try.#Success [tail output]})
-
- _
- (exception.except ..cannot_parse input))))
-
-(def: .public (function expected parser)
- (All (_ a) (-> Arity (Parser a) (Parser [(Environment Synthesis) a])))
- (.function (_ input)
- (case input
- (pattern (list.partial (/.function/abstraction [environment actual body]) tail))
- (if (n.= expected actual)
- (do try.monad
- [output (..result parser (list body))]
- {try.#Success [tail [environment output]]})
- (exception.except ..wrong_arity [expected actual]))
-
- _
- (exception.except ..cannot_parse input))))
-
-(def: .public (loop init_parsers iteration_parser)
- (All (_ a b) (-> (Parser a) (Parser b) (Parser [Register a b])))
- (.function (_ input)
- (case input
- (pattern (list.partial (/.loop/scope [start inits iteration]) tail))
- (do try.monad
- [inits (..result init_parsers inits)
- iteration (..result iteration_parser (list iteration))]
- {try.#Success [tail [start inits iteration]]})
-
- _
- (exception.except ..cannot_parse input))))
diff --git a/stdlib/source/library/lux/data/format/tar.lux b/stdlib/source/library/lux/data/format/tar.lux
index 29e03f5cd..1c75474cf 100644
--- a/stdlib/source/library/lux/data/format/tar.lux
+++ b/stdlib/source/library/lux/data/format/tar.lux
@@ -5,16 +5,16 @@
[abstract
[monad (.only do)]]
[control
+ ["<>" parser]
["[0]" pipe]
["[0]" try (.only Try)]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
["[0]" product]
["[0]" binary (.only Binary)
["[1]!" \\unsafe]
- ["[0]" \\format (.only Writer) (.open: "[1]#[0]" monoid)]]
+ ["[0]" \\format (.only Writer) (.open: "[1]#[0]" monoid)]
+ ["<[1]>" \\parser (.only Parser)]]
["[0]" text (.only Char)
["%" \\format (.only format)]
[encoding
diff --git a/stdlib/source/library/lux/extension.lux b/stdlib/source/library/lux/extension.lux
index 51ca6a3d3..424cfcba8 100644
--- a/stdlib/source/library/lux/extension.lux
+++ b/stdlib/source/library/lux/extension.lux
@@ -5,8 +5,7 @@
["[0]" monad]]
[control
["<>" parser (.open: "[1]#[0]" monad)
- ["<c>" code (.only Parser)]
- ["<s>" synthesis]]]
+ ["<c>" code (.only Parser)]]]
[data
["[0]" product]
[collection
@@ -20,7 +19,9 @@
[language
[lux
[analysis
- ["<a>" \\parser]]]]]]]])
+ ["<a>" \\parser]]
+ [synthesis
+ ["<s>" \\parser]]]]]]]])
(type: Declaration
(Record
diff --git a/stdlib/source/library/lux/tool/compiler.lux b/stdlib/source/library/lux/tool/compiler.lux
index 7e1bfc2c3..2912dc635 100644
--- a/stdlib/source/library/lux/tool/compiler.lux
+++ b/stdlib/source/library/lux/tool/compiler.lux
@@ -2,14 +2,14 @@
[library
[lux (.except Module Code)
[control
+ ["<>" parser (.only)]
["[0]" try (.only Try)]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
["[0]" text]
- [binary (.only Binary)
- [\\format (.only Writer)]]]
+ ["[0]" binary (.only Binary)
+ [\\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]]
[world
["[0]" file (.only Path)]]]]
[/
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux.lux b/stdlib/source/library/lux/tool/compiler/language/lux.lux
index a5c8c9167..084348037 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux.lux
@@ -2,11 +2,11 @@
[library
[lux (.except)
[control
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["<>" parser]]
[data
- [binary
- ["_" \\format (.only Writer)]]]
+ ["[0]" binary
+ ["_" \\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]]
[meta
["[0]" version]]]]
["[0]" /
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
index 957b2339d..41076ca66 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/directive/jvm.lux
@@ -9,8 +9,7 @@
["[0]" try (.only Try) (.open: "[1]#[0]" functor)]
["[0]" exception]
["<>" parser (.open: "[1]#[0]" monad)
- ["<[0]>" code (.only Parser)]
- ["<[0]>" synthesis]]]
+ ["<[0]>" code (.only Parser)]]]
[data
["[0]" product]
[binary (.only Binary)
@@ -64,12 +63,13 @@
["[1]" artifact]]]]
[language
[lux
- ["[0]" synthesis (.only Synthesis)]
["[0]" generation]
["[0]" directive (.only Handler Bundle)]
["[0]" analysis (.only Analysis)
["[0]A" type]
["[0]A" scope]]
+ ["[0]" synthesis (.only Synthesis)
+ ["<[1]>" \\parser]]
[phase
[generation
[jvm
@@ -689,16 +689,16 @@
(try#each (|>> (\\format.result class.writer)
[name])
(class.class version.v6_0
- (all modifier#composite
- class.public
- modifier)
- (name.internal name)
- {.#Some signature}
- (..class_name super)
- (list#each ..class_name interfaces)
- fields
- methods
- sequence.empty))))
+ (all modifier#composite
+ class.public
+ modifier)
+ (name.internal name)
+ {.#Some signature}
+ (..class_name super)
+ (list#each ..class_name interfaces)
+ fields
+ methods
+ sequence.empty))))
(def: (mock_value valueT)
(-> (Type Value) (Bytecode Any))
@@ -906,16 +906,16 @@
bytecode (<| (at ! each (\\format.result class.writer))
phase.lifted
(class.class version.v6_0
- (all modifier#composite
- class.public
- inheritance)
- (name.internal name)
- {.#Some type_declaration}
- (..class_name super)
- (list#each ..class_name interfaces)
- (list#each ..field_definition fields)
- (list#each product.right methods)
- sequence.empty))
+ (all modifier#composite
+ class.public
+ inheritance)
+ (name.internal name)
+ {.#Some type_declaration}
+ (..class_name super)
+ (list#each ..class_name interfaces)
+ (list#each ..field_definition fields)
+ (list#each product.right methods)
+ sequence.empty))
_ (..save_class! name bytecode all_dependencies)]
(in directive.no_requirements)))]))
@@ -945,19 +945,19 @@
[bytecode (<| (at ! each (\\format.result class.writer))
phase.lifted
(class.class version.v6_0
- (all modifier#composite
- class.public
- class.abstract
- class.interface)
- (name.internal name)
- {.#Some (signature.inheritance (list#each type.signature parameters)
- (type.signature $Object)
- (list#each type.signature supers))}
- (name.internal "java.lang.Object")
- (list#each ..class_name supers)
- (list)
- (list#each ..method_declaration method_declarations)
- sequence.empty))
+ (all modifier#composite
+ class.public
+ class.abstract
+ class.interface)
+ (name.internal name)
+ {.#Some (signature.inheritance (list#each type.signature parameters)
+ (type.signature $Object)
+ (list#each type.signature supers))}
+ (name.internal "java.lang.Object")
+ (list#each ..class_name supers)
+ (list)
+ (list#each ..method_declaration method_declarations)
+ sequence.empty))
artifact_id (generation.learn_custom name unit.none)
.let [artifact [name bytecode]]
_ (generation.execute! artifact)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
index 9452e620b..c0c04d708 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text (.only)
@@ -33,8 +32,9 @@
["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
["[1][0]" case]]]
[//
- ["[0]" synthesis (.only %synthesis)]
["[0]" generation]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
[///
["[1]" phase]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/host.lux
index 2b7bb2062..79e422867 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/common_lisp/host.lux
@@ -1,37 +1,12 @@
(.using
[library
- [lux (.except)
- [abstract
- ["[0]" monad (.only do)]]
- [control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
- [data
- [collection
- ["[0]" dictionary]
- ["[0]" list]]
- [text
- ["%" \\format (.only format)]]]
- [target
- ["_" common_lisp (.only Var Expression)]]]]
- ["[0]" //
- ["[1][0]" common (.only custom)]
- ["//[1]" ///
- ["/" bundle]
- ["/[1]" //
- ["[0]" extension]
- [generation
- [extension (.only Nullary Unary Binary Trinary
- nullary unary binary trinary)]
- ["[0]" reference]
- ["//" common_lisp
- ["[1][0]" runtime (.only Operation Phase Handler Bundle
- with_vars)]]]
- ["/[1]" //
- ["[0]" generation]
- ["//[1]" ///
- ["[1][0]" phase]]]]]])
+ [lux (.except)]]
+ [////
+ ["/" bundle]
+ [//
+ [generation
+ [common_lisp
+ [runtime (.only Bundle)]]]]])
(def: .public bundle
Bundle
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
index 0b40aa0d3..f83d48372 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/common.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" try]]
[data
["[0]" product]
[collection
@@ -35,7 +34,8 @@
["[1][0]" loop]
["[1][0]" function]]]
[//
- ["[0]" synthesis (.only %synthesis)]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
[///
["[1]" phase (.open: "[1]#[0]" monad)]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/host.lux
index da40355f3..0c3a868ae 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/js/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -27,6 +26,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
index 7d035fe2f..44e2b7c41 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" try]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- ["<[0]>" synthesis (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
["[0]" product]
[collection
@@ -37,7 +36,8 @@
["[1]extension" /]
["[1][0]" bundle]]
[//
- ["/[1][0]" synthesis (.only Synthesis %synthesis)]
+ ["[0]" synthesis (.only Synthesis %synthesis)
+ ["<[1]>" \\parser (.only Parser)]]
[///
["[1]" phase]
[meta
@@ -54,7 +54,7 @@
(handler extension_name phase archive input')
{try.#Failure error}
- (/////.except /////extension.invalid_syntax [extension_name //////synthesis.%synthesis input]))))
+ (/////.except /////extension.invalid_syntax [extension_name synthesis.%synthesis input]))))
(def: $Boolean (type.class "java.lang.Boolean" (list)))
(def: $Double (type.class "java.lang.Double" (list)))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
index 30ef58a77..e08b2aba8 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/jvm/host.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" maybe (.open: "[1]#[0]" functor)]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- ["<[0]>" synthesis (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
["[0]" product]
[binary
@@ -64,8 +63,9 @@
[analysis
["/" jvm]]]
["/[1]" //
- ["[1][0]" synthesis (.only Synthesis Path %synthesis)]
["[1][0]" generation]
+ ["[0]" synthesis (.only Synthesis Path %synthesis)
+ ["<[1]>" \\parser (.only Parser)]]
[analysis (.only Environment)
["[0]" complex]]
[///
@@ -653,7 +653,7 @@
(at //////.monad in (_.getstatic (type.class class (list)) field :unboxed:)))]))
(def: unitG
- (_.string //////synthesis.unit))
+ (_.string synthesis.unit))
(def: put::static
Handler
@@ -823,22 +823,22 @@
(def: .public (hidden_method_body arity body)
(-> Nat Synthesis Synthesis)
- (with_expansions [<oops> (panic! (%.format (%.nat arity) " " (//////synthesis.%synthesis body)))]
+ (with_expansions [<oops> (panic! (%.format (%.nat arity) " " (synthesis.%synthesis body)))]
(case [arity body]
(^.or [0 _]
[1 _])
body
- (pattern [2 {//////synthesis.#Control {//////synthesis.#Branch {//////synthesis.#Let _ 2 (//////synthesis.tuple (list _ hidden))}}}])
+ (pattern [2 {synthesis.#Control {synthesis.#Branch {synthesis.#Let _ 2 (synthesis.tuple (list _ hidden))}}}])
hidden
- [_ {//////synthesis.#Control {//////synthesis.#Branch {//////synthesis.#Case _ path}}}]
+ [_ {synthesis.#Control {synthesis.#Branch {synthesis.#Case _ path}}}]
(loop (again [path (is Path path)])
(case path
- {//////synthesis.#Seq _ next}
+ {synthesis.#Seq _ next}
(again next)
- (pattern {//////synthesis.#Then (//////synthesis.tuple (list _ hidden))})
+ (pattern {synthesis.#Then (synthesis.tuple (list _ hidden))})
hidden
_
@@ -852,43 +852,43 @@
(-> Path Path))
(function (again it)
(case it
- (^.or {//////synthesis.#Pop}
- {//////synthesis.#Access _})
+ (^.or {synthesis.#Pop}
+ {synthesis.#Access _})
it
- {//////synthesis.#Bind it}
- {//////synthesis.#Bind (-- it)}
+ {synthesis.#Bind it}
+ {synthesis.#Bind (-- it)}
- {//////synthesis.#Bit_Fork when then else}
- {//////synthesis.#Bit_Fork when
- (again then)
- (maybe#each again else)}
+ {synthesis.#Bit_Fork when then else}
+ {synthesis.#Bit_Fork when
+ (again then)
+ (maybe#each again else)}
(^.with_template [<tag>]
[{<tag> [head tail]}
- {<tag> [(revised //////synthesis.#then again head)
- (list#each (revised //////synthesis.#then again) tail)]}])
- ([//////synthesis.#I64_Fork]
- [//////synthesis.#F64_Fork]
- [//////synthesis.#Text_Fork])
+ {<tag> [(revised synthesis.#then again head)
+ (list#each (revised synthesis.#then again) tail)]}])
+ ([synthesis.#I64_Fork]
+ [synthesis.#F64_Fork]
+ [synthesis.#Text_Fork])
(^.with_template [<tag>]
[{<tag> left right}
{<tag> (again left) (again right)}])
- ([//////synthesis.#Seq]
- [//////synthesis.#Alt])
+ ([synthesis.#Seq]
+ [synthesis.#Alt])
- {//////synthesis.#Then it}
- {//////synthesis.#Then (without_fake_parameter it)})))
+ {synthesis.#Then it}
+ {synthesis.#Then (without_fake_parameter it)})))
(def: .public (without_fake_parameter it)
(-> Synthesis Synthesis)
(case it
- {//////synthesis.#Simple _}
+ {synthesis.#Simple _}
it
- {//////synthesis.#Structure it}
- {//////synthesis.#Structure
+ {synthesis.#Structure it}
+ {synthesis.#Structure
(case it
{complex.#Variant it}
{complex.#Variant (revised complex.#value without_fake_parameter it)}
@@ -896,8 +896,8 @@
{complex.#Tuple it}
{complex.#Tuple (list#each without_fake_parameter it)})}
- {//////synthesis.#Reference it}
- {//////synthesis.#Reference
+ {synthesis.#Reference it}
+ {synthesis.#Reference
(case it
{//////reference.#Variable it}
{//////reference.#Variable
@@ -911,64 +911,64 @@
{//////reference.#Constant _}
it)}
- {//////synthesis.#Control it}
- {//////synthesis.#Control
+ {synthesis.#Control it}
+ {synthesis.#Control
(case it
- {//////synthesis.#Branch it}
- {//////synthesis.#Branch
+ {synthesis.#Branch it}
+ {synthesis.#Branch
(case it
- {//////synthesis.#Exec before after}
- {//////synthesis.#Exec (without_fake_parameter before)
- (without_fake_parameter after)}
+ {synthesis.#Exec before after}
+ {synthesis.#Exec (without_fake_parameter before)
+ (without_fake_parameter after)}
- {//////synthesis.#Let value register body}
- {//////synthesis.#Let (without_fake_parameter value)
- (-- register)
- (without_fake_parameter body)}
+ {synthesis.#Let value register body}
+ {synthesis.#Let (without_fake_parameter value)
+ (-- register)
+ (without_fake_parameter body)}
- {//////synthesis.#If when then else}
- {//////synthesis.#If (without_fake_parameter when)
- (without_fake_parameter then)
- (without_fake_parameter else)}
+ {synthesis.#If when then else}
+ {synthesis.#If (without_fake_parameter when)
+ (without_fake_parameter then)
+ (without_fake_parameter else)}
- {//////synthesis.#Get members record}
- {//////synthesis.#Get members
- (without_fake_parameter record)}
+ {synthesis.#Get members record}
+ {synthesis.#Get members
+ (without_fake_parameter record)}
- {//////synthesis.#Case value path}
- {//////synthesis.#Case (without_fake_parameter value)
- (without_fake_parameter#path without_fake_parameter path)})}
+ {synthesis.#Case value path}
+ {synthesis.#Case (without_fake_parameter value)
+ (without_fake_parameter#path without_fake_parameter path)})}
- {//////synthesis.#Loop it}
- {//////synthesis.#Loop
+ {synthesis.#Loop it}
+ {synthesis.#Loop
(case it
- {//////synthesis.#Scope [//////synthesis.#start start
- //////synthesis.#inits inits
- //////synthesis.#iteration iteration]}
- {//////synthesis.#Scope [//////synthesis.#start (-- start)
- //////synthesis.#inits (list#each without_fake_parameter inits)
- //////synthesis.#iteration iteration]}
+ {synthesis.#Scope [synthesis.#start start
+ synthesis.#inits inits
+ synthesis.#iteration iteration]}
+ {synthesis.#Scope [synthesis.#start (-- start)
+ synthesis.#inits (list#each without_fake_parameter inits)
+ synthesis.#iteration iteration]}
- {//////synthesis.#Again _}
+ {synthesis.#Again _}
it)}
- {//////synthesis.#Function it}
- {//////synthesis.#Function
+ {synthesis.#Function it}
+ {synthesis.#Function
(case it
- {//////synthesis.#Abstraction [//////synthesis.#environment environment
- //////synthesis.#arity arity
- //////synthesis.#body body]}
- {//////synthesis.#Abstraction [//////synthesis.#environment (list#each without_fake_parameter environment)
- //////synthesis.#arity arity
- //////synthesis.#body body]}
+ {synthesis.#Abstraction [synthesis.#environment environment
+ synthesis.#arity arity
+ synthesis.#body body]}
+ {synthesis.#Abstraction [synthesis.#environment (list#each without_fake_parameter environment)
+ synthesis.#arity arity
+ synthesis.#body body]}
- {//////synthesis.#Apply [//////synthesis.#function function
- //////synthesis.#arguments arguments]}
- {//////synthesis.#Apply [//////synthesis.#function (without_fake_parameter function)
- //////synthesis.#arguments (list#each without_fake_parameter arguments)]})})}
+ {synthesis.#Apply [synthesis.#function function
+ synthesis.#arguments arguments]}
+ {synthesis.#Apply [synthesis.#function (without_fake_parameter function)
+ synthesis.#arguments (list#each without_fake_parameter arguments)]})})}
- {//////synthesis.#Extension name parameters}
- {//////synthesis.#Extension name (list#each without_fake_parameter parameters)}))
+ {synthesis.#Extension name parameters}
+ {synthesis.#Extension name (list#each without_fake_parameter parameters)}))
(def: overriden_method_definition
(Parser [(Environment Synthesis) (/.Overriden_Method Synthesis)])
@@ -1003,24 +1003,24 @@
(-> Path Path))
(function (again path)
(case path
- (pattern (//////synthesis.path/then bodyS))
- (//////synthesis.path/then (normalize bodyS))
+ (pattern (synthesis.path/then bodyS))
+ (synthesis.path/then (normalize bodyS))
(^.with_template [<tag>]
[(pattern {<tag> leftP rightP})
{<tag> (again leftP) (again rightP)}])
- ([//////synthesis.#Alt]
- [//////synthesis.#Seq])
+ ([synthesis.#Alt]
+ [synthesis.#Seq])
(^.with_template [<tag>]
[{<tag> _}
path])
- ([//////synthesis.#Pop]
- [//////synthesis.#Bind]
- [//////synthesis.#Access])
+ ([synthesis.#Pop]
+ [synthesis.#Bind]
+ [synthesis.#Access])
- {//////synthesis.#Bit_Fork when then else}
- {//////synthesis.#Bit_Fork when (again then) (maybe#each again else)}
+ {synthesis.#Bit_Fork when then else}
+ {synthesis.#Bit_Fork when (again then) (maybe#each again else)}
(^.with_template [<tag>]
[{<tag> [[exampleH nextH] tail]}
@@ -1028,9 +1028,9 @@
(list#each (function (_ [example next])
[example (again next)])
tail)]}])
- ([//////synthesis.#I64_Fork]
- [//////synthesis.#F64_Fork]
- [//////synthesis.#Text_Fork]))))
+ ([synthesis.#I64_Fork]
+ [synthesis.#F64_Fork]
+ [synthesis.#Text_Fork]))))
(type: Mapping
(Dictionary Synthesis Variable))
@@ -1042,62 +1042,62 @@
(^.with_template [<tag>]
[(pattern <tag>)
body])
- ([{//////synthesis.#Simple _}]
- [(//////synthesis.constant _)])
+ ([{synthesis.#Simple _}]
+ [(synthesis.constant _)])
- (pattern (//////synthesis.variant [lefts right? sub]))
- (//////synthesis.variant [lefts right? (again sub)])
+ (pattern (synthesis.variant [lefts right? sub]))
+ (synthesis.variant [lefts right? (again sub)])
- (pattern (//////synthesis.tuple members))
- (//////synthesis.tuple (list#each again members))
+ (pattern (synthesis.tuple members))
+ (synthesis.tuple (list#each again members))
- (pattern (//////synthesis.variable var))
+ (pattern (synthesis.variable var))
(|> mapping
(dictionary.value body)
(maybe.else var)
- //////synthesis.variable)
+ synthesis.variable)
- (pattern (//////synthesis.branch/case [inputS pathS]))
- (//////synthesis.branch/case [(again inputS) (normalize_path again pathS)])
+ (pattern (synthesis.branch/case [inputS pathS]))
+ (synthesis.branch/case [(again inputS) (normalize_path again pathS)])
- (pattern (//////synthesis.branch/exec [this that]))
- (//////synthesis.branch/exec [(again this) (again that)])
+ (pattern (synthesis.branch/exec [this that]))
+ (synthesis.branch/exec [(again this) (again that)])
- (pattern (//////synthesis.branch/let [inputS register outputS]))
- (//////synthesis.branch/let [(again inputS) register (again outputS)])
+ (pattern (synthesis.branch/let [inputS register outputS]))
+ (synthesis.branch/let [(again inputS) register (again outputS)])
- (pattern (//////synthesis.branch/if [testS thenS elseS]))
- (//////synthesis.branch/if [(again testS) (again thenS) (again elseS)])
+ (pattern (synthesis.branch/if [testS thenS elseS]))
+ (synthesis.branch/if [(again testS) (again thenS) (again elseS)])
- (pattern (//////synthesis.branch/get [path recordS]))
- (//////synthesis.branch/get [path (again recordS)])
+ (pattern (synthesis.branch/get [path recordS]))
+ (synthesis.branch/get [path (again recordS)])
- (pattern (//////synthesis.loop/scope [offset initsS+ bodyS]))
- (//////synthesis.loop/scope [offset (list#each again initsS+) (again bodyS)])
+ (pattern (synthesis.loop/scope [offset initsS+ bodyS]))
+ (synthesis.loop/scope [offset (list#each again initsS+) (again bodyS)])
- (pattern (//////synthesis.loop/again updatesS+))
- (//////synthesis.loop/again (list#each again updatesS+))
+ (pattern (synthesis.loop/again updatesS+))
+ (synthesis.loop/again (list#each again updatesS+))
- (pattern (//////synthesis.function/abstraction [environment arity bodyS]))
- (//////synthesis.function/abstraction [(list#each (function (_ captured)
- (case captured
- (pattern (//////synthesis.variable var))
- (|> mapping
- (dictionary.value captured)
- (maybe.else var)
- //////synthesis.variable)
+ (pattern (synthesis.function/abstraction [environment arity bodyS]))
+ (synthesis.function/abstraction [(list#each (function (_ captured)
+ (case captured
+ (pattern (synthesis.variable var))
+ (|> mapping
+ (dictionary.value captured)
+ (maybe.else var)
+ synthesis.variable)
- _
- captured))
- environment)
- arity
- bodyS])
+ _
+ captured))
+ environment)
+ arity
+ bodyS])
- (pattern (//////synthesis.function/apply [functionS inputsS+]))
- (//////synthesis.function/apply [(again functionS) (list#each again inputsS+)])
+ (pattern (synthesis.function/apply [functionS inputsS+]))
+ (synthesis.function/apply [(again functionS) (list#each again inputsS+)])
- {//////synthesis.#Extension [name inputsS+]}
- {//////synthesis.#Extension [name (list#each again inputsS+)]})))
+ {synthesis.#Extension [name inputsS+]}
+ {synthesis.#Extension [name (list#each again inputsS+)]})))
(def: $Object
(type.class "java.lang.Object" (list)))
@@ -1273,11 +1273,11 @@
local_mapping (|> environment
list.enumeration
(list#each (function (_ [foreign_id capture])
- [(//////synthesis.variable/foreign foreign_id)
+ [(synthesis.variable/foreign foreign_id)
(|> global_mapping
(dictionary.value capture)
maybe.trusted)]))
- (dictionary.of_list //////synthesis.hash))]
+ (dictionary.of_list synthesis.hash))]
[ownerT name
strict_fp? annotations vars
self_name arguments returnT exceptionsT
@@ -1292,7 +1292,7 @@
... Combine them.
list#conjoint
... Remove duplicates.
- (set.of_list //////synthesis.hash)
+ (set.of_list synthesis.hash)
set.list))
(def: (global_mapping total_environment)
@@ -1302,7 +1302,7 @@
list.enumeration
(list#each (function (_ [id capture])
[capture {//////variable.#Foreign id}]))
- (dictionary.of_list //////synthesis.hash)))
+ (dictionary.of_list synthesis.hash)))
(def: (method_definition phase archive artifact_id method)
(-> Phase Archive artifact.ID (/.Overriden_Method Synthesis) (Operation (Resource Method)))
@@ -1353,14 +1353,14 @@
bytecode (<| (at ! each (\\format.result class.writer))
//////.lifted
(class.class version.v6_0 (all modifier#composite class.public class.final)
- (name.internal anonymous_class_name)
- {.#None}
- (name.internal (..reflection super_class))
- (list#each (|>> ..reflection name.internal) super_interfaces)
- (foreign.variables total_environment)
- (list.partial (..with_anonymous_init class total_environment super_class inputsTI)
- methods!)
- (sequence.sequence)))
+ (name.internal anonymous_class_name)
+ {.#None}
+ (name.internal (..reflection super_class))
+ (list#each (|>> ..reflection name.internal) super_interfaces)
+ (foreign.variables total_environment)
+ (list.partial (..with_anonymous_init class total_environment super_class inputsTI)
+ methods!)
+ (sequence.sequence)))
.let [artifact [anonymous_class_name bytecode]]
_ (//////generation.execute! artifact)
_ (//////generation.save! artifact_id {.#None} artifact)]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
index d3d7c76d6..c454fc422 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text
@@ -38,8 +37,9 @@
["[1][0]" loop]
["[1][0]" function]]]
[//
- ["[0]" synthesis (.only %synthesis)]
["[0]" generation]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
[///
["[1]" phase (.open: "[1]#[0]" monad)]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/host.lux
index f2a8e2938..4ed8013ca 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/lua/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -30,6 +29,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
index 898a3e8b0..384736271 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text (.only)
@@ -33,7 +32,8 @@
["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
["[1][0]" case]]]
[//
- ["[0]" synthesis (.only %synthesis)]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
["[0]" generation]
[///
["[1]" phase]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/host.lux
index 353c6d055..535f01072 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/php/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -30,6 +29,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
index 933f52e74..ef6d301bc 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<[0]>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text (.only)
@@ -40,8 +39,9 @@
["[1][0]" loop]]]
[//
[analysis (.only)]
- ["[0]" synthesis (.only %synthesis)]
["[0]" generation]
+ ["[0]" synthesis (.only %synthesis)
+ ["<[1]>" \\parser (.only Parser)]]
[///
["[1]" phase (.open: "[1]#[0]" monad)]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/host.lux
index e62529746..7ec9d1083 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/python/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
["[0]" text (.only)
["%" \\format]]
@@ -29,6 +28,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
index 530f76072..facbc2e58 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text (.only)
@@ -33,7 +32,8 @@
["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
["[1][0]" case]]]
[//
- ["[0]" synthesis (.only %synthesis)]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
["[0]" generation]
[///
["[1]" phase]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/host.lux
index d03538b0b..8facd6a1a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/r/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -30,6 +29,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
index 07d25add0..6cdacfa40 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text (.only)
@@ -38,8 +37,9 @@
["[1][0]" case]
["[1][0]" loop]]]
[//
- ["[0]" synthesis (.only %synthesis)]
["[0]" generation]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
[///
["[1]" phase (.open: "[1]#[0]" monad)]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/host.lux
index 7dcf5c1cb..89638f972 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/ruby/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -30,6 +29,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
index 0ed822b89..5d4801be1 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/common.lux
@@ -4,10 +4,9 @@
[abstract
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" function]
- ["[0]" try]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["[0]" try]]
[data
["[0]" product]
["[0]" text
@@ -33,8 +32,9 @@
["[1][0]" runtime (.only Operation Phase Handler Bundle Generator)]
["[1][0]" case]]]
[//
- ["[0]" synthesis (.only %synthesis)]
["[0]" generation]
+ ["[0]" synthesis (.only %synthesis)
+ ["<s>" \\parser (.only Parser)]]
[///
["[1]" phase]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/host.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/host.lux
index f14556827..862df2607 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/host.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/extension/generation/scheme/host.lux
@@ -4,9 +4,8 @@
[abstract
["[0]" monad (.only do)]]
[control
- ["[0]" function]
- ["<>" parser (.only)
- ["<s>" synthesis (.only Parser)]]]
+ ["<>" parser]
+ ["[0]" function]]
[data
[collection
["[0]" dictionary]
@@ -30,6 +29,8 @@
with_vars)]]]
["/[1]" //
["[0]" generation]
+ [synthesis
+ ["<s>" \\parser (.only Parser)]]
["//[1]" ///
["[1][0]" phase]]]]]])
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
index fd47dbe30..92c263466 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive.lux
@@ -5,16 +5,16 @@
["[0]" equivalence (.only Equivalence)]
["[0]" monad (.only do)]]
[control
+ ["<>" parser]
["[0]" maybe]
["[0]" try (.only Try)]
["[0]" exception (.only exception:)]
- ["[0]" function]
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["[0]" function]]
[data
["[0]" product]
- [binary (.only Binary)
- ["[0]" \\format (.only Writer)]]
+ ["[0]" binary (.only Binary)
+ ["[0]" \\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]
["[0]" text (.only)
["%" \\format (.only format)]]
[collection
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/module/descriptor.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/module/descriptor.lux
index 75934414f..b661a1587 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/module/descriptor.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/module/descriptor.lux
@@ -4,13 +4,13 @@
[abstract
[equivalence (.only Equivalence)]]
[control
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["<>" parser]]
[data
["[0]" product]
["[0]" text]
- [binary
- ["[0]" \\format (.only Writer)]]
+ ["[0]" binary
+ ["[0]" \\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]
[collection
["[0]" set (.only Set)]]]
[macro
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux
index 684277ae4..ef3073cca 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/module/document.lux
@@ -4,14 +4,14 @@
[abstract
[monad (.only do)]]
[control
+ ["<>" parser]
["[0]" try (.only Try)]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- [binary (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
[collection
["[0]" dictionary (.only Dictionary)]]
["[0]" binary
+ [\\parser (.only Parser)]
["[1]" \\format (.only Writer)]]]
[type (.only sharing)
[primitive (.except)]]]]
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
index ffe3b439f..0f15e8ca7 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/registry.lux
@@ -4,15 +4,15 @@
[abstract
[monad (.only do)]]
[control
+ ["<>" parser]
["[0]" pipe]
["[0]" maybe (.open: "[1]#[0]" functor)]
- ["[0]" exception (.only exception:)]
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["[0]" exception (.only exception:)]]
[data
["[0]" product]
["[0]" binary
- ["[1]" \\format (.only Writer)]]
+ ["[1]" \\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]
["[0]" text (.only)
["%" \\format (.only format)]]
[collection
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/signature.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/signature.lux
index c4d347c21..ac6a22c49 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/signature.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/signature.lux
@@ -4,12 +4,12 @@
[abstract
[equivalence (.only Equivalence)]]
[control
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["<>" parser]]
[data
["[0]" product]
["[0]" binary
- ["[1]" \\format (.only Writer)]]
+ ["[1]" \\format (.only Writer)]
+ ["<[1]>" \\parser (.only Parser)]]
["[0]" text (.only)
["%" \\format (.only format)]]]
[math
diff --git a/stdlib/source/library/lux/tool/compiler/meta/import.lux b/stdlib/source/library/lux/tool/compiler/meta/import.lux
index 977d0536c..dec6dde3b 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/import.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/import.lux
@@ -4,14 +4,14 @@
[abstract
["[0]" monad (.only Monad do)]]
[control
+ ["<>" parser]
["[0]" try (.only Try)]
["[0]" exception (.only exception:)]
[concurrency
- ["[0]" async (.only Async)]]
- ["<>" parser (.only)
- ["<[0]>" binary]]]
+ ["[0]" async (.only Async)]]]
[data
- [binary (.only Binary)]
+ ["[0]" binary (.only Binary)
+ ["<[1]>" \\parser]]
["[0]" text (.only)
["%" \\format]]
[collection
diff --git a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
index 90afd44d8..a192cf58a 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/io/archive.lux
@@ -5,14 +5,14 @@
[abstract
["[0]" monad (.only Monad do)]]
[control
+ ["<>" parser]
["[0]" try (.only Try)]
[concurrency
- ["[0]" async (.only Async) (.open: "[1]#[0]" monad)]]
- ["<>" parser (.only)
- ["<[0]>" binary (.only Parser)]]]
+ ["[0]" async (.only Async) (.open: "[1]#[0]" monad)]]]
[data
- [binary (.only Binary)]
["[0]" product]
+ ["[0]" binary (.only Binary)
+ ["<[1]>" \\parser (.only Parser)]]
["[0]" text (.open: "[1]#[0]" equivalence)
["%" \\format (.only format)]]
[collection