From e3b9f64d6d84193655b26f9387afd8a95a6955f6 Mon Sep 17 00:00:00 2001 From: Tony Garnock-Jones Date: Thu, 6 Jan 2011 19:45:25 -0500 Subject: [PATCH] Notes on an extension to Sexp syntax --- TODO | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/TODO b/TODO index 45a4a5c..36ca8b7 100644 --- a/TODO +++ b/TODO @@ -25,3 +25,30 @@ Switch from indirect scheduling to direct scheduling once) so it always goes back to the scheduler because the worklist is never longer than one. - Revisit once we start testing multiple concurrent streams. + + +Extension to Sexps: + + - ! : binds the simplestring to the value when + seen. Note that the new binding for simplestring is NOT in scope + during parsing of the value, so no circular data can be constructed + this way. Any previous binding is discarded *after* the value is + completely read. + + - ? : retrieves the bound value of the simplestring. + +So + !1:a11:hello world(?1:a1: ?1:a1: ?1:a) +is equivalent to + (11:hello world1: 11:hello world1: 11:hello world) + +And, more to the point, after a receiver has seen + !1:a36:af49f5dc-0454-4ba1-9f48-a55e9c10ee35 +then a simple + ?1:a +is all that's needed to refer to that gargantuan UUID. + +Another example: + !1:a()!1:a(?1:a?1:a)!1:a(?1:a?1:a)?1:a +is equivalent to + ((()())(()()))