diff --git a/crates/uplc/src/parser.rs b/crates/uplc/src/parser.rs index a0ecfde0..370dd5f4 100644 --- a/crates/uplc/src/parser.rs +++ b/crates/uplc/src/parser.rs @@ -55,6 +55,21 @@ fn pair_sub_type(type_info: Option<&Type>) -> Option<(&Type, &Type)> { } } +pub fn escape(string: &str) -> String { + string + .chars() + .flat_map(|c| match c { + '\n' => vec!['\\', c], + '\r' => vec!['\\', c], + '\t' => vec!['\\', c], + '\'' => vec!['\\', c], + '\\' => vec!['\\', c], + '"' => vec!['\\', c], + _ => vec![c], + }) + .collect::() +} + peg::parser! { grammar uplc() for str { pub rule program() -> Program