- From: Steven Pemberton <steven.pemberton@cwi.nl>
- Date: Wed, 02 Mar 2022 19:34:28 +0000
- To: ixml <public-ixml@w3.org>
Some time ago Tom suggested using +"abc" to signal a textual insertion into
the serialisation, which we put on a backburner. But I ended up thinking
about it today anyway.
This adds a new mark "+", only applicable to literal terminals (strings and
hex encodings). Let's call them "insertions".
* When parsing, an insertion is treated as an empty string; in other words,
it always succeeds.
* On serialisation, an insertion is serialised as its string (just like
other non-hidden terminals).
Example:
data: @xmlns, value+",".
xmlns: +"http://example.com/data".
value: pos; neg.
pos: +"+", digit+.
neg: +"-", -"(", digit+, -")".
With input:
100,200,(300),400
this would produce
<data xmlns="http://example.com/data">
<value>+100</value>
<value>+200</value>
<value>-300</value>
<value>+400</value>
</data>
It is notable that there is currently no real meaning assigned to "^"
when applied to a terminal: it has no additional effect. So "^" could
be used for this purpose instead of "+", thus leaving the syntax of
ixml untouched, and still looking and feeling reasonable:
data: @xmlns, value+",".
xmlns: ^"http://example.com/data".
value: pos, neg.
pos: ^"+", digit+.
neg: ^"-", -"(", digit+, -")".
The nice thing about "+" is that it is the obvious opposite of "-", but has
the disadvantage is that it is already used for repeats.
The nice thing about "^" is that the syntax doesn't change, and it looks
like a proof-reader's insert mark.
Steven
Received on Wednesday, 2 March 2022 19:34:42 UTC