Another possible approach to this is to allow <grammar> inside <grammar>
and add a new <export> element.
<grammar>
...
<grammar>
<export name="foo"> p </export>
...
</grammar>
...
</grammar>
is equivalent to
<grammar>
...
<define name="foo">
<grammar>
<start>p</start>
...
</grammar>
</define>
...
</grammar>
except, of course, that you can multiple exports in a single <grammar>.
You wouldn't be able to have both an <export> and a <start> in the same
<grammar>. An <export> inside an <include> would replace a <start> in the
included file and vice-versa.
James