aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-03-02 13:16:21 +0000
committers-ol <s-ol@users.noreply.github.com>2020-03-02 13:16:21 +0000
commitdf91fee4a7bb17f8822a0a5637533257d30e0743 (patch)
tree54f1a3a7bc7b850cc4b0a87296670612274ca518 /core
parentconvert lib.time to IO (diff)
downloadalive-df91fee4a7bb17f8822a0a5637533257d30e0743.tar.gz
alive-df91fee4a7bb17f8822a0a5637533257d30e0743.zip
update lib.math and lib.logic to new op interface
Diffstat (limited to 'core')
-rw-r--r--core/base.moon2
-rw-r--r--core/parsing.moon2
-rw-r--r--core/value.moon5
3 files changed, 7 insertions, 2 deletions
diff --git a/core/base.moon b/core/base.moon
index cf3d146..c6ea694 100644
--- a/core/base.moon
+++ b/core/base.moon
@@ -31,7 +31,7 @@ class Input
--
-- during setup, only marked dirty if old and new stream differ in value
class ValueInput extends Input
- merge: (old) => @dirty_setup = not old or @stream\unwrap! != old\unwrap!
+ merge: (old) => @dirty_setup = not old or @stream != old.stream
finish_setup: => @dirty_setup = false
dirty: => @dirty_setup or @stream\dirty!
diff --git a/core/parsing.moon b/core/parsing.moon
index ac4f878..e919c41 100644
--- a/core/parsing.moon
+++ b/core/parsing.moon
@@ -15,7 +15,7 @@ mspace = (comment + wc)^0 / 1 -- optional whitespace
-- atoms
digit = R '09'
-first = (R 'az', 'AZ') + S '-_+*/.!?='
+first = (R 'az', 'AZ') + S '-_+*/.!?=%'
sym = first * (first + digit)^0 / Value\parse 'sym'
strd = '"' * (C ((P '\\"') + (P '\\\\') + (1 - P '"'))^0) * '"' / Value\parse 'str', '\"'
diff --git a/core/value.moon b/core/value.moon
index d4a0de3..b882507 100644
--- a/core/value.moon
+++ b/core/value.moon
@@ -46,6 +46,11 @@ class Result
assert not (next @side_inputs), msg or "eval-time const expected"
@value
+ -- asserts a value exists and returns its type
+ type: =>
+ assert @value, "Result with value expected"
+ @value.type
+
-- create a value-copy of this result that has the same impulses but without
-- affecting the original's update logic
make_ref: =>