Changes by: Nathaniel Gray (n8gray at caltech.edu)
Date: 2004-08-06 17:23:21 -0700 (Fri, 06 Aug 2004)
Revision: 6117
Log message:

      The parser now supports mutual recursion, of the form:
          let rec foo(x, y) = 27*x + y - baz(x*y)
              and bar(z) = foo(2, z)
              and baz(w) = w*w
          in e
      
      converting this to a term like:
          ULetFunDecl{| foo:UTy; bar:UTy; baz:UTy >-
          ULetFunDef{| FunDef{'foo; ULambda{...}}; FunDef{'bar; ULambda{...}};
              FunDef{'bar; ULambda{...}} >- e |} |}
      
      I also added display forms that seem to work ok, though the paren precedence for
      lambdas is a bit wacky.  This is a pre-existing condition, however.
      

Changes  Path
+30 -1 mpcompiler-branches/letfun/mmc/core/mmc_core_ast.ml
+7 -0 mpcompiler-branches/letfun/mmc/core/mmc_core_ast.mli
+24 -1 mpcompiler-branches/letfun/mmc/test/mmc_core_test.ml
+73 -48 mpcompiler-branches/letfun/mmc/test/syntax.pho
+2 -1 mpcompiler-branches/letfun/util/mm_dform_util.ml