> Isn't a result of your changes to the grammer that a program can
> start with a semicolon?
Yes.  In fact, a program can consist solely of a sequence of
semicolons.
> That doesn't look like it should be accepted to me from the
> report.
I think it's OK, because the report says
	program ::= exp ; program
                  | topdec ; program
                  
and topdec can be empty.