Notes on an extension to Sexp syntax

This commit is contained in:
Tony Garnock-Jones 2011-01-06 19:45:25 -05:00
parent 444dde2a09
commit e3b9f64d6d
1 changed files with 27 additions and 0 deletions

27
TODO
View File

@ -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:
- ! <simplestring> <value> : 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.
- ? <simplestring> : 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
((()())(()()))