From da2eb3ee2aedfc9cb60f83894bbec8562c49c311 Mon Sep 17 00:00:00 2001 From: Alex Suraci Date: Sun, 27 May 2012 04:09:46 -0700 Subject: [PATCH] pretty: improve block/proc-arg formatting --- kernel/pretty.ay | 41 ++++++++++++++++++++++------------------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/kernel/pretty.ay b/kernel/pretty.ay index e595f37..1136693 100644 --- a/kernel/pretty.ay +++ b/kernel/pretty.ay @@ -180,6 +180,24 @@ Atomy AST open: grouped(n) + braces-block(contents, left = /empty) = + align(left <+> (lbrace <+> body(contents)) nest(2) <+> rbrace) <||> + if(left empty?) + then: align((lbrace <+> vbody(contents)) nest(2) <$> rbrace) + else: align(left <+> (lbrace <$> vbody(contents)) nest(2) <$> rbrace) + + proc-arg(left, contents) = + if(from(.top)?) + then: + block = + (colon <+> body(contents)) <||> + (colon <$> vbody(contents)) + + align((left <> block) nest(2)) + else: + braces-block(contents, left) + + /doc(b: Infix) := from(.infix): ( if(b private) @@ -189,31 +207,16 @@ Atomy AST open: unamb(b left) <+> text(b operator) <\> unamb(b right) ) hang(2) - /doc(b: Block) := do: - args = + /doc(b: Block) := + braces-block( + b contents if(b arguments empty?) then: empty - else: list(render-sequence(b arguments)) - - contents = body(b contents) - - align(args <+> (lbrace contents) nest(2) <\> rbrace) + else: list(render-sequence(b arguments))) /doc(c: Call) := from(.call) { unamb(c name) } <> tupled(render-sequence(c arguments)) - proc-arg(left, contents) = - if(from(.top)?) - then: - block = - (colon <+> body(contents)) <||> - (colon <$> vbody(contents)) - - align((left <> block) nest(2)) - else: - align((left <+> lbrace <\> body(contents)) nest(2) <\> rbrace) - - /doc(`(~x [~*ys] { ~*zs })) := proc-arg( from(.compose) { unamb(x) } <+>