aboutsummaryrefslogtreecommitdiffstats
path: root/core/builtin.moon
diff options
context:
space:
mode:
Diffstat (limited to 'core/builtin.moon')
-rw-r--r--core/builtin.moon48
1 files changed, 24 insertions, 24 deletions
diff --git a/core/builtin.moon b/core/builtin.moon
index bd3183f..f9087c4 100644
--- a/core/builtin.moon
+++ b/core/builtin.moon
@@ -6,14 +6,14 @@
--
-- @module builtin
import Action, Op, FnDef, Input, match from require 'core.base'
-import Value, LiteralValue from require 'core.value'
+import ValueStream, LiteralValue from require 'core.stream.value'
import Result from require 'core.result'
import Cell from require 'core.cell'
import Scope from require 'core.scope'
import Tag from require 'core.tag'
import op_invoke from require 'core.invoke'
-doc = Value.meta
+doc = ValueStream.meta
meta:
name: 'doc'
summary: "Print documentation in console."
@@ -38,7 +38,7 @@ doc = Value.meta
meta = result.value.meta
L\print "(doc #{tail[1]}):\n#{format_meta meta}\n"
-def = Value.meta
+def = ValueStream.meta
meta:
name: 'def'
summary: "Declare symbols in current scope."
@@ -63,7 +63,7 @@ Define the symbols `sym1`, `sym2`, … to resolve to the values of `val-expr1`,
Result :children
-use = Value.meta
+use = ValueStream.meta
meta:
name: 'use'
summary: "Merge scopes into current scope."
@@ -82,7 +82,7 @@ All arguments have to be evaltime constant."
Result!
-require_ = Value.meta
+require_ = ValueStream.meta
meta:
name: 'require'
summary: "Load a module."
@@ -98,10 +98,10 @@ require_ = Value.meta
name = result\const!
L\trace @, "loading module #{name}"
- scope = Value.wrap require "lib.#{name\unwrap 'str'}"
+ scope = ValueStream.wrap require "lib.#{name\unwrap 'str'}"
Result :value
-import_ = Value.meta
+import_ = ValueStream.meta
meta:
name: 'import'
summary: "Require and define modules."
@@ -117,11 +117,11 @@ current scope."
for child in *tail
name = (child\quote scope)\unwrap 'sym'
- value = Value.wrap require "lib.#{name}"
+ value = ValueStream.wrap require "lib.#{name}"
scope\set name, Result :value -- (require "lib.#{name})\unwrap 'scope'
Result!
-import_star = Value.meta
+import_star = ValueStream.meta
meta:
name: 'import*'
summary: "Require and use modules."
@@ -137,12 +137,12 @@ Requires modules `sym1`, `sym2`, … and merges them into the current scope."
for child in *tail
name = (child\quote scope)\unwrap 'sym'
- value = Value.wrap require "lib.#{name}"
+ value = ValueStream.wrap require "lib.#{name}"
scope\use value\unwrap 'scope' -- (require "lib.#{name}")\unwrap 'scope'
Result!
-fn = Value.meta
+fn = ValueStream.meta
meta:
name: 'fn'
summary: "Declare a function."
@@ -163,13 +163,13 @@ function is invoked."
param\quote scope
body = body\quote scope
- Result value: with Value.wrap FnDef param_symbols, body, scope
+ Result value: with ValueStream.wrap FnDef param_symbols, body, scope
.meta = {
summary: "(user defined function)"
examples: { "(??? #{table.concat [p! for p in *param_symbols], ' '})" }
}
-defn = Value.meta
+defn = ValueStream.meta
meta:
name: 'defn'
summary: "Define a function."
@@ -193,7 +193,7 @@ function is invoked."
body = body\quote scope
- value = with Value.wrap FnDef param_symbols, body, scope
+ value = with ValueStream.wrap FnDef param_symbols, body, scope
.meta =
:name
summary: "(user defined function)"
@@ -202,7 +202,7 @@ function is invoked."
scope\set name, Result :value
Result!
-do_expr = Value.meta
+do_expr = ValueStream.meta
meta:
name: 'do_expr'
summary: "Evaluate multiple expressions in a new scope."
@@ -215,7 +215,7 @@ Evaluate `expr1`, `expr2`, … and return the value of the last expression."
scope = Scope scope
Result children: [expr\eval scope for expr in *tail]
-if_ = Value.meta
+if_ = ValueStream.meta
meta:
name: 'if'
summary: "Make an evaltime const choice."
@@ -240,7 +240,7 @@ to `then-expr`, otherwise it is equivalent to `else-xpr` if given, or nil otherw
elseif xelse
xelse\eval scope
-trace_ = Value.meta
+trace_ = ValueStream.meta
meta:
name: 'trace!'
summary: "Trace an expression's value at evaltime."
@@ -254,7 +254,7 @@ trace_ = Value.meta
with result = L\push tail[1]\eval, scope
L\print "trace! #{tail[1]\stringify!}: #{result.value}"
-trace = Value.meta
+trace = ValueStream.meta
meta:
name: 'trace'
summary: "Trace an expression's values at runtime."
@@ -266,7 +266,7 @@ trace = Value.meta
{ prefix, value } = match 'str any', inputs
super
prefix: Input.cold prefix
- value: Input.value value
+ value: Input.hot value
tick: =>
L\print "trace #{@inputs.prefix!}: #{@inputs.value.stream}"
@@ -278,7 +278,7 @@ trace = Value.meta
tag = @tag\clone Tag.parse '-1'
inner = Cell tag, {
LiteralValue 'opdef', traceOp, 'trace'
- Value.str tostring tail[1]
+ ValueStream.str tostring tail[1]
tail[1]
}
inner\eval scope
@@ -292,17 +292,17 @@ trace = Value.meta
import: import_
'import*': import_star
- true: Value.meta
+ true: ValueStream.meta
meta:
name: 'true'
summary: "The boolean constant `true`."
- value: Value.bool true
+ value: ValueStream.bool true
- false: Value.meta
+ false: ValueStream.meta
meta:
name: 'false'
summary: "The boolean constant `false`."
- value: Value.bool false
+ value: ValueStream.bool false
:fn, :defn
'do': do_expr