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/eval.lux | 4 +- new-luxc/source/luxc/generator.lux | 8 +-- 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 +- 5 files changed, 85 insertions(+), 87 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') diff --git a/new-luxc/source/luxc/eval.lux b/new-luxc/source/luxc/eval.lux index 59c31abc7..91195fbfd 100644 --- a/new-luxc/source/luxc/eval.lux +++ b/new-luxc/source/luxc/eval.lux @@ -5,7 +5,7 @@ [../base] (.. [analyser] [synthesizer] - (generator [expr] + (generator [";G" expression] [eval]))) (def: #export (eval type exprC) @@ -14,5 +14,5 @@ [exprA (../base;with-expected-type type (analyser;analyser eval exprC)) #let [exprS (synthesizer;synthesize exprA)] - exprI (expr;generate exprS)] + exprI (expressionG;generate exprS)] (eval;eval exprI))) diff --git a/new-luxc/source/luxc/generator.lux b/new-luxc/source/luxc/generator.lux index ad5f578e3..90e0ca4cf 100644 --- a/new-luxc/source/luxc/generator.lux +++ b/new-luxc/source/luxc/generator.lux @@ -22,7 +22,7 @@ (generator ["&&;" runtime] ["&&;" statement] ["&&;" common] - ["&&;" expr] + [";G" expression] ["&&;" eval]) )) @@ -41,7 +41,7 @@ [[_ metaA] (&;with-scope (&;with-expected-type Code (analyse metaC))) - metaI (&&expr;generate (&synthesizer;synthesize metaA)) + metaI (expressionG;generate (&synthesizer;synthesize metaA)) metaV (&&eval;eval metaI) [_ valueT valueA] (&;with-scope (if (meta;type? (:! Code metaV)) @@ -51,7 +51,7 @@ (wrap [Type valueA]))) (&analyser/common;with-unknown-type (analyse valueC)))) - valueI (&&expr;generate (&synthesizer;synthesize valueA)) + valueI (expressionG;generate (&synthesizer;synthesize valueA)) _ (&;with-scope (&&statement;generate-def def-name valueT valueI metaI (:! Code metaV)))] (wrap [])) @@ -63,7 +63,7 @@ [[_ programA] (&;with-scope (&;with-expected-type (type (io;IO Unit)) (analyse programC))) - programI (&&expr;generate (&synthesizer;synthesize programA))] + programI (expressionG;generate (&synthesizer;synthesize programA))] (&&statement;generate-program program-args programI)) _ 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