# HTML grammar HTML: __ [doctype __] *html-element%__ __ doctype: " html-element: ( >(`<("area"/"base"/"br"/"col"/"embed"/"hr"/"img"/"input"/"link"/"meta"/"param"/"source"/"track"/"wbr")) void-element / >(`<("script"/"style"/"textarea"/"title")) raw-element / >(`<("template")) template-element / normal-element) void-element: `< @tag=(id==match-tag) __attributes__ [`/] __ `> template-element: `< @tag=(id==match-tag) __`> __ >match-body @body=*(!`<$. / comment / html-element / !(")$.) (") raw-element: `< @tag=(id==match-tag) __attributes__ `> >match-body @body=.. (") normal-element: `< @tag=(id==match-tag) __attributes__ `> >match-body @body=*(!`<$. / comment / html-element / !(")$.) " comment: "" attributes: *attribute%__ attribute: (+id%`:)__`=__ (id / `" ..`" / `' ..`') attribute: (+id%`:)__`=__ (id / `" ..`" / `' ..`') match-tag: id match-body: ''