xmlns = "http://relaxng.org/ns/structure/1.0" Keywords = element|attribute|list|mixed|parent|empty|text|notAllowed|external|grammar|div|include|start|inherit|string|token Identifier = &~ CName = : Ls1 = (&[^\"])* Ls2 = (&[^\'])* Ls3 = *&~.*"\"\"\"".* Ls4 = *&~.*"'''".* topLevel : "default" __ "namespace" _ "=" _ [literal l] [grammarContents gs] = [grammarContents gs] identifier : [Identifier i] = _ [Identifier i] _ : "\\" [NCNAME n] = [NCNAME n] literal : "\"" [Ls1 l] "\"" = [Ls1 l] >: "'" [Ls2 l] "'" = [Ls2 l] >: "\"\"\"" [Ls3 l] "\"\"\"" = [Ls3 l] >: "'''" [Ls4 l] "'''" = [Ls4 l] grammarContents : __ [grammarContent g] [grammarContents gs] = [grammarContent g] [grammarContents gs] : = bpattern : "element" __ [nameClass n] _ "{" _ [pattern p] _ "}" = [nameClass n] [pattern p] : "attribute" __ [nameClass n] _ "{" _ [pattern p] _ "}" = [nameClass n] [pattern p] : "list" _ "{" _ [pattern p] _ "}" = [pattern p] : "mixed" _ "{" _ [pattern p] _ "}" = [pattern p] : [identifier i] = : "parent" __ [identifier i] = : "empty" = : "text" = : [datatypeValue dv] = [datatypeValue dv] : [dataTypeName dn] __ [datatypeValue dv] = [datatypeValue dv] : [dataTypeName dn] _ "{" _ [params ps] _ "}" _ [exceptPattern e] = [params ps] [exceptPattern e] : "notAllowed" = : "external" __ [anyURILiteral a] = : "grammar" _ "{" _ [grammarContents gs] _ "}" = [grammarContents gs] : "(" _ [gpattern g] _ "|" _ [crestpattern c] _ ")" = [gpattern g] [crestpattern c] : "(" _ [ipattern i] _ "," _ [grestpattern g] _ ")" = [ipattern i] [grestpattern g] : "(" _ [upattern u] _ "\&" _ [irestpattern i] _ ")" = [upattern u] [irestpattern i] upattern : [bpattern b] _ "?" = [bpattern b] : [bpattern b] _ "*" = [bpattern b] : [bpattern b] _ "+" = [bpattern b] : [bpattern b] = [bpattern b] irestpattern : [upattern u] _ "\&" _ [irestpattern i] = [upattern u] [irestpattern i] : [upattern u] = [upattern u] ipattern : [upattern u] _ "\&" _ [irestpattern i] = [upattern u] [irestpattern i] : [upattern u] = [upattern u] grestpattern : [ipattern i] _ "," _ [grestpattern g] = [ipattern i] [grestpattern g] : [ipattern i] = [ipattern i] gpattern : [ipattern i] _ "," _ [grestpattern g] = [ipattern i] [grestpattern g] : [ipattern i] = [ipattern i] crestpattern : [gpattern g] _ "|" _ [crestpattern c] = [gpattern g] [crestpattern c] : [gpattern g] = [gpattern g] cpattern : [gpattern g] _ "|" _ [crestpattern c] = [gpattern g] [crestpattern c] : [gpattern g] = [gpattern g] pattern : [cpattern c] = [cpattern c] param : [identifier i] _ "=" _ [literal l] = [literal l] params : [param p] _ [params ps] = [param p] [params ps] : = exceptPattern : "-" [pattern p] = [pattern p] : = grammarContent : [start s] = [start s] : [define d] = [define d] : "div" _ "{" _ [grammarContents gs] _ "}" =
[grammarContents gs] : "include" __ [anyURILiteral a] _ "{" _ [includeContents ics] _ "}" = [includeContents ics] : "include" __ [anyURILiteral a] = includeContent : [define d] = [define d] : [start s] = [start s] : "div" _ "{" _ [includeContents ics] _ "}" =
[includeContents ics] includeContents : [includeContent ic] _ [includeContents ics] = [includeContent ic] [includeContents ics] : = start : "start" _ "=" _ [pattern p] = [pattern p] : "start" _ "|=" _ [pattern p] = [pattern p] : "start" _ "\&=" _ [pattern p] = [pattern p] define : [identifier i] _ "=" _ [pattern p] = [pattern p] : [identifier i] _ "|=" _ [pattern p] = [pattern p] : [identifier i] _ "\&=" _ [pattern p] = [pattern p] nameClass : [simpleNameClass s] = [simpleNameClass s] : [simpleNameClass s] _ "|" _ [restNameClass n] = [simpleNameClass s] [restNameClass n] restNameClass : [simpleNameClass s] = [simpleNameClass s] : [simpleNameClass s] _ "|" _ [restNameClass r] = [simpleNameClass s] [restNameClass r] simpleNameClass : [identifier i] = [identifier i] : [NCNAME n] = _ [NCNAME n] _ : [NCNAME ns] ":" [NCNAME n] = _ [NCNAME n] _ : "inherit" _ [exceptNameClass e] = [exceptNameClass e] : [NCNAME ns] ":*" _ [exceptNameClass e] = [exceptNameClass e] : "*" [exceptNameClass e] = [exceptNameClass e] exceptNameClass : "-" _ [nameClass n] = [nameClass n] : = dataTypeName : [CName c] = [CName c] : "string" = "string" : "token" = "token" datatypeValue : [literal l] = [literal l] anyURILiteral : [literal l] = [literal l]