The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# Copyright 2014 Jeffrey Kegler
# This file is part of Marpa::R3.  Marpa::R3 is free software: you can
# redistribute it and/or modify it under the terms of the GNU Lesser
# General Public License as published by the Free Software Foundation,
# either version 3 of the License, or (at your option) any later version.
#
# Marpa::R3 is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser
# General Public License along with Marpa::R3.  If not, see
# http://www.gnu.org/licenses/.

# Only the contents of these can be changed,
# not the context
<body> is *block
<head> is *head

# Now alphabetically, by tagname
<a> is a *inline included in %inline
<abbr> is a *inline included in %inline
<acronym> is a *inline included in %inline
<address> is a *inline included in %block
<applet> contains <param> %mixed
<applet> is included in %inline
<area> is *empty
<audio> is a *inline included in %inline
<b> is a *inline included in %inline
<base> is a *empty included in %head
<basefont> is a *empty included in %inline
<bdo> is a *inline included in %inline
<big> is a *inline included in %inline
<blink> is a *inline included in %inline
<blockquote> is a *mixed included in %block
<br> is a *empty included in %inline
<button> is a *inline included in %inline
<caption> is *inline
<center> is a *mixed included in %block
<cite> is a *inline included in %inline
<code> is a *inline included in %inline
<col> is *empty
<colgroup> contains <col>
<command> is a *inline included in %inline
<dd> is *mixed
<dfn> is a *inline included in %inline
<dir> contains <li>
<dir> is included in %block
<div> is a *mixed included in %block
<dl> contains <dt> <dd>
<dl> is included in %block
<dt> is *inline
<em> is a *inline included in %inline
<embed> is a *inline included in %inline
<fieldset> is a *mixed included in %block
<font> is a *inline included in %inline
<form> is a *mixed included in %block
<h1> is a *inline included in %block
<h2> is a *inline included in %block
<h3> is a *inline included in %block
<h4> is a *inline included in %block
<h5> is a *inline included in %block
<h6> is a *inline included in %block
<hr> is a *empty included in %block
<i> is a *inline included in %inline
<img> is a *empty included in %inline
<input> is a *empty included in %inline
<isindex> is a *empty included in %anywhere
<kbd> is a *inline included in %inline
<keygen> is a *inline included in %inline
<label> is a *inline included in %inline
<li> is *mixed
<link> is a *empty included in %head
<map> contains %block <area>
<map> is included in %inline
<mark> is a *inline included in %inline
<menu> contains <li>
<menu> is included in %block
<meta> is a *empty included in %head
<meter> is a *inline included in %inline
<nobr> is a *inline included in %inline
<noframes> is a *mixed included in %block
<noscript> is a *mixed included in %block
<object> contains <param> %mixed
<object> is included in %anywhere
<ol> contains <li>
<ol> is included in %block
<optgroup> contains <option>
<option> is *pcdata
<output> is a *inline included in %inline
<p> is a *inline included in %block
<param> is *empty
<plaintext> is a *cdata included in %block
<pre> is a *inline included in %block
<progress> is a *inline included in %inline
<q> is a *inline included in %inline
<rb> is a *inline included in %inline
<rbc> is a *inline included in %inline
<rp> is a *inline included in %inline
<rt> is a *inline included in %inline
<rtc> is a *inline included in %inline
<ruby> is a *inline included in %inline
<s> is a *inline included in %inline
<samp> is a *inline included in %inline
<script> is a *cdata included in %anywhere
<select> contains <optgroup> <option>
<select> is included in %inline
<small> is a *inline included in %inline
<span> is a *inline included in %inline
<strike> is a *inline included in %inline
<strong> is a *inline included in %inline
<style> is a *cdata included in %head
<sub> is a *inline included in %inline
<sup> is a *inline included in %inline
<table> contains <caption> <col> <colgroup>
<table> contains <tbody> <tfoot> <thead>
<table> is included in %block
<tbody> contains <tr>
<td> is *mixed
<textarea> is a *cdata included in %anywhere
<tfoot> contains <tr>
<th> is *mixed
<thead> contains <tr>
<time> is a *inline included in %inline
<title> is a *pcdata included in %head
<tr> contains <th> <td>
<tt> is a *inline included in %inline
<u> is a *inline included in %inline
<ul> contains <li>
<ul> is included in %block
<var> is a *inline included in %inline
<video> is a *inline included in %inline
<wbr> is a *inline included in %inline
<xmp> is a *cdata included in %block

@head_rubies   = <html> <head>
@block_rubies  = <html> <head> <body>
@inline_rubies = @block_rubies <tbody> <tr> <td> <p>

<html> ->
<head> -> <html>
<body> -> <html> <head>
CDATA -> @inline_rubies
PCDATA -> @inline_rubies
<*> -> @block_rubies
<%inline> -> @inline_rubies
<%head> -> @head_rubies
<area> -> @block_rubies <map>
<option> -> @inline_rubies <select>
<optgroup> -> @inline_rubies <select>
<param> -> @block_rubies <object>
<li> -> @block_rubies </*> <ul>
<dt> -> @block_rubies <dl>
<dd> -> @block_rubies <dl>
<caption> -> @block_rubies </*> <table>
<col> -> @block_rubies </*> <table>
<colgroup> -> @block_rubies </*> <table>
<tbody> -> @block_rubies </*> <table>
<tfoot> -> @block_rubies </*> <table>
<thead> -> @block_rubies </*> <table>
</table> -> @block_rubies </*> <table>
<tr> -> @block_rubies <tbody> </*> <table>
<th> -> @block_rubies <thead> <tbody> <tr> </*> <table>
<td> -> @block_rubies <tbody> <tr> </*> <table>
</body> -> <html> <head> <body>
</html> -> <html> <head> <body> </*> </body>