- From: Norm Tovey-Walsh <norm@saxonica.com>
- Date: Thu, 01 Sep 2022 11:49:03 +0100
- To: ixml <public-ixml@w3.org>
- Message-ID: <m2zgfjid01.fsf@saxonica.com>
Norm Tovey-Walsh <norm@saxonica.com> writes: > Here’s ixml.ebnf that you can paste into the RR tool to see the > diagrams: Sorry. Stylesheet was not distinguishing repeat0 and repeat1 correctly. This is better, but I observe that in the RR diagrams, a right hand side that consists of a single string is inlined. That’s not me. ixml ::= (s prolog? rule (RS rule)* s) s ::= (whitespace | comment)* RS ::= (whitespace | comment)+ whitespace ::= "INCL: Zs" | tab | lf | cr tab ::= '#x9' lf ::= '#xa' cr ::= '#xd' comment ::= ('{' (cchar | comment)* '}') cchar ::= 'EXCL: "{}"' prolog ::= (version s) version ::= ('ixml' RS 'version' RS string s '.') rule ::= (((mark s))? name s 'INCL: "=:"' s alts '.') mark ::= 'INCL: "@^-"' alts ::= alt (('INCL: ";|"' s) alt)* alt ::= (term ((',' s) term)*)? term ::= factor | option | repeat0 | repeat1 factor ::= terminal | nonterminal | insertion | ('(' s alts ')' s) repeat0 ::= (factor('*' s) | ('**' s sep)) repeat1 ::= (factor('+' s) | ('++' s sep)) option ::= (factor '?' s) sep ::= factor nonterminal ::= (((mark s))? name s) name ::= (namestart (namefollower)* ) namestart ::= 'INCL: "_" | L' namefollower ::= namestart | 'INCL: "-.·‿⁀" | Nd | Mn' terminal ::= literal | charset literal ::= quoted | encoded quoted ::= (((tmark s))? string s) tmark ::= 'INCL: "^-"' string ::= ('"' (dchar)+ '"') | (''' (schar)+ ''') dchar ::= "EXCL: '#22' | #xa | #xd" | ('"' '"') schar ::= "EXCL: #22'#22 | #xa | #xd" | (''' ''') encoded ::= (((tmark s))? '#' hex s) hex ::= ("INCL: [0-9] | [a-f] | [A-F]")+ charset ::= inclusion | exclusion inclusion ::= (((tmark s))? set) exclusion ::= (((tmark s))? '~' s set) set ::= ('[' s((member s) (('INCL: ";|"' s) (member s))*)? ']' s) member ::= string | ('#' hex) | range | class range ::= (from s '-' s to) from ::= character to ::= character character ::= ('"' dchar '"') | (''' schar ''') | ('#' hex) class ::= code code ::= (capital letter? ) capital ::= "INCL: [A-Z]" letter ::= "INCL: [a-z]" insertion ::= ('+' s string | ('#' hex)s) Be seeing you, norm -- Norm Tovey-Walsh Saxonica
Received on Thursday, 1 September 2022 10:51:46 UTC