From d18ac475d1f112b614fd911abfe44e89ace4a697 Mon Sep 17 00:00:00 2001 From: Kasey White Date: Sat, 18 Jun 2022 00:12:24 -0500 Subject: [PATCH] modification to pretty printing for constants and nesting --- crates/uplc/src/pretty.rs | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index 9fa4f10e..f50f1272 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -5,6 +5,7 @@ use crate::ast::{Constant, Name, Program, Term}; impl Program { pub fn to_pretty(&self) -> String { let mut w = Vec::new(); + println!("here"); self.to_doc().render(100, &mut w).unwrap(); @@ -17,9 +18,10 @@ impl Program { RcDoc::text("(") .append(RcDoc::text("program")) .append(RcDoc::line()) - .append(RcDoc::text(version).nest(2)) + .append(RcDoc::text(version)) .append(RcDoc::line()) .append(self.term.to_doc()) + .nest(2) .append(RcDoc::line_()) .append(RcDoc::text(")")) } @@ -62,8 +64,9 @@ impl Term { .append(RcDoc::text("]")), Term::Constant(constant) => RcDoc::text("(") .append(RcDoc::text("con")) - .append(RcDoc::text(" ")) + .append(RcDoc::line()) .append(constant.to_doc()) + .append(RcDoc::line_()) .append(RcDoc::text(")")), Term::Force(term) => RcDoc::text("(") .append(RcDoc::text("force")) @@ -82,6 +85,7 @@ impl Term { .append(RcDoc::text(")")), } .nest(2) + .group() } } @@ -89,20 +93,23 @@ impl Constant { fn to_doc(&self) -> RcDoc<()> { match self { Constant::Integer(i) => RcDoc::text("integer") - .append(RcDoc::space()) + .append(RcDoc::line()) .append(RcDoc::as_string(i)), Constant::ByteString(bs) => RcDoc::text("bytestring") - .append(RcDoc::space()) + .append(RcDoc::line()) + .append(RcDoc::text("#")) .append(RcDoc::text(hex::encode(bs))), Constant::String(s) => RcDoc::text("string") - .append(RcDoc::space()) - .append(RcDoc::text(s)), + .append(RcDoc::line()) + .append(RcDoc::text("\"")) + .append(RcDoc::text(s)) + .append(RcDoc::text("\"")), Constant::Char(c) => unimplemented!("char: {}", c), Constant::Unit => RcDoc::text("unit") - .append(RcDoc::space()) + .append(RcDoc::line()) .append(RcDoc::text("()")), Constant::Bool(b) => RcDoc::text("bool") - .append(RcDoc::space()) + .append(RcDoc::line()) .append(RcDoc::text(if *b { "true" } else { "false" })), } }