OSDN Git Service

[FIX]generate Ast bug
authormzp <mzpppp@gmail.com>
Sat, 22 Nov 2008 08:32:55 +0000 (17:32 +0900)
committermzp <mzpppp@gmail.com>
Sat, 22 Nov 2008 08:32:55 +0000 (17:32 +0900)
src/lisp.ml
test/test_lisp.ml

index b0b7085..f03304d 100644 (file)
@@ -150,12 +150,8 @@ let stmt =
   parser
       [< s = list p_stmt >] ->
        s
-    | [< xs = many1 expr >] ->
-       match xs with
-           [x] ->
-             ClosTrans.Plain (Ast.Expr x)
-         | xs ->
-             ClosTrans.Plain (Ast.Expr (Ast.Block xs))
+    | [< x = expr >] ->
+       ClosTrans.Plain (Ast.Expr x)
 
 let compile stream = 
   try
index b5537ea..79d0908 100644 (file)
@@ -159,6 +159,11 @@ let _ =
            Lisp.compile_string "(define x 42)";
          ok [Plain (Define (node "f",Lambda ([node "x"],Block [int 42])))] @@
            Lisp.compile_string "(define (f x) 42)");
+     "bug()" >::
+       (fun () ->
+         ok [Plain (Expr (int 10));
+             Plain (Define (node "x",Block [int 42]))] @@
+           Lisp.compile_string "10 (define x 42)");
      "class" >::
        (fun () ->
          ok [define_class "Foo" ("","Object") ["x";"y"]] @@