examples/rosettacode: Added s_expression task
authorLucas Bajolet <r4pass@hotmail.com>
Tue, 7 Jul 2015 14:27:17 +0000 (10:27 -0400)
committerLucas Bajolet <r4pass@hotmail.com>
Wed, 8 Jul 2015 14:22:34 +0000 (10:22 -0400)
Signed-off-by: Lucas Bajolet <r4pass@hotmail.com>

examples/rosettacode/s_exp.nit [new file with mode: 0644]
tests/sav/s_exp.res [new file with mode: 0644]

diff --git a/examples/rosettacode/s_exp.nit b/examples/rosettacode/s_exp.nit
new file mode 100644 (file)
index 0000000..e44cec3
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/bin/env nit
+#
+# This file is part of NIT ( http://www.nitlanguage.org ).
+# This program is public domain
+
+# Simple Rosetta-code task : Parsing a S-Expression
+module s_exp
+
+import sexp
+
+var src = """((data "quoted data" 123 4.5)
+(data (!@# (4.5) "(more" "data)")))"""
+
+var sexp = src.to_sexp
+
+if sexp isa SExpError then
+       print sexp
+       exit(1)
+end
+
+print sexp
+
+if sexp isa SExp then print sexp.pretty_to_s
diff --git a/tests/sav/s_exp.res b/tests/sav/s_exp.res
new file mode 100644 (file)
index 0000000..1ce7f52
--- /dev/null
@@ -0,0 +1,20 @@
+((data "quoted data" 123.00 4.50) (data (!@# (4.50) "(more" "data)")))
+(
+       (
+               data
+               "quoted data"
+               123.00
+               4.50
+       )
+       (
+               data
+               (
+                       !@#
+                       (
+                               4.50
+                       )
+                       "(more"
+                       "data)"
+               )
+       )
+)