From 86173a3ca7579136b82c819363a244b45bfe20b6 Mon Sep 17 00:00:00 2001 From: ConnorSkees <39542938+ConnorSkees@users.noreply.github.com> Date: Sat, 8 Feb 2020 21:19:54 -0500 Subject: [PATCH] Implement builtin functions `quote` and `unquote` --- src/builtin/string.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/builtin/string.rs b/src/builtin/string.rs index 2b8ddc6..c987b54 100644 --- a/src/builtin/string.rs +++ b/src/builtin/string.rs @@ -1,6 +1,7 @@ use std::collections::BTreeMap; use super::Builtin; +use crate::common::QuoteKind; use crate::units::Unit; use crate::value::{Number, Value}; @@ -26,4 +27,14 @@ pub(crate) fn register(f: &mut BTreeMap) { _ => todo!("") } }); + decl!(f "quote", |args, _| { + let s = arg!(args, 0, "string").eval(); + match s { + Value::Ident(i, _) => Some(Value::Ident(i, QuoteKind::Double)), + _ => todo!("") + } + }); + decl!(f "unquote", |args, _| { + Some(arg!(args, 0, "string").eval().unquote()) + }); }