public final void silence_header() throws RecognitionException {
		try {
			// SayScript.g:515:16: ( ( WHITE )? LBRACK HDR_SILENCE RBRACK ( WHITE )? ( NEWLINE | COMMENT ) )
			// SayScript.g:515:18: ( WHITE )? LBRACK HDR_SILENCE RBRACK ( WHITE )? ( NEWLINE | COMMENT )
			{
			// SayScript.g:515:18: ( WHITE )?
			int alt43=2;
			int LA43_0 = input.LA(1);
			if ( (LA43_0==WHITE) ) {
				alt43=1;
			}
			switch (alt43) {
				case 1 :
					// SayScript.g:515:18: WHITE
					{
					match(input,WHITE,FOLLOW_WHITE_in_silence_header2976); 
					}
					break;

			}

			match(input,LBRACK,FOLLOW_LBRACK_in_silence_header2979); 
			match(input,HDR_SILENCE,FOLLOW_HDR_SILENCE_in_silence_header2981); 
			match(input,RBRACK,FOLLOW_RBRACK_in_silence_header2983); 
			// SayScript.g:515:51: ( WHITE )?
			int alt44=2;
			int LA44_0 = input.LA(1);
			if ( (LA44_0==WHITE) ) {
				alt44=1;
			}
			switch (alt44) {
				case 1 :
					// SayScript.g:515:51: WHITE
					{
					match(input,WHITE,FOLLOW_WHITE_in_silence_header2985); 
					}
					break;

			}

			if ( input.LA(1)==COMMENT||input.LA(1)==NEWLINE ) {
				input.consume();
				state.errorRecovery=false;
			}
			else {
				MismatchedSetException mse = new MismatchedSetException(null,input);
				throw mse;
			}
			}

		}
		catch (RecognitionException re) {
			reportError(re);
			recover(input,re);
		}
		finally {
			// do for sure before leaving
		}
	}