8 Node.filename = "<string>";
15 Int {value=x}, Int {value=y} ->
17 | String {value=x}, String {value=y} ->
19 | Float {value=x}, Float {value=y} ->
21 | Bool {value=x}, Bool {value=y} ->
23 | Symbol {value=x}, Symbol {value=y} ->
25 | List {value=x}, List {value=y} ->
34 ~cmp:(fun a b -> List.for_all2 eq a b)
35 ~printer:(String.concat ";\n" $ List.map Sexp.to_string)
53 ("S expression module test" >::: [
57 ~printer:(String.concat ";\n" $ List.map Sexp.to_string)
59 String (pos "str" 1 0 5);
60 Float (pos 42.0 2 0 4);
61 Bool (pos true 3 0 2);
62 Bool (pos false 3 3 5);
63 Symbol (pos "hoge" 4 0 4);
64 List (pos [Symbol (pos "a" 5 1 2);
65 Symbol (pos "b" 5 3 4);
66 Symbol (pos "c" 5 5 6)] 5 0 7)] @@
84 ok [bool false] "#f");
88 ok [float 42.5] "42.5");
91 ok [string ""] "\"\"";
92 ok [string "foo"] "\"foo\"";
93 ok [string "foo\"x"] "\"foo\\\"x\"";
94 ok [string "foo\""] "\"foo\\\"\"");
97 ok [string "foo"] "\"foo\"";
98 ok [string "+"] "\"+\"";
102 ok [list [symbol "+"; int 1; int 2]]
106 ok [list [symbol "print"; string "hello"]]
107 "(print \"hello\")");
110 ok [list [symbol "print"; string "hello"]]
111 "[print \"hello\"]");
114 ok [list [symbol "quote"; symbol "hello"]]
116 ok [list [symbol "quote"; symbol "hello"]]