I got two questions after my talk this morning, which revealed to me that I hadn't been clear enough about abstractions:
Q: Why didn't you use BNF to define the grammars?
Q: Why didn't you just use XML to define ixml, rather than a scribbly language.
A: The very point of ixml is that it doesn't matter what representation abstractions are expressed in!
On either side of the circle are representations.
The real ixml is in the bit in circle. But it's INVISIBLE!
If you would rather express your grammars in BNF, then go for it!
THAT'S WHAT IXML IS FOR!!!
rule: mark?, name, -["=:"], -alts, -".". @mark: ["@^-"]. alts: alt++-[";|"]. alt: term**-",". ... @name: namestart, namefollower*.
rule: mark?, name, -" ::= ", -alts, #a. @mark: ["@^-"]. alts: alt++-"|". alt: term**-" ". ... @name: -"<", namestart, namefollower*, -">".
<rule> ::= <mark>? <name> -"::=" -alts #a @<mark> ::= "@" | "^" | "-" <alts> ::= alt++-"|" <alt> ::= term**-" " ... @<name>::= -"<" <namestart> <namefollower>* -">"
You supply a document, and a description of the format.
If that description is not in default ixml format, you supply a description of the format.
THEN YOU GO WILD!