summaryrefslogtreecommitdiff
path: root/src/elab_print.sml
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adamc@hcoop.net>2008-06-19 16:04:28 -0400
committerGravatar Adam Chlipala <adamc@hcoop.net>2008-06-19 16:04:28 -0400
commit7a1c5e1780fd3c56d9c591821905bb3b3bbfa50a (patch)
tree1ea265b32102b42663cc227b04c8c4e86e4b136f /src/elab_print.sml
parent5a4ddea95a551c5f95f0dcbda433fe457b61d25a (diff)
Beginning of functor elaboration
Diffstat (limited to 'src/elab_print.sml')
-rw-r--r--src/elab_print.sml35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/elab_print.sml b/src/elab_print.sml
index b214d5d4..03792e03 100644
--- a/src/elab_print.sml
+++ b/src/elab_print.sml
@@ -310,6 +310,19 @@ and p_sgn env (sgn, _) =
newline,
string "end"]
| SgnVar n => string (#1 (E.lookupSgnNamed env n))
+ | SgnFun (x, n, sgn, sgn') => box [string "functor",
+ space,
+ string "(",
+ string x,
+ space,
+ string ":",
+ space,
+ p_sgn env sgn,
+ string ")",
+ space,
+ string ":",
+ space,
+ p_sgn (E.pushStrNamedAs env x n sgn) sgn']
| SgnError => string "<ERROR>"
fun p_decl env ((d, _) : decl) =
@@ -367,6 +380,28 @@ and p_str env (str, _) =
| StrProj (str, s) => box [p_str env str,
string ".",
string s]
+ | StrFun (x, n, sgn, sgn', str) =>
+ let
+ val env' = E.pushStrNamedAs env x n sgn
+ in
+ box [string "functor",
+ space,
+ string "(",
+ string x,
+ space,
+ string ":",
+ space,
+ p_sgn env sgn,
+ string ")",
+ space,
+ string ":",
+ space,
+ p_sgn env' sgn',
+ space,
+ string "=>",
+ space,
+ p_str env' str]
+ end
| StrError => string "<ERROR>"
and p_file env file =