aboutsummaryrefslogtreecommitdiffstats
path: root/alv/base
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2025-04-05 17:48:08 +0000
committers-ol <s+removethis@s-ol.nu>2025-04-07 10:33:17 +0000
commit6d05263540b4a50f8d2ccb70b69ed6760e2ab691 (patch)
tree36c130068e18712181a6d7db095ed8092d12b694 /alv/base
parentpropagate dynamic scope in require/import (diff)
downloadalive-6d05263540b4a50f8d2ccb70b69ed6760e2ab691.tar.gz
alive-6d05263540b4a50f8d2ccb70b69ed6760e2ab691.zip
template strings as syntax sugar for Ops
Diffstat (limited to 'alv/base')
-rw-r--r--alv/base/builtin.moon12
-rw-r--r--alv/base/init.moon6
2 files changed, 4 insertions, 14 deletions
diff --git a/alv/base/builtin.moon b/alv/base/builtin.moon
index 4b8ee5a..558a65a 100644
--- a/alv/base/builtin.moon
+++ b/alv/base/builtin.moon
@@ -6,7 +6,6 @@
-- See `builtin` and `invoke` for examples.
--
-- @classmod Builtin
-import TemplateString from require 'alv.template_string'
class Builtin
--- Builtin interface.
@@ -108,16 +107,7 @@ class Builtin
else
builtin\setup nil
- tail = {}
- for child in *cell\tail!
- if child.__class == TemplateString
- table.insert tail, child.string
- for inner in *child.children
- table.insert tail, inner
- else
- table.insert tail, child
-
- builtin\eval scope, tail
+ builtin\eval scope, cell\tail!
__tostring: => "<#{@@__name}[#{@tag}] #{@head}>"
__inherited: (cls) => cls.__base.__tostring = @__tostring
diff --git a/alv/base/init.moon b/alv/base/init.moon
index a5d0b88..f7eb0e2 100644
--- a/alv/base/init.moon
+++ b/alv/base/init.moon
@@ -20,7 +20,6 @@
-- @see type.Primitive
-- @see type.Array
-- @see type.Struct
--- @see TemplateString
-- @see RTNode
-- @see Error
@@ -32,7 +31,7 @@ import Input from require 'alv.base.input'
import const, sig, evt, any from require 'alv.base.match'
import Constant, SigStream, EvtStream from require 'alv.result'
import T, Primitive, Array, Struct from require 'alv.type'
-import TemplateString from require 'alv.template_string'
+import TemplateString from require 'alv.cell'
import RTNode from require 'alv.rtnode'
import Error from require 'alv.error'
@@ -51,7 +50,8 @@ import Error from require 'alv.error'
-- Types
:T, :Primitive, :Array, :Struct
- :TemplateString
:RTNode
:Error
+
+ template_subst: TemplateString.subst
}