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
|
||||
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
|
||||
((()())(()()))
|
||||
|
|
Loading…
Reference in New Issue