diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-03-05 15:50:56 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-03-05 18:08:52 +0000 |
| commit | c918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c (patch) | |
| tree | 969cf70453781ef09e9498811aa24a973361ec57 | |
| parent | main page and responsive styling (diff) | |
| download | alive-c918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c.tar.gz alive-c918bdcc7c3ee9c7e2fb9a8ac49c1f35776f551c.zip | |
fix accidentally committed bugs
| -rw-r--r-- | core/builtin.moon | 17 | ||||
| -rw-r--r-- | core/cell.moon | 9 | ||||
| -rw-r--r-- | core/invoke.moon | 3 | ||||
| -rw-r--r-- | init.moon | 1 |
4 files changed, 19 insertions, 11 deletions
diff --git a/core/builtin.moon b/core/builtin.moon index 1ec6a9a..9292fae 100644 --- a/core/builtin.moon +++ b/core/builtin.moon @@ -1,6 +1,7 @@ -- builtin special forms import Action, FnDef from require 'core.base' -import Result, Value from require 'core.value' +import Value from require 'core.value' +import Result from require 'core.result' import Cell from require 'core.cell' import Scope from require 'core.scope' @@ -15,7 +16,7 @@ prints the docstring for sym in the console" result = L\push tail[1]\eval, scope with Result children: { def } value = result\const! - L\print "(doc #{tail[1]\stringify!}):\n#{value.doc}\n" + L\print "(doc #{tail[1]}):\n#{value.doc}\n" class def extends Action @doc: "(def sym1 val-expr1 @@ -68,7 +69,8 @@ name-str has to be an eval-time constant." name = result\const! L\trace @, "loading module #{name}" - Result value: require "lib.#{name\unwrap 'str'}" + scope = Value.wrap require "lib.#{name\unwrap 'str'}" + Result :value class import_ extends Action @doc: "(import sym1 [sym2]...) - require and define modules @@ -81,8 +83,8 @@ requires modules sym1, sym2, ... and defines them as sym1, sym2, ... in the curr for child in *tail name = (child\quote scope)\unwrap 'sym' - scope\set name, Result value: require "lib.#{name}" - + value = Value.wrap require "lib.#{name}" + scope\set name, Result :value -- (require "lib.#{name})\unwrap 'scope' Result! class import_star extends Action @@ -97,7 +99,8 @@ requires modules sym1, sym2, ... and merges them into the current scope" for child in *tail name = (child\quote scope)\unwrap 'sym' - scope\use (require "lib.#{name}")\unwrap 'scope' + value = Value.wrap require "lib.#{name}" + scope\use value\unwrap 'scope' -- (require "lib.#{name}")\unwrap 'scope' Result! @@ -180,7 +183,7 @@ class trace extends Action assert #tail == 1, "'trace' takes exactly one parameter" with result = L\push tail[1]\eval, scope - L\print "trace #{tail[1]\stringify!}: #{result.value}" + L\print "trace #{tail[1]}: #{result.value}" { :doc, :trace diff --git a/core/cell.moon b/core/cell.moon index 724b74e..850a9db 100644 --- a/core/cell.moon +++ b/core/cell.moon @@ -8,7 +8,8 @@ import Tag from require 'core.tag' class Cell -- AST interface eval: (scope) => - head = (@head!\eval scope)\const! + head = assert @head!, "cannot evaluate expr without head" + head = (head\eval scope)\const! Action = switch head.type when 'opdef' -- scope\get 'op-invoke' @@ -47,9 +48,11 @@ class Cell buf ..= if depth > 0 then ' ' else @white[i] if depth > 0 - buf = buf\sub 1, #b@uf - 1 + buf = buf\sub 1, #buf - 1 - '(' .. @tag\stringify! .. buf .. ')' + tag = if depth == -1 then @tag\stringify! else '' + + '(' .. tag .. buf .. ')' -- internal -- tag: the parsed Tag diff --git a/core/invoke.moon b/core/invoke.moon index 3b2ddd5..7ff16dc 100644 --- a/core/invoke.moon +++ b/core/invoke.moon @@ -1,4 +1,5 @@ -import Result, Value from require 'core.value' +import Value from require 'core.value' +import Result from require 'core.result' import Action from require 'core.base' import Scope from require 'core.scope' @@ -16,6 +16,7 @@ for a in *arg Logger.init arguments.log +assert arguments[1], "no filename given" copilot = Copilot arguments[1] while true |
