definitions
escape ("\\\"")
ident [A-Za-z0-9]+
stringelem ({escape}|[^\"\n])
string (\"{stringelem}+\")
path [A-Za-z0-9\~\#\:\-\.\/\?]+
value ({path}|{string})
attrib {ident}"="{value}
attribs ([ \t]|{attrib})*
simple ("<"{ident}">")
begintag ("<"{ident}{attribs}">")
endtag "</"{ident}">")
beginpr "<?"{ident}{attribs}">"
endpr "<?/"{ident}">"
doctype "<!doctype"[^\>]">"
element "<!element"[^\>]">"
attlist "<!attlist"(^\>]">"
begincmt "<!--"
endcmt "-->"
any ({beginpr}|{endpr}|{doctype}|{element}|{attlist})
slide: definitions