From 13d9a78ec6befa14635ba137de9f7c1a1da1d3c4 Mon Sep 17 00:00:00 2001
From: Doug Coleman <doug.coleman@gmail.com>
Date: Sat, 26 Aug 2017 18:02:57 -0500
Subject: [PATCH] interpolate: [I -> I[[

---
 basis/interpolate/interpolate-tests.factor | 2 +-
 basis/interpolate/interpolate.factor       | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/basis/interpolate/interpolate-tests.factor b/basis/interpolate/interpolate-tests.factor
index a69c4e44a0..a9899b8714 100644
--- a/basis/interpolate/interpolate-tests.factor
+++ b/basis/interpolate/interpolate-tests.factor
@@ -40,6 +40,6 @@ IN: interpolate.tests
 { "Oops, I accidentally the whole economy..." } [
     let[
         "economy" :> noun
-        "accidentally" [ [I Oops, I ${0} the whole ${noun}...I] ] with-string-writer
+        "accidentally" [ I[[ Oops, I ${0} the whole ${noun}...]] ] with-string-writer
     ]
 ] unit-test
diff --git a/basis/interpolate/interpolate.factor b/basis/interpolate/interpolate.factor
index fd00b1fdd1..24d216fbbc 100644
--- a/basis/interpolate/interpolate.factor
+++ b/basis/interpolate/interpolate.factor
@@ -85,6 +85,10 @@ MACRO: interpolate-locals ( str -- quot )
 : interpolate-locals>string ( str -- newstr )
     [ interpolate-locals ] with-string-writer ; inline
 
-SYNTAX: [I
-    "I]" parse-multiline-string
+: define-interpolate-syntax ( accum string -- accum )
+    parse-multiline-string
     interpolate-locals-quot append! ;
+
+SYNTAX: I[[ "]]" define-interpolate-syntax ;
+SYNTAX: I[=[ "]=]" define-interpolate-syntax ;
+SYNTAX: I[==[ "]==]" define-interpolate-syntax ;