diff options
author | Eduardo Julian | 2019-04-09 18:59:33 -0400 |
---|---|---|
committer | Eduardo Julian | 2019-04-09 18:59:33 -0400 |
commit | 6c3e9f8c02ce153380392ba5bc8eeb517de5f781 (patch) | |
tree | 758b5cfa843b040421299e8dfcd115ae3b79067d /stdlib | |
parent | 1a8f93c02a68d7b3968916c14155a391871d6340 (diff) |
WIP: Ruby compiler.
Diffstat (limited to '')
5 files changed, 6 insertions, 8 deletions
diff --git a/stdlib/source/lux/host/ruby.lux b/stdlib/source/lux/host/ruby.lux index 6bf113ed0..8f54bbdeb 100644 --- a/stdlib/source/lux/host/ruby.lux +++ b/stdlib/source/lux/host/ruby.lux @@ -57,8 +57,6 @@ [Literal Computation] [Access Location] - [Loop Statement] - [Label Code] ) (template [<var> <brand> <prefix> <constructor>] diff --git a/stdlib/source/lux/tool/compiler/phase/generation/ruby/case.lux b/stdlib/source/lux/tool/compiler/phase/generation/ruby/case.lux index 7bc52c318..01b405dff 100644 --- a/stdlib/source/lux/tool/compiler/phase/generation/ruby/case.lux +++ b/stdlib/source/lux/tool/compiler/phase/generation/ruby/case.lux @@ -41,7 +41,7 @@ (wrap (|> bodyO _.return (_.lambda #.None (list (..register register))) - (_.apply/* (list valueO)))))) + (_.do "call" (list valueO)))))) (def: #export (record-get generate valueS pathP) (-> Phase Synthesis (List (Either Nat Nat)) diff --git a/stdlib/source/lux/tool/compiler/phase/generation/ruby/function.lux b/stdlib/source/lux/tool/compiler/phase/generation/ruby/function.lux index 486b68592..be12aa2e2 100644 --- a/stdlib/source/lux/tool/compiler/phase/generation/ruby/function.lux +++ b/stdlib/source/lux/tool/compiler/phase/generation/ruby/function.lux @@ -29,7 +29,7 @@ (do ////.monad [functionO (generate functionS) argsO+ (monad.map @ generate argsS+)] - (wrap (_.apply/* argsO+ functionO)))) + (wrap (_.do "call" argsO+ functionO)))) (def: #export capture (///reference.foreign _.local)) diff --git a/stdlib/source/lux/tool/compiler/phase/generation/ruby/reference.lux b/stdlib/source/lux/tool/compiler/phase/generation/ruby/reference.lux index 6ff021863..a5dcc1302 100644 --- a/stdlib/source/lux/tool/compiler/phase/generation/ruby/reference.lux +++ b/stdlib/source/lux/tool/compiler/phase/generation/ruby/reference.lux @@ -7,5 +7,5 @@ ["." reference]]]) (def: #export system - (reference.system (: (-> Text (Expression Any)) _.local) + (reference.system (: (-> Text (Expression Any)) _.global) (: (-> Text (Expression Any)) _.local))) diff --git a/stdlib/source/lux/tool/compiler/phase/generation/ruby/runtime.lux b/stdlib/source/lux/tool/compiler/phase/generation/ruby/runtime.lux index b3dcbd8ee..e39e6af8e 100644 --- a/stdlib/source/lux/tool/compiler/phase/generation/ruby/runtime.lux +++ b/stdlib/source/lux/tool/compiler/phase/generation/ruby/runtime.lux @@ -162,9 +162,9 @@ (runtime: (sum//get sum wantsLast wantedTag) (let [no-match! (_.return _.nil) - sum-tag (_.nth (_.int +0) sum) - sum-flag (_.nth (_.int +1) sum) - sum-value (_.nth (_.int +2) sum) + sum-tag (_.nth (_.string ..variant-tag-field) sum) + sum-flag (_.nth (_.string ..variant-flag-field) sum) + sum-value (_.nth (_.string ..variant-value-field) sum) is-last? (_.= (_.string "") sum-flag) test-recursion! (_.if is-last? ## Must recurse. |