Parses a `GOSUB` statement.
(&mut self)
| 1020 | |
| 1021 | /// Parses a `GOSUB` statement. |
| 1022 | fn parse_gosub(&mut self) -> Result<Statement> { |
| 1023 | let token_span = self.lexer.read()?; |
| 1024 | match token_span.token { |
| 1025 | Token::Integer(i) => { |
| 1026 | let target = format!("{}", i); |
| 1027 | Ok(Statement::Gosub(GotoSpan { target, target_pos: token_span.pos })) |
| 1028 | } |
| 1029 | Token::Label(target) => { |
| 1030 | Ok(Statement::Gosub(GotoSpan { target, target_pos: token_span.pos })) |
| 1031 | } |
| 1032 | _ => Err(Error::Bad(token_span.pos, "Expected label name after GOSUB".to_owned())), |
| 1033 | } |
| 1034 | } |
| 1035 | |
| 1036 | /// Parses a `GOTO` statement. |
| 1037 | fn parse_goto(&mut self) -> Result<Statement> { |
no test coverage detected