aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ast_spec.moon
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ast_spec.moon')
-rw-r--r--spec/ast_spec.moon15
1 files changed, 15 insertions, 0 deletions
diff --git a/spec/ast_spec.moon b/spec/ast_spec.moon
new file mode 100644
index 0000000..402ce03
--- /dev/null
+++ b/spec/ast_spec.moon
@@ -0,0 +1,15 @@
+import Atom, Xpr from require 'ast'
+
+describe 'Xpr', ->
+ it 'can be walked', ->
+ aa = Xpr { '', (Atom '1', '', 1), '' }
+ ab = Xpr { '', (Atom '2', '', 2), '' }
+ ac = Xpr { '', (Atom '3', '', 3), '' }
+ b = Xpr { '', aa, ' ', ab, '' }
+
+ root = Xpr { '', ac, ' ', b, '' }, 'naked'
+
+ iter = root\walk_sexpr!
+ for res in *{ ac, b, aa, ab }
+ assert.is.equal res, iter!
+ assert.is.nil iter!