I don't believe that's true. You need to define 'statement' in one
grammar, and that grammar needs to include all the modules
that provide statements.
A grammar may call rules which it doesn't either include or define,
so this is perfectly acceptable. Your "for" statement grammar can
call "statement" without defining it or including a module that defines
it.
However, another feature of which you might not be aware is that
an included grammar may override a rule in the grammar into which
it's included, and can call "super" to invoke the overridden rule.
So if I have a grammar which defines 'statement' with five alternatives,
and I want to include a grammar which defines a sixth alternative (say
an "until" statement), I can say:
rule statement
until_statement / super
end
in my included grammar. This first tries for an until_statement, then
falls back to the base grammar's "statement" rule.
Clifford Heath.