From 772e73ae48c6116087167951e98fbcd4e9490da2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=BCndler?= Date: Fri, 8 Dec 2023 17:39:56 +0100 Subject: [PATCH] Fix parsing of hex encoded escaped bytes --- crates/uplc/src/parser.rs | 1 + crates/uplc/src/pretty.rs | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/crates/uplc/src/parser.rs b/crates/uplc/src/parser.rs index 29adc8d7..2d00aa9c 100644 --- a/crates/uplc/src/parser.rs +++ b/crates/uplc/src/parser.rs @@ -232,6 +232,7 @@ peg::parser! { / "\\\"" { '\"' } // double quote / "\\'" { '\'' } // single quote / "\\\\" { '\\' } // backslash + / "\\x" i:character() i2:character() { hex::decode([i, i2].iter().collect::()).unwrap()[0].into() } / [ ^ '"' ] / expected!("or any valid ascii character") diff --git a/crates/uplc/src/pretty.rs b/crates/uplc/src/pretty.rs index 1aa74af3..140bb0aa 100644 --- a/crates/uplc/src/pretty.rs +++ b/crates/uplc/src/pretty.rs @@ -281,7 +281,7 @@ impl Constant { .collect(), ) .unwrap(), - )), + )) .append(RcDoc::text("\"")), Constant::Unit => RcDoc::text("()"), Constant::Bool(b) => RcDoc::text(if *b { "True" } else { "False" }), Constant::ProtoList(_, items) => RcDoc::text("[")