From 9eaaaf953ba7ce1eeb805603f4e113aa15f5178f Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 8 Jan 2018 21:40:06 -0400 Subject: - Moved all translation code under the JVM path (in preparation for porting the JS back-end). --- .../source/luxc/lang/translation/reference.jvm.lux | 49 ---------------------- 1 file changed, 49 deletions(-) delete mode 100644 new-luxc/source/luxc/lang/translation/reference.jvm.lux (limited to 'new-luxc/source/luxc/lang/translation/reference.jvm.lux') diff --git a/new-luxc/source/luxc/lang/translation/reference.jvm.lux b/new-luxc/source/luxc/lang/translation/reference.jvm.lux deleted file mode 100644 index bfb5856d4..000000000 --- a/new-luxc/source/luxc/lang/translation/reference.jvm.lux +++ /dev/null @@ -1,49 +0,0 @@ -(.module: - lux - (lux (control [monad #+ do]) - (data [text "text/" Hash] - text/format) - [macro "macro/" Monad]) - (luxc ["&" lang] - (lang [".L" host] - (host ["$" jvm] - (jvm ["$t" type] - ["$i" inst])) - ["ls" synthesis] - [".L" variable #+ Variable] - (translation [".T" common])))) - -(do-template [ ] - [(def: #export ( idx) - (-> Nat Text) - (|> idx nat-to-int %i (format )))] - - [captured "c"] - [partial "p"] - ) - -(def: #export (translate-captured variable) - (-> Variable (Meta $.Inst)) - (do macro.Monad - [this-module macro.current-module-name - function-class hostL.context - #let [function-class (format (text.replace-all "/" "." this-module) "." function-class)]] - (wrap (|>> ($i.ALOAD +0) - ($i.GETFIELD function-class - (|> variable i/inc (i/* -1) int-to-nat captured) - commonT.$Object))))) - -(def: #export (translate-local variable) - (-> Variable (Meta $.Inst)) - (macro/wrap ($i.ALOAD (int-to-nat variable)))) - -(def: #export (translate-variable variable) - (-> Variable (Meta $.Inst)) - (if (variableL.captured? variable) - (translate-captured variable) - (translate-local variable))) - -(def: #export (translate-definition [def-module def-name]) - (-> Ident (Meta $.Inst)) - (let [bytecode-name (format def-module "/" (&.normalize-name def-name) (%n (text/hash def-name)))] - (macro/wrap ($i.GETSTATIC bytecode-name commonT.value-field commonT.$Object)))) -- cgit v1.2.3