fn parse_else_opt(&mut self) -> S::R {
        let else_token = self.optional_token(TokenKind::Else);
        if else_token.is_missing() {
            else_token
        } else {
            let else_consequence = self.parse_statement();
            S!(make_else_clause, self, else_token, else_consequence)
        }
    }
// do not eat token and return Missing if first token is not Else
do not eat token and return Missing if first token is not Else
do not eat token and return Missing if first token is not Else
fn parse_else_opt(&mut self) -> S::R {
        let else_token = self.optional_token(TokenKind::Else);
        if else_token.is_missing() {
            else_token
        } else {
            let else_consequence = self.parse_statement();
            S!(make_else_clause, self, else_token, else_consequence)
        }
    }
fn parse_else_opt ( & mut self ) -> S :: R { let else_token = self . optional_token ( TokenKind :: Else ) ; if else_token . is_missing ( ) { else_token } else { let else_consequence = self . parse_statement ( ) ; S ! ( make_else_clause self else_token else_consequence ) } }
do not eat token and return Missing if first token is not Else
do not eat token and return Missing if first token is not Else
&mut self
&mut self