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.