From f4ca44d9e155da79632415dbbf9c4ca9eb210f56 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 31 Oct 2017 18:09:58 -0400 Subject: - Re-named "expr" module to "expression". --- new-luxc/source/luxc/generator/expr.jvm.lux | 78 ----------------------- new-luxc/source/luxc/generator/expression.jvm.lux | 78 +++++++++++++++++++++++ new-luxc/source/luxc/generator/statement.jvm.lux | 4 +- 3 files changed, 79 insertions(+), 81 deletions(-) delete mode 100644 new-luxc/source/luxc/generator/expr.jvm.lux create mode 100644 new-luxc/source/luxc/generator/expression.jvm.lux (limited to 'new-luxc/source/luxc/generator') diff --git a/new-luxc/source/luxc/generator/expr.jvm.lux b/new-luxc/source/luxc/generator/expr.jvm.lux deleted file mode 100644 index 61120ef86..000000000 --- a/new-luxc/source/luxc/generator/expr.jvm.lux +++ /dev/null @@ -1,78 +0,0 @@ -(;module: - lux - (lux (control monad - ["ex" exception #+ exception:] - ["p" parser]) - (data ["e" error] - text/format) - [meta] - (meta ["s" syntax])) - (luxc ["&" base] - (lang ["ls" synthesis]) - ["&;" analyser] - ["&;" synthesizer] - (synthesizer [";S" function]) - (generator ["&;" common] - ["&;" primitive] - ["&;" structure] - ["&;" eval] - ["&;" procedure] - ["&;" function] - ["&;" reference] - [";G" case] - (host ["$" jvm])))) - -(exception: #export Unrecognized-Synthesis) - -(def: #export (generate synthesis) - (-> ls;Synthesis (Meta $;Inst)) - (case synthesis - (^code []) - &primitive;generate-unit - - (^code [(~ singleton)]) - (generate singleton) - - (^template [ ] - [_ ( value)] - ( value)) - ([#;Bool &primitive;generate-bool] - [#;Nat &primitive;generate-nat] - [#;Int &primitive;generate-int] - [#;Deg &primitive;generate-deg] - [#;Frac &primitive;generate-frac] - [#;Text &primitive;generate-text]) - - (^code ((~ [_ (#;Nat tag)]) (~ [_ (#;Bool last?)]) (~ valueS))) - (&structure;generate-variant generate tag last? valueS) - - (^code [(~@ members)]) - (&structure;generate-tuple generate members) - - (^ [_ (#;Form (list [_ (#;Int var)]))]) - (if (functionS;captured? var) - (&reference;generate-captured var) - (&reference;generate-variable var)) - - [_ (#;Symbol definition)] - (&reference;generate-definition definition) - - (^code ("lux let" (~ [_ (#;Nat register)]) (~ inputS) (~ exprS))) - (caseG;generate-let generate register inputS exprS) - - (^code ("lux case" (~ inputS) (~ pathPS))) - (caseG;generate-case generate inputS pathPS) - - (^multi (^code ("lux function" (~ [_ (#;Nat arity)]) [(~@ environment)] (~ bodyS))) - [(s;run environment (p;some s;int)) (#e;Success environment)]) - (&function;generate-function generate environment arity bodyS) - - (^code ("lux call" (~ functionS) (~@ argsS))) - (&function;generate-call generate functionS argsS) - - (^code ((~ [_ (#;Text procedure)]) (~@ argsS))) - (&procedure;generate-procedure generate procedure argsS) - - _ - (&;throw Unrecognized-Synthesis (%code synthesis)) - )) diff --git a/new-luxc/source/luxc/generator/expression.jvm.lux b/new-luxc/source/luxc/generator/expression.jvm.lux new file mode 100644 index 000000000..61120ef86 --- /dev/null +++ b/new-luxc/source/luxc/generator/expression.jvm.lux @@ -0,0 +1,78 @@ +(;module: + lux + (lux (control monad + ["ex" exception #+ exception:] + ["p" parser]) + (data ["e" error] + text/format) + [meta] + (meta ["s" syntax])) + (luxc ["&" base] + (lang ["ls" synthesis]) + ["&;" analyser] + ["&;" synthesizer] + (synthesizer [";S" function]) + (generator ["&;" common] + ["&;" primitive] + ["&;" structure] + ["&;" eval] + ["&;" procedure] + ["&;" function] + ["&;" reference] + [";G" case] + (host ["$" jvm])))) + +(exception: #export Unrecognized-Synthesis) + +(def: #export (generate synthesis) + (-> ls;Synthesis (Meta $;Inst)) + (case synthesis + (^code []) + &primitive;generate-unit + + (^code [(~ singleton)]) + (generate singleton) + + (^template [ ] + [_ ( value)] + ( value)) + ([#;Bool &primitive;generate-bool] + [#;Nat &primitive;generate-nat] + [#;Int &primitive;generate-int] + [#;Deg &primitive;generate-deg] + [#;Frac &primitive;generate-frac] + [#;Text &primitive;generate-text]) + + (^code ((~ [_ (#;Nat tag)]) (~ [_ (#;Bool last?)]) (~ valueS))) + (&structure;generate-variant generate tag last? valueS) + + (^code [(~@ members)]) + (&structure;generate-tuple generate members) + + (^ [_ (#;Form (list [_ (#;Int var)]))]) + (if (functionS;captured? var) + (&reference;generate-captured var) + (&reference;generate-variable var)) + + [_ (#;Symbol definition)] + (&reference;generate-definition definition) + + (^code ("lux let" (~ [_ (#;Nat register)]) (~ inputS) (~ exprS))) + (caseG;generate-let generate register inputS exprS) + + (^code ("lux case" (~ inputS) (~ pathPS))) + (caseG;generate-case generate inputS pathPS) + + (^multi (^code ("lux function" (~ [_ (#;Nat arity)]) [(~@ environment)] (~ bodyS))) + [(s;run environment (p;some s;int)) (#e;Success environment)]) + (&function;generate-function generate environment arity bodyS) + + (^code ("lux call" (~ functionS) (~@ argsS))) + (&function;generate-call generate functionS argsS) + + (^code ((~ [_ (#;Text procedure)]) (~@ argsS))) + (&procedure;generate-procedure generate procedure argsS) + + _ + (&;throw Unrecognized-Synthesis (%code synthesis)) + )) diff --git a/new-luxc/source/luxc/generator/statement.jvm.lux b/new-luxc/source/luxc/generator/statement.jvm.lux index 830935dda..6df522fb8 100644 --- a/new-luxc/source/luxc/generator/statement.jvm.lux +++ b/new-luxc/source/luxc/generator/statement.jvm.lux @@ -2,7 +2,6 @@ lux (lux (control monad ["ex" exception #+ exception:]) - (concurrency ["T" task]) (data ["e" error] [maybe] [text "text/" Monoid] @@ -14,8 +13,7 @@ ["&;" scope] ["&;" module] ["&;" io] - (generator ["&;" expr] - ["&;" eval] + (generator ["&;" eval] ["&;" common] (host ["$" jvm] (jvm ["$t" type] -- cgit v1.2.3