aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xdist/release.sh2
-rw-r--r--spec/e2e/imports/a.alv4
-rw-r--r--spec/e2e/imports/b.alv3
-rw-r--r--spec/e2e/imports/c.alv6
-rw-r--r--spec/e2e/imports/main.alv8
-rw-r--r--spec/e2e/test-comments.alv6
-rw-r--r--spec/e2e/test-do.alv3
-rw-r--r--spec/e2e/test-empty.alv0
-rw-r--r--spec/e2e/test-every.alv3
-rw-r--r--spec/e2e/test-fn.alv10
-rw-r--r--spec/e2e/test-index.alv9
-rw-r--r--spec/e2e/test-literals.alv5
-rw-r--r--spec/e2e/test-math.alv14
-rw-r--r--spec/e2e/test-pure-math.alv16
-rw-r--r--spec/e2e/test-require-required.alv1
-rw-r--r--spec/e2e/test-require.alv1
-rw-r--r--spec/e2e/test-seq.alv10
-rw-r--r--spec/lang/switch_spec.moon4
18 files changed, 105 insertions, 0 deletions
diff --git a/dist/release.sh b/dist/release.sh
index 811ddb2..d80f371 100755
--- a/dist/release.sh
+++ b/dist/release.sh
@@ -101,6 +101,7 @@ build = {
install = {
lua = {
$(list_modules alv)
+ ["alv.copilot.love.main"] = "alv/copilot/love/main.lua",
$(list_modules alv-lib)
},
@@ -108,6 +109,7 @@ $(list_modules alv-lib)
"bin/alv",
"bin/alv-wx",
"bin/alv-fltk",
+ "bin/alv-love",
},
},
}
diff --git a/spec/e2e/imports/a.alv b/spec/e2e/imports/a.alv
new file mode 100644
index 0000000..39ae075
--- /dev/null
+++ b/spec/e2e/imports/a.alv
@@ -0,0 +1,4 @@
+([4]import* string)
+([1]export
+ ([3]print "RUNNING A.ALV")
+ ([2]def hello "hello - A"))
diff --git a/spec/e2e/imports/b.alv b/spec/e2e/imports/b.alv
new file mode 100644
index 0000000..d926d47
--- /dev/null
+++ b/spec/e2e/imports/b.alv
@@ -0,0 +1,3 @@
+([3]print "RUNNING B.ALV")
+([1]def hello "hello - B")
+([2]export* hello)
diff --git a/spec/e2e/imports/c.alv b/spec/e2e/imports/c.alv
new file mode 100644
index 0000000..5cca45c
--- /dev/null
+++ b/spec/e2e/imports/c.alv
@@ -0,0 +1,6 @@
+([1]print "RUNNING C.ALV")
+
+([3]import a string)
+
+([4]def hello ([5]string/.. a/hello " from C"))
+([2]export*)
diff --git a/spec/e2e/imports/main.alv b/spec/e2e/imports/main.alv
new file mode 100644
index 0000000..94af19e
--- /dev/null
+++ b/spec/e2e/imports/main.alv
@@ -0,0 +1,8 @@
+([5]print "START OF MAIN")
+#([1]import a b c)
+([1]import a)
+([6]print "IMPORTS DONE")
+
+([2]print a/hello)
+#([3]print b/hello)
+#([4]print c/hello)
diff --git a/spec/e2e/test-comments.alv b/spec/e2e/test-comments.alv
new file mode 100644
index 0000000..3986bd5
--- /dev/null
+++ b/spec/e2e/test-comments.alv
@@ -0,0 +1,6 @@
+#(this is
+(a long)
+comment!)
+
+
+#(nothing here!)
diff --git a/spec/e2e/test-do.alv b/spec/e2e/test-do.alv
new file mode 100644
index 0000000..f4c8c36
--- /dev/null
+++ b/spec/e2e/test-do.alv
@@ -0,0 +1,3 @@
+([1]print ([2]do
+ "fail"
+ "success"))
diff --git a/spec/e2e/test-empty.alv b/spec/e2e/test-empty.alv
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/spec/e2e/test-empty.alv
diff --git a/spec/e2e/test-every.alv b/spec/e2e/test-every.alv
new file mode 100644
index 0000000..779a80a
--- /dev/null
+++ b/spec/e2e/test-every.alv
@@ -0,0 +1,3 @@
+([1]import* time)
+
+([2]print ([3]every 1 "hello"))
diff --git a/spec/e2e/test-fn.alv b/spec/e2e/test-fn.alv
new file mode 100644
index 0000000..e3c5b13
--- /dev/null
+++ b/spec/e2e/test-fn.alv
@@ -0,0 +1,10 @@
+([1]import* math array-)
+
+([2]defn my-plus (a b)
+ ([13]+ a b))
+
+([3]defn apply-op (op arr)
+ ([7]op ([8]get arr 0) ([9]get arr 1)))
+
+([4]trace ([5]apply-op + ([6]array 2 3)))
+([10]trace ([11]apply-op my-plus ([12]array 2 3)))
diff --git a/spec/e2e/test-index.alv b/spec/e2e/test-index.alv
new file mode 100644
index 0000000..3a06047
--- /dev/null
+++ b/spec/e2e/test-index.alv
@@ -0,0 +1,9 @@
+([10]import array- struct-)
+
+([2]def notes ([3]array
+ ([5]struct 'note' 'a' 'octave' 3)
+ ([6]struct 'note' 'e' 'octave' 3)
+ ([7]struct 'note' 'f' 'octave' 2)))
+
+([4]trace notes)
+([8]trace ([9]struct-/get ([11]array-/get notes 1) "octave"))
diff --git a/spec/e2e/test-literals.alv b/spec/e2e/test-literals.alv
new file mode 100644
index 0000000..10f950c
--- /dev/null
+++ b/spec/e2e/test-literals.alv
@@ -0,0 +1,5 @@
+([2]trace "hello")
+([3]trace 2)
+([1]trace true)
+([4]trace ([5]struct "a" 2 "b" 3))
+([6]trace ([7]array 1 2 3 4))
diff --git a/spec/e2e/test-math.alv b/spec/e2e/test-math.alv
new file mode 100644
index 0000000..e1c9498
--- /dev/null
+++ b/spec/e2e/test-math.alv
@@ -0,0 +1,14 @@
+([1]import* math)
+
+([2]trace ([3]min 1 2 3))
+([4]trace ([5]max 1 2 3))
+
+([6]trace ([7]% 5 3))
+([18]trace ([19]even 2 4))
+
+([8]trace ([9]* 2 3 4))
+([10]trace ([11]/ 4 2 2))
+
+([12]trace ([13]cos 0))
+([14]trace ([15]log 10))
+([16]trace ([17]log 0.5 2))
diff --git a/spec/e2e/test-pure-math.alv b/spec/e2e/test-pure-math.alv
new file mode 100644
index 0000000..6069d8a
--- /dev/null
+++ b/spec/e2e/test-pure-math.alv
@@ -0,0 +1,16 @@
+([1]import* math time)
+
+([18]def i ([19]every 2 1))
+
+([2]trace ([3]min i 2 3))
+([4]trace ([5]max i 2 3))
+
+([6]trace ([7]% i 3))
+([20]trace ([21]even i 4))
+
+([8]trace ([9]* i 3 4))
+([10]trace ([11]/ i 2 2))
+
+([12]trace ([13]cos i))
+([14]trace ([15]log i))
+([16]trace ([17]log i 2))
diff --git a/spec/e2e/test-require-required.alv b/spec/e2e/test-require-required.alv
new file mode 100644
index 0000000..e1baeaa
--- /dev/null
+++ b/spec/e2e/test-require-required.alv
@@ -0,0 +1 @@
+"success"
diff --git a/spec/e2e/test-require.alv b/spec/e2e/test-require.alv
new file mode 100644
index 0000000..5e3dc91
--- /dev/null
+++ b/spec/e2e/test-require.alv
@@ -0,0 +1 @@
+([1]print ([2]require "test-require-required"))
diff --git a/spec/e2e/test-seq.alv b/spec/e2e/test-seq.alv
new file mode 100644
index 0000000..136bfb6
--- /dev/null
+++ b/spec/e2e/test-seq.alv
@@ -0,0 +1,10 @@
+([1]import* time)
+
+#([2]trace ([3]val-seq 0 "start" 5 "a" 1 "b" 0.5 "c" 0.25))
+
+#([2]trace ([3]bang-seq 0.3 0.3 0.6))
+
+([4]trace ([2]switch ([3]every 0.5)
+ 1
+ 2
+ 3))
diff --git a/spec/lang/switch_spec.moon b/spec/lang/switch_spec.moon
new file mode 100644
index 0000000..eeda2cf
--- /dev/null
+++ b/spec/lang/switch_spec.moon
@@ -0,0 +1,4 @@
+import TestPilot from require 'spec.test_setup'
+
+describe "switch", ->
+ COPILOT = TestPilot!