// 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 mut parser1 = self.clone();
            let opening_token = parser1.next_token();
            match opening_token.kind() {
                TokenKind::Colon => {
                    self.continue_from(parser1);
                    let opening_token_syntax = S!(make_token, self, opening_token);
                    let else_consequence = self.parse_alternate_if_block(&|x| x.parse_statement());
                    S!(
                        make_alternate_else_clause,
                        self,
                        else_token,
                        opening_token_syntax,
                        else_consequence,
                    )
                }
                _ => {
                    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 mut parser1 = self . clone ( ) ; let opening_token = parser1 . next_token ( ) ; match opening_token . kind ( ) { TokenKind :: Colon => { self . continue_from ( parser1 ) ; let opening_token_syntax = S ! ( make_token self opening_token ) ; let else_consequence = self . parse_alternate_if_block ( & | x | x . parse_statement ( ) ) ; S ! ( make_alternate_else_clause self else_token opening_token_syntax else_consequence ) } _ => { 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