Notes on an extension to Sexp syntax
This commit is contained in:
parent
444dde2a09
commit
e3b9f64d6d
27
TODO
27
TODO
|
@ -25,3 +25,30 @@ Switch from indirect scheduling to direct scheduling
|
||||||
once) so it always goes back to the scheduler because the worklist
|
once) so it always goes back to the scheduler because the worklist
|
||||||
is never longer than one.
|
is never longer than one.
|
||||||
- Revisit once we start testing multiple concurrent streams.
|
- 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
|
||||||
|
((()())(()()))
|
||||||
|
|
Loading…
Reference in New Issue