code: Rule MidiProgram() {
  		return Sequence(String("program"), OneOrMore(WSP()),
  				Optional(Sequence(MidiChannelNumber(), OneOrMore(WSP()))),
  				MidiProgramNumber())
  			.label(MidiProgram);
  	}
docs: midi-program ::= "program" 1*WSP [midi-channel-number 1*WSP] midi-program-number