some users may not care about actions for the top level rules so we shouldn't enforce them.
this will allow us to reference the grammar from other grammars, eg http parsing.